我是python的新手,我正在尝试创建一个程序,该程序将告诉用户输入的单词是否是回文。当我执行代码时,它输出以下内容:
请输入一个单词。我会告诉你这个词是否是回文词: hannah
请输入一个单词。我会告诉你这个词是否是回文:hannah 这个词不是回文
无 ['n','a','h']
以退出代码0结束的过程
我不确定为什么cal_tableRev中的列表被保存为“ none”。关于如何解决此问题的任何想法将对您有很大帮助!
user_input = input("Please enter a word. I will tell you if that word is a palindrome or not: ").lower()
cal_table1 = []
cal_table2 = []
for letter in user_input:
cal_table1.append(letter)
inputSize = len(cal_table1)
Calsize = inputSize / 2
if inputSize % 2 != 0:
print("The word has an odd number of letters and, therefore, it is not a palindrome. Please enter a new word")
for letters in cal_table1[0:int(Calsize)]:
cal_table2.append(letters)
cal_tableRev = str(cal_table2.reverse())
frontHalf = str(cal_tableRev)
backHalf = str(cal_table2)
calulated_word = str(frontHalf) + str(backHalf)
if user_input == calulated_word:
print("This word is a palindrome")
else:
print("This word is not a palindrome")
print(calulated_word)
答案 0 :(得分:0)
函数reverse()反转给定列表,但返回值None,然后将其分配给cal_tableRev 尝试:
cal_tableRev = copy.deepcopy(cal_table2)
cal_tableRev.reverse() #reversing without assigning the None value
cal_tableRev=str(cal_tableRev)
答案 1 :(得分:0)
看起来您正在做很多工作,python可以使您更轻松。看看我在python控制台中运行的以下命令:
>>> word='tenet'
>>> backwards=''.join(reversed(word))
>>> word == backwards
True
>>> word='pizza'
>>> backwards=''.join(reversed(word))
>>> word == backwards
False
>>> word
'pizza'
>>> backwards
'azzip'