def palindrome(string): #这里定义一个函数,参数应该是‘’上海自来水来自海上‘’
length = len(string) #length 应该等于 9
last = length-1 #那这里的last值应该是8 (这里不明白,为什么要这样写?)
#这是用于字符串的索引,因为是从0开始,最后一个就是8
length //= 2 #这里是地板除法,向下取整应该是 4
flag = 1 # 这里也不明白,有什么用
#做一个标记,为flag赋初值,先假定是回文
for each in range(length): #此处的循环值应该是 0 1 2 3
if string[each] != string[last]: #这步应该是证明前后是否相同?不懂,希望能代入解释下
#如果第0个字符和最后一个不相同,则。。。。,当然随着for循环依次比较第1个和倒数第二个。。。
flag = 0 #始终不了解flag的作用,与上面那个有什么联系
#如果不相同就把标记修改为0
last -= 1 #这步是想说明前后循环的数应该相等,同时进一步和退一步?
#each每次加一,从0到1,2,3。。。,last每次减一从8到7,6,5。。。。
if flag == 1:
return 1
else:
return 0
string = input('请输入一句话:')
if palindrome(string) == 1:
print('是回文联!')
else:
print('不是回文联!')