嘿伙计们,我一直坚持锻炼的一部分。我应该做的是要求一个数字(练习说我需要输入数字(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也会抛弃平均值。我错过了什么?
谢谢你们。
答案 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)