python判断回文字符串不考虑空格符号大小写_检查带有忽略的标点符号、空格和cas的回文文本...

这是一个关于如何改进Python程序来判断回文字符串的问题,需要忽略标点、空格和大小写。原代码存在错误,通过引入`string`库并创建`remove_punctuations`函数来过滤非字母字符并转为小写,但最终实现的代码总是返回回文结果,无论输入什么内容。
摘要由CSDN通过智能技术生成

作业练习:

检查文本是否是回文也应该忽略标点、空格和大小写。例如,“先生,请起立投票”,也是一个回文,但我们目前的计划并没有这样说。你能改进上面的程序来识别这个回文吗?

原产地代码:def reverse(text):

return text[::-1]

def is_palindrome(text):

return text == reverse(text)

something = input('Enter text: ')

if (is_palindrome(something)):

print("Yes, it is a palindrome")

else:

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

我的尝试:import re

def reverse(text):

global words

words = text.split()

return words[::-1]

def is_palindrome(text):

return words==reverse(text)

something = input('Enter text: ')

if (is_palindrome(something)):

print("Yes, it is a palindrome")

else:

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

错误:Enter text: jfldj

Traceback (most recent call last):

File "/Users/apple/PycharmProjects/Problem Solving/user_input.py", line 13, in

print("Yes, it is a palindrome")

File "/Users/apple/PycharmProjects/Problem Solving/user_input.py", line 10, in is_palindrome

NameError: name 'words' is not defined

我该如何更改代码?

最新代码:import string

def remove_punctuations(word):

return "".join(i.lower() for i in word if i not in string.ascii_letters)

def reverse(text):

return text[::-1]

def is_palindrome(text):

text = remove_punctuations(text)

return text == reverse(text)

something = input('Enter text: ')

if (is_palindrome(something)):

print("Yes, it is a palindrome"

else:

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

不管我输入什么,输出都是肯定的。Enter text: hggjkgkkkk

Yes, it is a palindrome

怎么了?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值