从输入声明并分配一定数量的变量?

时间:2015-08-19 23:11:05

标签: python variables input

回顾我之前在python中创建的计算器项目,我想改进它。我注意到要使用的数字是硬编码的,只能选择使用2-4个数字等等。

我想要一个解决方案,我可以根据用户输入他想要使用的数量,并让程序对此做出响应,并为每个值创建正确数量的变量。

此程序从1个输入中获取2个变量:

    v1, v2 = input("Enter 2 nums!").split()
    print("var1 = ", v1, "\nvar2 =", v2)

    v1, v2 = [int(v1), int(v2)]
    ans = v1 + v2

    print("Sum =",ans)

虽然这对多个输入有用,但它无法实现我的设定目标。以某种方式可能有这些' v1',' v2'根据有多少“分裂”自动创建变量'它确实发现了多少变量。

例如,如果amount_of_vars = 3,那么它将从输入中创建3个变量,依此类推,具体取决于变量' amount_of_vars'。

2 个答案:

答案 0 :(得分:4)

使用list变量:

v = input().split()

使用v[1]代表第一个值,v[2]代表第二个值,v[3]代表第三个......等等。

将所有值转换为int

v = [int(x) for x in v]

做总和:

s = sum(v)

知道值的数量:

l = len(v)

答案 1 :(得分:1)

如果你想解压某些硬编码变量加上不确定数量的额外变量,你可以使用*运算符(仅在Python 3中):

first, second, *myvars = input("Enter 2 nums!").split()

您将在first中拥有变量second,第二个变量listmyvars个其他变量。如果只有两个数字,则myvars将为空list

但是,由于您不想要某个最小数量的变量,您可以这样做:

myvars = input("Enter 2 nums!").split()

myvars将是list返回的split()

最后,您可以使用内置函数sum()找到数字的总和:

myvars = input("Enter 2 nums!").split()
print('var{} = {}'.format(idx+1, num) for idx, num in enumerate(myvars))

print("Sum =", sum(map(int, myvars)))