本帖最后由 逃兵 于 2020-11-17 16:49 编辑
首先说明你的代码错误,列表切片是使用中括号[]而非小括号
另外打印函数的话会出现None因为函数没有返回值,所以只需要调用函数就可以,不需要打印
先写个偷懒版
- def huiwenlian(list1):
- if list1 == list1[::-1]:
- print('回文联')
- else:
- print('不是回文联')
- list1 = input("input a sentence: ")
- huiwenlian(list1)
复制代码
根据你的逻辑分析
1.先判断列表个数是奇数还是偶数
2.再判断第一个字是否和最后一个字相同,第二个字和倒数第二个字是否相同以此类推
3.如果都相同,那么它是回文联
在这里我们修改一下逻辑
去掉第1条,不需要判断奇数偶数
保留第2条,判断第一个字是否和最后一个字相同,第二个字和倒数第二个字是否相同以此类推
修改第3条,如果出现任意一次不相同时,不是回文联,否则为回文联
修改后的代码:
- def huiwenlian(list1):
- a = 0
- length = len(list1)
- for each in range(length-1):
- if list1[each] != list1[length-1-each]:
- a=1
- break
- if a == 0:
- print('是回文联')
- else:
- print('不是回文联')
- list1 = input("input a sentence: ")
- huiwenlian(list1)
复制代码