SHgg 发表于 2020-5-4 23:17:57

关于判断是否为回文联

def palindrome(string):
    list1 = list(string)
    list2 = reversed(list1)
    if list1 == list(list2):
      print('是回文联!')
    else:
      print( '不是回文联!')
string = input('请输入一句话:')

怎么修改才能实现输入一句话就能够判断是否为回文联,感谢!

Twilight6 发表于 2020-5-4 23:21:56

def palindrome(string):
    if string == string[::-1]:
      return '是回文'
    return '不是回文'

或者:
a = lambda string : '是回文联' if string == string[::1] else '不是回文联'
print(a('asddsa'))

_2_ 发表于 2020-5-5 08:49:22

本帖最后由 _2_ 于 2020-5-5 08:51 编辑

Twilight6 发表于 2020-5-4 23:21
或者:

你这不行啊,看我的:
def func(s: str) -> bool: return s == s[::-1]
你还是没有学到精髓{:10_256:}
测试:
func(input("判断回文联:"))

_2_ 发表于 2020-5-5 08:55:38

有几个地方你可以改一改
第一个,list2 本身已经是一个列表了,就不用再 list(list2) 了
第二个,return 表示函数运行结束,so 你可以直接
if list1 == list2:
    return True
return False
也可以减少代码量

Twilight6 发表于 2020-5-5 09:27:50

_2_ 发表于 2020-5-5 08:49
你这不行啊,看我的:

你还是没有学到精髓


哈哈 我还不会你们->这个的用法 这个是叫什么?

_2_ 发表于 2020-5-5 11:57:27

Twilight6 发表于 2020-5-5 09:27
哈哈 我还不会你们->这个的用法 这个是叫什么?

强制将返回值 bool,主要是让人知道你的函数应该会返回什么
页: [1]
查看完整版本: 关于判断是否为回文联