|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 bobfenglin 于 2018-2-2 10:33 编辑
- def palindrome(string):
- length = len(string)
- last = length-1
- length //= 2
- flag = 1
- for each in range(length):
- if string[each] != string[last]:
- flag = 0
- last -= 1
- if flag == 1:
- return 1
- else:
- return 0
- string = input('请输入一句话:')
- if palindrome(string) == 1:
- print('是回文联!')
- else:
- print('不是回文联!')
复制代码
另外我自己也写了一个,不过一直出错。不知道哪里错了,请高手指正
- def turnby(string):
- str2=''
- str2=string[::-1]
- if string==str2:
- return 1
- else:
- return 0
-
- string=input('请输入一句话:')
- if turnby(string)==1:
- print('是回文联')
- else:
- print('不是回文联')
复制代码 非常困惑, str2=string[::-1]这条语句不是可以实现字符串的翻转吗?为什么放在函数里不行?
第一个代码中
for each in range(length):
if string[each] != string[last]:
flag = 0
last -= 1 这几行代码我理解的是假如length=7 each=2 last=6 然后last依次递减并与 each 对应的元素匹配
但是 for each in range(length)里面本身each就不是从1开始到结尾的,怎么能和 last 对应的元素相匹配呢?
还是 each 可以逐个匹配,但是each如果是逐个匹配的话 last是从 length-1开始的。感觉怎么也对不上啊。
|
|