如何从raw_input创建列表?

时间:2015-03-24 17:17:21

标签: python raw-input

while true:
    n = raw_input("put your family member's age. if you are done, put 'done'") # if I put int on n, I cannot put done.
    if int(n) == int():
        continue
    if n == str():
        print "ERROR"
        continue
    if n == "done":
        break
print #I couldn't make it

我想让这个节目计算家庭成员人数和家庭成员年龄的总和

Q1。我应该把int放在n上吗?但是如果我把int放在n上,那么当我完成时会出错。我想只在n

中添加数字和'完成'

Q2。我怎么算n?我应该列一个清单吗?

Python很有吸引力。但是当我遇到问题时,它会让我发疯。

3 个答案:

答案 0 :(得分:0)

将年龄放在list是可行的方法。您可以使用try except块来了解用户何时完成。

ages = []
while True:
try:
    n = int(raw_input("put your family member's age. if you are done, put 'done'")) 
    ages.append(n)
except ValueError:
    break

然后你可以len(ages)获取条目数量,sum(ages)获得年龄总和

答案 1 :(得分:0)

要将项目放在列表中,您可以创建列表并使用append()方法。

alist = []
while True:
    try:
        n = int(raw_input("put your family member's age. if you are done, put 'done'")) 
        alist.append(n)
    except ValueError:
        break
print sum(alist) # gives you the sum of the ages

但是,如果您只需计算总年龄,则不需要列表:

tot = 0
while True:
    try:
        n = int(raw_input("put your family member's age. if you are done, put 'done'")) 
        tot += n
    except ValueError:
        break
print tot # gives you the sum of the ages

答案 2 :(得分:0)

使用此选项,您可以附加到列表,然后在用户键入done后打印列表和总和。 isdigit()避免使用try-except,但请记住,它仅适用于正值,不带小数位。多年来,它应该是非常合适的:

age_list = []
while True:
    n = raw_input("put your family member's age. if you are done, put 'done'")
    if n.isdigit():
        age_list.append(int(n))
    elif n == "done":
        break
    else:
        print "ERROR"

print age_list
print sum(age_list)