Python练习1---对称文本

对称文本


在这里插入代码片

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])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值