回联文函数
def huilian(string):list1 = list(string)
list2=[]
for i in string:
list2 = list2.append(list1.pop())
if list1 == list2:
print('是回联文')
else:
print('不是回联文')
N = input('请输入一句话:')
huilian(N)
请问各位大神, 我这问题出哪了? list2 = list2.append(list1.pop())
改为
list2.append(list1.pop()) 冬雪雪冬 发表于 2021-12-27 14:49
list2 = list2.append(list1.pop())
改为
list2.append(list1.pop())
感谢您的回复,确实是通过了,不过我输入“上海自来水来自海上”,结果却是“不是回联文”,请帮忙再指导一下 nettkd 发表于 2021-12-27 15:25
感谢您的回复,确实是通过了,不过我输入“上海自来水来自海上”,结果却是“不是回联文”,请帮忙再指导 ...
因为list1经过多次pop后已经是空的列表了。 冬雪雪冬 发表于 2021-12-27 15:31
因为list1经过多次pop后已经是空的列表了。
这个问题我想到了,我已经改了,但还是出现那个问题
def huilian(string):
list1 = list(string)
list2=[]
for i in list(string):
list2.append(list(string).pop())
if list1 == list2:
print('是回联文')
else:
print('不是回联文')
N = input('请输入一句话:')
huilian(N)
麻烦你看下 冬雪雪冬 发表于 2021-12-27 15:31
因为list1经过多次pop后已经是空的列表了。
我的思路是复制出一个新列表,对原列表pop()后,出来的list2是否=复制出的新列表 nettkd 发表于 2021-12-27 15:37
这个问题我想到了,我已经改了,但还是出现那个问题
def huilian(string):
list1 = list(string)
list(string).pop()总是弹出最后一个元素,比如输入的是123,则弹出的一直是3 冬雪雪冬 发表于 2021-12-27 15:51
list(string).pop()总是弹出最后一个元素,比如输入的是123,则弹出的一直是3
额?不应该是321依次返回吗 nettkd 发表于 2021-12-28 09:02
额?不应该是321依次返回吗
你增加一个print看看返回的是什么。
安装你的思路改写的,供参考。
def huilian(string):
list1 = list(string)
temp = list1[:]
list2=[]
for i in list1:
list2.append(temp.pop())
if list1 == list2:
print('是回联文')
else:
print('不是回联文')
N = input('请输入一句话:')
huilian(N) 冬雪雪冬 发表于 2021-12-28 10:11
你增加一个print看看返回的是什么。
安装你的思路改写的,供参考。
确实是的,我忘记了复制可以用[:]了,还是学艺不精啊
页:
[1]