KAKA学python 发表于 2021-2-8 00:36:49

萌新求助!第十九讲题目

本帖最后由 KAKA学python 于 2021-2-8 00:38 编辑

编写一个函数,判断传入的字符串参数是否为“回文联”(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)
程序执行结果如图:



def judge():
    temp = input('请输入一句话:',)
    q =
    length = len(temp)
    for x in range (length):
      for y in range (length):
            if x+y == (length)-1:
                if q == q:
                  print('是回文联')
                else:
                  print('不是回文联')   
judge()


想知道我个程序运行的时候为什么会报错,该如何修改。

wp231957 发表于 2021-2-8 06:58:26

逻辑混乱,不知道你这些代码放在一起想表达啥

wp231957 发表于 2021-2-8 08:32:15

鉴于python的一些特性
回文判断使用切片是最优方案
temp = input('请输入一句话:')
if temp==temp[::-1]:
   print("回文")
else:
   print("非")   

wp231957 发表于 2021-2-8 08:39:02

如果非要用函数的话,也不建议再函数体内使用输入输出语句
比如:
def judge(sstr):
    b=0
    e = len(sstr)-1
    flag=1
    while b<=e:
      if temp!=temp:
         flag=0
         break
      b+=1
      e-=1
    return flag


temp = input('请输入一句话:')
if judge(temp):
   print("回文")
else:
   print("非")   

wp231957 发表于 2021-2-8 08:47:23

如果一定要按你的思路可以这样写:

def judge():
    temp = input('请输入一句话:')
    #q = #没有意义的语句 可以去掉
    length = len(temp)
    flag=1#设置标志位 是一定的
    for x in range (length//2+1):
      if temp !=temp:
         flag=0
         break
    if flag:
       print("回文")
    else:
       print("非")   

judge()

KAKA学python 发表于 2021-2-8 10:59:23

wp231957 发表于 2021-2-8 08:47
如果一定要按你的思路可以这样写:

好的好的理解了!!非常感谢

W1ND123 发表于 2021-9-23 11:49:14

wp231957 发表于 2021-2-8 08:47
如果一定要按你的思路可以这样写:

这也太帅了
页: [1]
查看完整版本: 萌新求助!第十九讲题目