第17讲课后回文联代码问题
def huiwen(string) :list1=list(string)
list2=list1.reversed()
if list1 == list2 :
print('这是回文联')
else :
print('这不是')
huiwen('上海自来水来自海上')
为什么判断不是回文联啊 判断逻辑不对~{:10_277:} def huiwen(s):
list1 = list(s)
list2 = list1
list2.reverse()
if list1 == list2:
print('是回文')
else:
print('不是回文') list1=list(string)
list2=list1.reversed()
list1 本身这时已经改变了,只不过把改变后的赋值给了list2
可以改成list1 = list(string)[:] ~风介~ 发表于 2017-2-24 09:53
判断逻辑不对~
list2=list1.reversed()是不是这句不行啊?
不是把list1反转后赋值给list2的意思吗? 本帖最后由 编程新血 于 2017-2-25 20:18 编辑
程序中应该注意:
列表与列表切片的区别。通过指令将列表1=列表2,相当于列表1与列表2关联,
即2个列表名指向同一个列表数据,改变一个列表的数据,另一个也会改变。
如果只想创建2个相同的列表应该用切片,即list2=list1[:]
----------------
这里用函数reversed()
def huiwen(s):
list1 = list(s)
if list1 ==list(reversed(list1)):
print('是回文')
else:
print('不是回文')
huiwen('s123333s')
--------------
.reverse()方法是将列表翻转,list1.reverse()的效果是,将list1内容翻转。
而list2=list1.reverse(),此时list2是None,它不是个列表。
页:
[1]