python3:使用递归判断回连文
这个是答案,但是里有一行代码不理解,这一行代码太长了吧def is_palindrome(n, start, end):
if start > end:
return 1
else:
return is_palindrome(n, start+1, end-1) if n == n else 0
string = input('请输入一串字符串:')
length = len(string)-1
if is_palindrome(string, 0, length):
print('\"%s\"是回文字符串!' % string)
else:
print('\"%s\"不是回文字符串!' % string)
return is_palindrome(n, start+1, end-1) if n == n else 0
这个代码具体是怎么执行的呢{:10_297:} {:10_257:} if n == n成立的话返回1,不成立的话直接返回零推出所有函数吗? 小甲鱼的铁粉 发表于 2020-6-17 09:03
这个是三元运算符 操作 小甲鱼的铁粉 发表于 2020-6-17 09:04
if n == n成立的话返回1,不成立的话直接返回零推出所有函数吗?
如果n == n 条件满足 就执行 if 前面的语句,也就是进入下一次的递归
而如果不满足 则返回 0
Twilight6 发表于 2020-6-17 09:05
如果n == n 条件满足 就执行 if 前面的语句
如果不满足 则返回 0
{:10_275:} is_palindrome(n, start+1, end-1) if n == n else 0
is_palindrome(n, start+1, end-1) 这部分是个函数,n表示字符串,start和end表示的是下标。
整体这一句是个三元表达式,意思等同于:if n == n :
is_palindrome(n, start+1, end-1)
else:
0
也就是说:
如果字符串的开头和结束一致,那就判断第二个字符和倒数第二个字符是否相等,然后往下依次递归。
heidern0612 发表于 2020-6-17 09:08
is_palindrome(n, start+1, end-1) if n == n else 0
is_palindrome(n, start+1, end-1) 这 ...
哇(⊙o⊙)!,清楚{:10_275:}
页:
[1]