浙大python程序设计第三章判断回文字符串_type-of-python作业-判断字符串是否属于回文需要忽略其中的标点、空格与大小写...

type-of-python作业

作业练习:要想检查文本是否属于回文需要忽略其中的标点、空格与大小写。例如,“Rise to vote, sir.”是一段回文文本,但是我们现有的程序不会这么认为。你可以改进上面的程序以使它能够识别

这段回文吗?

**注:**本文中用的python版本为3.70,编译器:PyCharm edu

参考的网站:网站一,网站二,网站三,网站四:多谢前辈的指导!!!

import string

import re

# 将字符串反转,并返回

def reverse(text):

return text[::-1]

# 检测反转后的字符串和最开始的字符串是否相同

def is_palindrome(text):

text0 = clear(text)

return text0 == reverse(text0)

# 将数据的字符串中的空白字符和标点符号

def clear(text):

# 去掉字符串中的空白字符

text1 = re.sub('\s','',text)

bytes_tabtrans = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz', b'ABCDEFGHIJKLMNOPQRSTUVWXYZ')

# 此为中文标点符号

punc = "!?。"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏."

# string.punctuation 此为英文标点符号

mark=''.join([punc,string.punctuation])

bytes1 = mark.encode(encoding='utf-8',errors='strict')

bytestr = text1.encode(encoding='utf-8',errors='strict')

# 去掉字符串中的标点符号

return (bytestr.translate(bytes_tabtrans,bytes1)).decode("utf-8")

# 从客户端输入被检测的字符串

something = input("Enter text: ")

if is_palindrome(something):

print("Yes, it is a palindrome")

else:

print("No,it is not a palindrome" )

博客有哪里写的不对的地方,多谢留言评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值