我又来问问题了,问题来自课后作业
poetry = input('请输入要检测的回文联')list(poetry)
z = list(poetry)
i = 1
t = list()
while i:
p = list(poetry).pop()
t += p
if list(poetry) == ():
i = 0
break
if list(w) == z:
print('是回文联!')
else:
print('不是回文联')
上面是程序,但是我运行的时候好像跳不出循环最后存储出错,求帮忙看一下,这题是:
编写一个函数,判断传入的字符串参数是否为“回文联”(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)
还是我编写的有问题{:5_104:} 对了,你们是怎么复制代码上去的,我都没看见有选项,我看其他回答贴里都有一行行代码 地狱拖拉机 发表于 2020-7-17 10:36
对了,你们是怎么复制代码上去的,我都没看见有选项,我看其他回答贴里都有一行行代码
新手专区版规:如何发代码 poetry = input('请输入要检测的回文联')
list(poetry)
z = list(poetry)
i = 1
t = list()
while i:
p = list(poetry).pop()
t += p
if list(poetry) == ():
i = 0
break
if list(w) == z:
print('是回文联!')
else:
print('不是回文联')
p = list(poetry).pop()
你的想法是每次移出列表最后一位...
But...骚年...你太天真了...
list(poetry)会一直取你输入的内容作为列表内容,也就是每次循环你其实都在移出同一个元素...
你可以在这行下面加个print(p)验证下。
如果你想达到你的目的,可以先给list(poetry)赋值,比如list1 = list(poetry),这样就会使list1确定下来,再使用list1.pop()方法时才会减少对应元素。
代码黏贴参考如下:(高级模式或者发帖时也有<>这个符号的图表,效果一样)
def hw(s):
for x in range(len(s)):
if s != s[-(x+1)] :
return '不是回文'
return '是回文' yhhpf 发表于 2020-7-17 10:50
你的想法是每次移出列表最后一位...
But...骚年...你太天真了...
list(poetry)会一直取你输入的内容作 ...
poetry = input('请输入要检测的回文联')
list(poetry)
z = list(poetry)
i = 1
t = list()
list1 = list(poetry)
while i:
p = list1.pop()
t += p
if list1 == ():
i = 0
break
if t == z:
print('是回文联!')
else:
print('不是回文联')
我改了,运行的时候它说:
Traceback (most recent call last):
File "C:/Users/86156/Desktop/解忧杂货店/python/game.py/会文联.py", line 8, in <module>
p = list1.pop()
IndexError: pop from empty list
{:5_104:} {:10_254:}{:10_254:}{:10_254:}{:10_254:}{:10_254:}{:10_254:}{:10_254:}{:10_266:}{:10_266:}{:10_266:} 地狱拖拉机 发表于 2020-7-17 10:58
我改了,运行的时候它说:
Traceback (most recent call last):
File "C:/Users/86156/Deskto ...
孺子不可教也= =.................................................................................................{:10_245:}
你等会吧...一会我空点的时候,按你思路写完得了- - 对不起我是学术垃圾{:10_266:} i = 1
while i:
poetry = input('请输入要检测的回文联')
list(poetry)
z = list(poetry)
p = list(poetry)
p.reverse()
print(p)
if list(poetry) == ():
i = 0
elif p == z:
print('是回文联!')
else:
print('不是回文联')
{:5_109:} xiangya 发表于 2020-7-17 11:04
i = 1
while i:
poetry = input('请输入要检测的回文联')
{:10_266:} 地狱拖拉机 发表于 2020-7-17 11:03
对不起我是学术垃圾
你看下吧- -...基础的东西多学点。
poetry = input('请输入要检测的回文联')
z = list(poetry)
i = 1
t = list()
while i:
p = z.pop()#此处不能使用p=list(poetry),否则p一直会被赋值为list(poetry);
t += p
if z == []:#此处不是(),列表是[]啊,老哥!!!!!!!!!!!!!!!
i = 0
break
if list(t) == list(poetry): #此处不能用z来做比较,你前面循环刚吧z列表pop()空了呀,你还拿他比。。。
print('是回文联!')
else:
print('不是回文联')
yhhpf 发表于 2020-7-17 11:13
你看下吧- -...基础的东西多学点。
谢谢{:10_254:}
页:
[1]