我试图编写一个程序,要求用户连续输入一个数字,直到用户输入-1为止。在程序结束后,我希望输入的数字按顺序显示为一个整数。
程序按照上面的描述做了所有的事情,除了它还在整数列表中注册了-1,并将其放在最后的单个整数中。
对python来说很新,所以我相信我可能错过了一些相当基本的东西。
例如:如果我写输入'5','6','7','8','-1'
它给我输出:5678-1当我试图得到:5678
x = eval(input('Type a number: '))
print('Write -1 to stop.')
seq = []
seq.append(x)
while x != -1:
x = eval(input('Type a number: '))
seq.append(x)
for i in seq:
print(i, end='')
我尝试在循环中放入if和else,以使x == -1的情况例外,但也得到了相同的结果。
4条答案
按热度按时间mlmc2os51#
如果第一个输入是
-1
,则以下代码不计数。这将产生
如您所要求。
k3bvogb12#
eval
可能不是将字符串解析为整数的最佳方法1.通过eval转换为整数
1.存储在
seq
中1.只有这样,循环才会以
x==-1
再次进行并结束m0rkklqb3#
问题如下:
你把
x
加到序列中,即使它是-1
,因为你在加了while
之后才检查。试试这样的方法:
您也可以将整个代码更改为:
通过这种尝试,您不需要在循环之前初始化
x
,只需要创建空序列。knsnq2tg4#