type-of-python作业
作业练习:要想检查文本是否属于回文需要忽略其中的标点、空格与大小写。例如,“Rise to vote, sir.”是一段回文文本,但是我们现有的程序不会这么认为。你可以改进上面的程序以使它能够识别
这段回文吗?
**注:**本文中用的python版本为3.70,编译器:PyCharm edu
参考的网站:网站一,网站二,网站三,网站四:多谢前辈的指导!!!
1import string 2import re 3 4# 将字符串反转,并返回 5def reverse(text): 6 return text[::-1] 7 8# 检测反转后的字符串和最开始的字符串是否相同 9def is_palindrome(text): 10 text0 = clear(text) 11 return text0 == reverse(text0) 12 13# 将数据的字符串中的空白字符和标点符号 14def clear(text): 15 # 去掉字符串中的空白字符 16 text1 = re.sub('\s','',text) 17 bytes_tabtrans = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz', b'ABCDEFGHIJKLMNOPQRSTUVWXYZ') 18 # 此为中文标点符号 19 punc = "!?。"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏." 20 # string.punctuation 此为英文标点符号 21 mark=''.join([punc,string.punctuation]) 22 bytes1 = mark.encode(encoding='utf-8',errors='strict') 23 bytestr = text1.encode(encoding='utf-8',errors='strict') 24 # 去掉字符串中的标点符号 25 return (bytestr.translate(bytes_tabtrans,bytes1)).decode("utf-8") 26 27# 从客户端输入被检测的字符串 28something = input("Enter text: ") 29if is_palindrome(something): 30 print("Yes, it is a palindrome") 31else: 32 print("No,it is not a palindrome" ) 33
博客有哪里写的不对的地方,多谢留言评论