在python中询问数字并返回一个列表

时间:2015-09-29 06:47:45

标签: python

嘿伙计们,我一直坚持锻炼的一部分。我应该做的是要求一个数字(练习说我需要输入数字(4,-3,-15,0,10,22,-9999),其中-9999是中断号码。列表a是输入的所有数字,列表p是所有正数,列表n是所有负数。这是我到目前为止的代码:

a = []
p = []
n = []
total = -9999

while(True):
    user_input = int(input('Please enter a number:'))
    if(user_input == -9999):
    break
elif(user_input >= 0):
    p.append(user_input)
elif(user_input <= 0):
    n.append(user_input)


 a = p + n
 print('The list of all numbers entered is:', '\n', a)

当我运行这个程序并使用这些数字时,我得到[4,0,10,22,-3,-15]这是正确的但是当我查看这个练习的答案时,它的数字顺序不同[4,-3,-15,0,10,22]。我坚持如何按此顺序获取数字。

一个更快的问题。在本练习的b部分,我应该找到所有数字,正数和负数的平均值。当我打印a,p,n时,它不会向负列表添加0,即使我有user_input&lt; = 0也会抛弃平均值。我错过了什么?

谢谢你们。

2 个答案:

答案 0 :(得分:1)

第一部分使用此

while(True):
    user_input = int(input('Please enter a number:'))
    if(user_input == -9999):
        break
    elif(user_input >= 0):
        p.append(user_input)
    elif(user_input <= 0):
        n.append(user_input)
    #always append to a, makes the order the same as input order.
    a.append(user_input)

(识别问题是我假设的错误复制粘贴) 对于第二部分,您可以使这样的elif使其适用于0

    elif(user_input >= 0):
        p.append(user_input)
    if(user_input <= 0 and user_input != -9999):
        n.append(user_input)

失败的原因是因为一旦它存储在p中,它就会跳过其余的elif else块。

答案 1 :(得分:0)

您的缩进编码错误。结果,两个elif句子没有在你的while循环中运行。请尝试以下代码。

a = []
p = []
n = []
total = -9999

while(True):
    user_input = int(input('Please enter a number:'))
    if(user_input == -9999):
    break
    elif(user_input >= 0):
        p.append(user_input)
    elif(user_input <= 0):
        n.append(user_input)


 a = p + n
 print('The list of all numbers entered is:', '\n', a)