实验五 Python字符串处理
第1关逆序输出字符串任务描述本关任务编写程序将一个字符串中的字符按逆序打印出来。。程序分析先输出字符串的最后一个字符且不换行然后输出倒数第2个字符同样不换行一直到第1个字符。利用for循环控制字符索引编号循环赋值目标变量从0变化到字符串的长度。取字符串的长度可以利用len()函数。编程要求根据提示在右侧编辑器补充代码输入一个字符串将字符串中的字符逆序输出。测试说明平台会对你编写的代码进行测试测试输入1Please enter a string:ABCDEF预期输出1FEDCBA测试输入2Please enter a string:Pyhon123预期输出2321nohyP开始你的任务吧祝你成功str input(Please enter a string:) for i in range(len(str),0,-1): print(str[i-1],end)第2关循环输出字符串任务描述本关任务编写程序输入一个字符串每次去掉最后面的字符并输出。程序分析先求出字符串的长度使用切片法输出字符串去掉最后一个字符后的字符串然后对新的字符串采用同样的方法去掉最后一个字符后输出一直到只剩下原字符串的第1个字符。利用for循环控制字符索引编号循环赋值目标变量从-1变化到字符串的长度的负数。取字符串的长度可以利用len()函数。编程要求根据提示在右侧编辑器补充代码输入一个字符串将字符串中的字符每次去掉最后面的字符并输出。测试说明平台会对你编写的代码进行测试测试输入1Please InputABCDEF预期输出1ABCDEABCDABCABA测试输入2Please InputPyhon123预期输出2Pyhon12Pyhon1PyhonPyhoPyhPyP开始你的任务吧祝你成功str input(Please Input) i len(str) while i 0: print(str[0:i-1]) i - 1第3关字符串连接任务描述本关任务编写程序从键盘输入5个字符串将它们连接成一个字符串后输出。相关知识为了完成本关任务你需要掌握字符串的连接方法。编程要求根据提示在右侧编辑器补充代码将输入的5个字符串连接后输出。测试说明平台会对你编写的代码进行测试测试输入Please enter a string:1Please enter a string:2Please enter a string:abcPlease enter a string:3Please enter a string:xyz预期输出12abcxyz开始你的任务吧祝你成功n 5 str while n: n - 1 str input(Please enter a string:) print(str)第4关挑选以元音字母开头的单词任务描述本关任务编写程序,从键盘输入5个英文单词输出其中以元音字母开头的单词。程序分析分析输入一个英文单词并进行判断用for循环控制重复执行5次。可以将所有元音字母构成一个字符串sAEIOUaeiou遍历该字符串中的各个字符并判断单词的首字母是否在该字符串中。如果首字母在该字符串中则是元音输出单词否则不输出。编程要求根据提示在右侧编辑器补充代码输出以元音字母开头的单词。测试说明平台会对你编写的代码进行测试测试输入与预期输出Please enter a word:aaPlease enter a word:helloPlease enter a word:everyeveryPlease enter a word:enterenterPlease enter a word:key开始你的任务吧祝你成功n 5 s AEIOUaeiou while n: str input(Please enter a word:) if str[0] in s: print(str) n - 1第5关翻译密码任务描述本关任务翻译密码。为了保密常不采用明码电文而用密码电文按事先约定的规律将一个字符转换为另一个字符收报人则按相反的规律转换得到原来的字符。例如将字母“A”→“F”“B”→“G”“C”→“H”即将一个字母变成其后第5个字母。例如“He is in Beijing.”应转换为“Mj nx ns Gjnonsl.”。程序分析依次取电文中的字符对其中的字母进行处理对字母之外的字符维持原样。取字母的ASCII代码加上5再按其ASCII码转换为另一个字母。还有一个问题要处理当字母为“V”时加5就超过了“Z”故应使之转换为“A”同理“W”→“B”“X”→“C”“Y”→“D”“Z”→“E”。判断一个字符是否为字母可以使用str.isalpha()函数。相关知识常见的字符串类型测试函数字符串类型测试函数返回的都是逻辑值假设有字符串s则有s.isalnum()是否全是字母和数字并至少有一个字符s.isalpha()是否全是字母并至少有一个字符s.isdigit()是否全是数字并至少有一个字符s.isspace()是否全是空格并至少有一个字符s.islower()s中的字母是否全是小写s.isupper()s中的字母是否便是大写s.istitle()s是否是首字母大写编程要求根据提示在右侧编辑器补充代码实现对输入的电文加密。测试说明平台会对你编写的代码进行测试测试输入1He is in Beijing.预期输出1Mj nx ns Gjnonsl.测试输入2China预期输出2Hmnsf开始你的任务吧祝你成功str_input input() str_output for i in range(0, len(str_input)): if str_input[i].isalpha(): ascii_code ord(str_input[i]) if str_input[i].islower(): new_ascii_code ascii_code 5 if new_ascii_code ord(z): new_ascii_code - 26 else: new_ascii_code ascii_code 5 if new_ascii_code ord(Z): new_ascii_code - 26 str_output chr(new_ascii_code) else: str_output str_input[i] print(str_output)第6关Python的标识符任务描述本关任务Python的标识符以字母或下划线_开头后接字母、数字或下划线组成从键盘输入字符串判断它是否Python的标识符。编写程序实现标识符是否正确的判断要求至少输入两个字符否则提示input error。相关知识Python中的字符串常量使用字符串常量应导入string模块即要使用import string下面是一些常用的Python字符串常量string.digits:包含0-9的字符串string.letters:包含所有大小写字母的字符串string.lowercase:所有小写字母string.printable:包含所有可以打印字符的字符串string.punctuation:包含所有标点的字符串string.uppercase:包含所有大写字母的字符串字母字符串常量与地区有关比如string.letters,也就是说其具体值取决于python所配置的语言如果确认自己使用的是ascii,那么可以在签名加上ascii_前缀。例如string.ascii_letters使用python内置函数判断字符串是否为关键字示范代码如下import keywordkeyword.iskeyword(str)其中str为要检查的字符串如果是关键字返回True,不是返回False例如int 是整数类型转换函数的函数名,不是关键字所以返回False任务分析为了完成本关任务你可以按如下方式操作利用string模块中的常量包括string.digits数字0~9、string.ascii_letters所有大小写字母、string.ascii_lowercase所有小写字母、string.ascii_uppercase所有大写字母。先输入字符串再分别判断首字符和中间字符并给出提示。判断中间字符利用for循环遍历字符串。编程要求根据提示在右侧编辑器补充代码对输入的字符串进行判断显示效果仿照IDLE编辑器的输出效果。当输入的字符少于2个字符时输出input error当输入的字符串是关键字时则输出*** is a keyword,其中 ***为您输入的字符串下同当输入的字符串不是以下划线或字母开头则输出invalid: first symbol must be alphabetic当输入的字符串以字母或下划线开头但是包含字母、数字、下划线以外的字符时暂不考虑中文等其他字符则输出invalid:identifier symbols must be alphanumeric当输入的字符串是合法标识符时输出*** is a valid identifier测试说明平台会对你编写的代码进行测试测试输入Please Input Identifier:a预期输出input error测试输入Please Input Identifier:_abc预期输出_abc is a valid identifier测试输入Please Input Identifier:if预期输出SyntaxError: if is a keyword测试输入Please Input Identifier:123a预期输出invalid: first symbol must be alphabetic测试输入Please Input Identifier:abc:预期输出invalid:identifier symbols must be alphanumeric开始你的任务吧祝你成功import string import keyword n input(Please Input Identifier:) digits string.digits letters string.ascii_letters punctuation string.punctuation Underline _ lenth len(n) if lenth 2: if n[0] in letters or n[0] in Underline: for i in range(1,lenth): if n[i] in digits or n[i] in letters or n[i] in Underline True: fact True continue else: fact False break if fact True: if keyword.iskeyword(n)True: print(SyntaxError: {} is a keyword.format(n)) else: print({} is a valid identifier.format(n)) else: print(invalid:identifier symbols must be alphanumeric) else: print(invalid: first symbol must be alphabetic) else: print(input error)第7关求数字之和任务描述本关任务编写程序实现如下功能从键盘输入几个数字用逗号分隔求这些数字之和。要求输出结果保留2位小数。程序分析输入的数字当作一个字符串来处理首先分离出数字串再转换成数值这样就能求和。相关知识为了完成本关任务你需要掌握str.split()函数的使用。编程要求根据提示在右侧编辑器补充代码计算并输出输入的字符串中的数字之和。输入语句建议格式input(请输入几个数字用逗号分隔)要求输出结果保留2位小数。测试说明平台会对你编写的代码进行测试测试输入4,91,51,2,32预期输出sum180.00测试输入5,1,1.51,12.3,22,100.24预期输出sum142.05开始你的任务吧祝你成功str eval(input(请输入几个数字用逗号分隔)) str list(str) sum 0 for i in range(len(str)): sum float(str[i]) print(sum%.2f % sum)