星翼和尘 发表于 2022-7-25 17:49:06

判断输入字符串参数是否是'回文联'

def fun1(var):
    length=len(var)
    i=0
    last=length-1
    b=0
    while (i<length):
      if var==var:
            ++b
      ++i
      last-=1
    return b

a=input('请输入一句话:')
if fun1(a)==len(a):
    print('是回文联')
else:
    print('不是回文联')



结果显示:
请输入一句话:上海上
Traceback (most recent call last):
File "C:/Users/14127/Desktop/Python学习/课后习题/回文联判断函数.py", line 14, in <module>
    if fun1(a)==len(a):
File "C:/Users/14127/Desktop/Python学习/课后习题/回文联判断函数.py", line 7, in fun1
    if var==var:
IndexError: string index out of range


这是为什么?,按理说索引应该没有超出范围啊~,求助

临时号 发表于 2022-7-25 17:55:42

本帖最后由 临时号 于 2022-7-25 17:58 编辑

++b和++i是无用代码
>>> i=0
>>> b=0
>>> ++i
0
>>> ++b
0
>>> i
0
>>> b
0
>>>
所以应把代码改为:
def fun1(var):
    length=len(var)
    i=0
    last=length-1
    b=0
    while (i<length):
      if var==var:
            b += 1
      i += 1
      last-=1
    return b

a=input('请输入一句话:')
if fun1(a)==len(a):
    print('是回文联')
else:
    print('不是回文联')

青出于蓝 发表于 2022-7-25 17:57:22

def fun1(var):
    length=len(var)
    i=0
    last=length-1
    b=0
    while (i<length):
      
      if var==var:
            
            b+=1
         
      i+=1
      last-=1
    return b

a=input('请输入一句话:')
if fun1(a)==len(a):
    print('是回文联')
else:
    print('不是回文联')

++是c的语法,python不适用

星翼和尘 发表于 2022-7-25 18:01:02

临时号 发表于 2022-7-25 17:55
++b和++i是无用代码

所以应把代码改为:

原来如此,我学混了。。。

星翼和尘 发表于 2022-7-25 18:01:50

青出于蓝 发表于 2022-7-25 17:57
++是c的语法,python不适用

好的,感谢帮助
页: [1]
查看完整版本: 判断输入字符串参数是否是'回文联'