奇恒之腑 发表于 2022-12-5 13:47:26

python回文联作业

def huiwenlian2(str):
    list1=list(str)
    list2=reversed(list1)
    if list1 == list(list2):
      print( '是回文联')
    else:
      print( '不是回文联')
    while True:
      t=input('继续请输入y,否则退出程序')
      if t!='y':
            break
      else:
            pass
      str=input('123请输入需验证是否为回文联的字符串: ')
      huiwenlian2(str)
      
str=input('请输入需验证是否为回文联的字符串: ')
huiwenlian2(str)



继续请输入y,否则退出程序y
继续请输入y,否则退出程序1


为什么需要输入两次才会退出程序??

suchocolate 发表于 2022-12-5 14:00:03

本帖最后由 suchocolate 于 2022-12-5 14:10 编辑

递归了
def is_huiwen(s):
    lst1 = list(s)
    lst2 = reversed(lst1)
    if lst1 == lst2:
      print('是回文联')
    else:
      print('不是回文联')


if __name__ == "__main__":
    while True:
      huiwen(input('请输入需验证是否为回文联的字符串: '))
      if input('继续请输入y,否则退出程序: ') != 'y':
            break

jackz007 发表于 2022-12-5 14:05:37

def huiwenlian2():
    while True:
      s = input('请输入字符串: ')
      if s:
            if s == s[::-1] : print( '是回文联')
            else : print( '不是回文联')
      else : break

huiwenlian2()

奇恒之腑 发表于 2022-12-5 14:45:13

jackz007 发表于 2022-12-5 14:05


你这个我会,但是我想要给用户一个选项说是否继续
我不明白的是为什么我写的那个程序:
为什么直接输入y以外的字符串,会直接退出
但,如果输入了y之后,会退出两次询问再退出

suchocolate 发表于 2022-12-5 16:53:53

本帖最后由 suchocolate 于 2022-12-5 16:59 编辑

奇恒之腑 发表于 2022-12-5 14:45
你这个我会,但是我想要给用户一个选项说是否继续
我不明白的是为什么我写的那个程序:
为什么直接输入 ...

递归干扰了。
非y字符走break,后面的就不执行了。

猪猪以都都 发表于 2022-12-5 20:05:54

递归了def is_huiwen(s):
    lst1 = list(s)
    lst2 = reversed(lst1)
    if lst1 == lst2:
      print('是回文联')
    else:
      print('不是回文联')


if __name__ == "__main__":
    while True:
      huiwen(input('请输入需验证是否为回文联的字符串: '))
      if input('继续请输入y,否则退出程序: ') != 'y':
            break
页: [1]
查看完整版本: python回文联作业