在这里插入代码片
def reverse(text):
return text[::-1]
def is_palindrome(text):
return text==reverse(text)
while 1:
something=input()
if is_palindrome(something):
print("Yes,it is a palindrome")
else:
print("No,it is not a palindrome")
代码说明
通过使用seq[a:b]来从位置a开始到位置b结束来对序列进行切片。并且提供第三个参数来确定切片的步长。默认步长为1,会返回一份连续的文本。如果给定一个负数步长,如-1,将返回翻转过的文本。
如果原文本与翻转后文本相同,为回文。
练习
要想检查文本是否属于回文需要忽略其中的标点、空格与大小写。改变程序,使其能识别。
import string
def reverse(text):
return text[::-1]
def is_palindrome(text):
return text==reverse(text)
while 1:
something=input()
something=something.lower()
#这里的string.punctuation 是python内置的标点符号的合集
i=something.translate(str.maketrans('', '', string.punctuation))
i=i.replace(' ','')
print(i)
if is_palindrome(i):
print("Yes,it is a palindrome")
else:
print("No,it is not a palindrome")
关于代码解释:
1.在string模块中,有string.punctuation,为标点符号合集
2.maketrans() 方法:用于给 translate() 方法创建字符映射转换表。
- 两个参数:第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串,表示转换的目标。两个字符串的长度必须相同,为一一对应的关系。
- 在Python3中可以有第三个参数,表示要删除的字符,也是字符串
在python3中
str.maketrans(intab,outtab[,delchars])