月半三木 发表于 2021-6-29 15:11:35

迭代的课后作业

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 #这一部分,return后又函数的调用以及If语句,两者的先后顺序是如何的
      
string = input('请输入一串字符串:')
length = len(string)-1

if is_palindrome(string, 0, length):
      print('"%s"是回文字符串!' % string)
else:
      print('"%s"不是回文字符串!' % string)


代码如上,第二个return那里,按照百度到的别的帖子的解答是先判断首位和末位字符是否相同,但是希望有人能讲解一下这个return的函数用法

逃兵 发表于 2021-6-29 15:13:25

这里相当于一个if-else语句
你可以理解成这样

def is_palindrome(n, start, end):
      if start > end:
                return 1   
      else:
                if n == n :
                  return is_palindrome(n, start+1, end-1)
                else:
                  return 0

suchocolate 发表于 2021-6-29 15:15:38

先if
>>> a=1
>>> print('yes') if a == 1 else print('no')
yes
>>>

月半三木 发表于 2021-6-29 15:18:33

逃兵 发表于 2021-6-29 15:13
这里相当于一个if-else语句
你可以理解成这样

好的,感谢
页: [1]
查看完整版本: 迭代的课后作业