柠檬冲冲冲 发表于 2021-8-13 10:59:25

用递归写检验回文字符串

def is_palindrome(n,start,end):
    if start > end:
      return 1
    else:
      return is_palimdrome(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)



这里怎么报错:连续字符后出现的意外字符呢
帮帮忙,求求了

逃兵 发表于 2021-8-13 11:31:57

你这格式化输出出问题了,用f字符串吧

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(f'{string}是回文字符串!')
else:
    print(f'{string}不是回文字符串!')

阿奇_o 发表于 2021-8-13 11:33:41

>>> def isPal(s):
        if len(s) == 1 or len(s) == 0:
                return True
        else:
                return isPal(s) if s == s[-1] else False

       
>>> isPal('abccba')
True
>>> isPal('level')
True
>>> isPal('noon')
True
>>> isPal('abcd')
False
>>> isPal('a')
True
>>>

柠檬冲冲冲 发表于 2021-8-13 11:36:26

逃兵 发表于 2021-8-13 11:31
你这格式化输出出问题了,用f字符串吧

f字符串和我上面这个有什么不一样啊

灰晨 发表于 2021-8-13 11:36:56

'\''%s\''是回文字符串!'% string
这里\'将一个引号转义了,要用 '\\'
一般 \',是用来表示类似 I'm 之类句子的时候,用来转义这个 ' ,你这里的引号不是用来当缩略使用就要用 '\\'
然后,你if else都是回文字符串,得改改
还有 return is_palimdrome(n,start+1,end-1) if n == n else 0这里 is_palimdrome拼写错了,n 写成 m了

逃兵 发表于 2021-8-13 11:40:19

柠檬冲冲冲 发表于 2021-8-13 11:36
f字符串和我上面这个有什么不一样啊

你只是写错了
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)

wbing 发表于 2021-8-13 11:48:20

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(string,'是回文字符串!')
else:
    print('\\''%s\\''不是回文字符串!' % string)

柠檬冲冲冲 发表于 2021-8-13 11:55:19

阿奇_o 发表于 2021-8-13 11:33



第五行这里if前面为什么不是啊?
页: [1]
查看完整版本: 用递归写检验回文字符串