brianwang93 发表于 2020-4-28 12:01:14

第019讲 动动手0

def palindrome(string):
    length = len(string)
    last = length-1
    length //= 2
    flag = 1
    for each in range(length):
      if string != string:
            flag = 0
      last -= 1

    if flag == 1:
      return 1
    else:
      return 0

string = input('请输入一句话:')
if palindrome(string) == 1:
    print('是回文联!')
else:
    print('不是回文联!')

第二行不是定义过length了吗? 为什么第四行又要定义一遍 length = length // 2?

sunrise085 发表于 2020-4-28 12:10:45

这不叫重新定义
这里只是修改了一下变量的值而已
你完全可以用另一个变量名,比如把第四行的length改个名字length1,写成length1=length//2,然后第六行的length改为length1,也是可以的。

txxcat 发表于 2020-4-28 12:13:49

if string != string:,这里是检查开头的字符和后面对应的字符是否相同,只用检查一半就查到所有字符了,所以长度要除2,不然又倒过来检查一次了,没必要。
页: [1]
查看完整版本: 第019讲 动动手0