回顾我之前在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'。
答案 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
,第二个变量list
和myvars
个其他变量。如果只有两个数字,则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)))