hi 请参考,这道题的考核点是:for循环、if语句、函数基础使用、字符串的元素访问,其中 for循环+元素访问是理解的难点
def palindrome(string): #以 string = '上海自来水来自海上' 为例
length = len(string) #求出字符串string的长度,这里是 9
last = length-1 #序列从索引0开始计数,因此最后一位元素的索引是8
length //= 2 # 地板除,确定string的中间元素位置,求出的索引是 4 (即:'水')
flag = 1 #标志位,始终为1 即为回文联
for each in range(length): #这里是理解的难点:通过for循环进行元素的一一比对,each分别取 0,1,2,3
if string[each] != string[last]: #第一轮比对是 string[0] 和 string[8],即'上' 和 '上'
flag = 0
last -= 1 #因为last -1 ,第二轮对比就是 string[1] 和 string[7],即'海' 和 '海',第三轮、第四轮以此类推,直到所有元素比对结束。
#若if条件为真,flag被赋值为0,回文联不成立;反之,为回文联
if flag == 1:
return 1
else:
return 0
string = input('请输入一句话:')
if palindrome(string) == 1:
print('是回文联!')
else:
print('不是回文联!')