回顾一下我以前用python开发的计算器项目,我想对它进行改进。我注意到要使用的数字数量是硬编码的,只能选择使用2-4个数字等等。
我想要一个解决方案,在这个解决方案中,我可以让用户输入他想要使用的数字,并让程序对此做出响应,并使用每个值创建正确的变量数量。
在这里,这个程序从一个输入中接受两个变量:
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,那么它将根据变量“_of_vars”从输入创建3个变量,以此类推。
发布于 2015-08-19 23:15:47
使用list变量:
v = input().split()而不是使用v[1]作为第一个值,v[2]作为第二个值,v[3]用于第三个...etc。
将所有值转换为int
v = [int(x) for x in v]做之和:
s = sum(v)要知道值的数目:
l = len(v)发布于 2015-08-19 23:18:57
如果您想解压缩某些硬编码变量加上不确定数量的附加变量,可以使用*运算符(仅在Python3中):
first, second, *myvars = input("Enter 2 nums!").split()然后,您将有一个变量first、第二个变量second和一个myvars中的附加变量的list。如果只有两个数字,myvars将是一个空的list。
但是,由于不需要一定数量的变量,所以可以这样做:
myvars = input("Enter 2 nums!").split()myvars将是split()返回的list。
最后,您可以使用内置函数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)))https://stackoverflow.com/questions/32107101
复制相似问题