Lioo 发表于 2018-8-25 12:37:46

小白,问一下各位大神,回文联这题的注释对吗

def palindrome(string):#创建回文联函数
    length = len(string)#计算字符串长度
    last = length-1#这里表示的是最后一个字符的位置信息
    length //= 2#长度从中间刨开
    flag = 1#标记1
    for each in range(length):#for用each循环length的次数
      if string != string:#如果字符串的首和尾不匹配标记
            last -= 1#如果第0个和最后一个匹配,则继续匹配第1个和倒数第二个,这样循环下去;each是从0循环字符串出来,last-1是从最后个一个字符串倒着回来。
    if flag == 1:#如果条件成立 标记为1
      return 1#返回值1
    else:#如果不成立
      return 0#返回值0

string = input('请输入一句话:')#输入的字符赋值给string
if palindrome(string) == 1:#如果条件 回文联函数值等于1 成立
    print('是回文联!')#打印是回文联
else:#条件不成立
    print('不是回文联!')#打印不是回文联



#自己不会做,就看了答案,翻了很多前面人做的,然后我在自己加了注释,不知道对不对。

凌九霄 发表于 2018-8-25 12:57:22

你这个函数明显少写了东西,关键flag要根据判断赋1或者0,缺漏了。
其实回文联最简单的就是倒过来比较一下就OK了
def palindrome(string):
    if string == string[::-1]:
      print('是回文联')
    else:
      print('不是回文联')

Lioo 发表于 2018-8-25 13:24:50

凌九霄 发表于 2018-8-25 12:57
你这个函数明显少写了东西,关键flag要根据判断赋1或者0,缺漏了。
其实回文联最简单的就是倒过来比较一下 ...

这个函数是课后答案,我的理解是这个函数只负责返回return值是等于1还是0,可能跟课程涉及的有关。不过你太厉害了,竟然可以使用列表来做出来,而且代码还少。{:9_228:}

凌九霄 发表于 2018-8-25 14:29:10

Lioo 发表于 2018-8-25 13:24
这个函数是课后答案,我的理解是这个函数只负责返回return值是等于1还是0,可能跟课程涉及的有关。不过你 ...

可能是课程要求那么去比较吧。另外,那个不是列表,是字符串切片

Boibot 发表于 2021-8-29 16:34:54

凌九霄 发表于 2018-8-25 14:29
可能是课程要求那么去比较吧。另外,那个不是列表,是字符串切片

谢谢
页: [1]
查看完整版本: 小白,问一下各位大神,回文联这题的注释对吗