首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从输入中声明并分配一定数量的变量?

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

Stack Overflow用户
提问于 2015-08-19 23:11:05
回答 2查看 1.8K关注 0票数 0

回顾一下我以前用python开发的计算器项目,我想对它进行改进。我注意到要使用的数字数量是硬编码的,只能选择使用2-4个数字等等。

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

在这里,这个程序从一个输入中接受两个变量:

代码语言:javascript
复制
    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个变量,以此类推。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-19 23:15:47

使用list变量:

代码语言:javascript
复制
v = input().split()

而不是使用v[1]作为第一个值,v[2]作为第二个值,v[3]用于第三个...etc。

将所有值转换为int

代码语言:javascript
复制
v = [int(x) for x in v]

做之和:

代码语言:javascript
复制
s = sum(v)

要知道值的数目:

代码语言:javascript
复制
l = len(v)
票数 4
EN

Stack Overflow用户

发布于 2015-08-19 23:18:57

如果您想解压缩某些硬编码变量加上不确定数量的附加变量,可以使用*运算符(仅在Python3中):

代码语言:javascript
复制
first, second, *myvars = input("Enter 2 nums!").split()

然后,您将有一个变量first、第二个变量second和一个myvars中的附加变量的list。如果只有两个数字,myvars将是一个空的list

但是,由于不需要一定数量的变量,所以可以这样做:

代码语言:javascript
复制
myvars = input("Enter 2 nums!").split()

myvars将是split()返回的list

最后,您可以使用内置函数sum()找到数字之和。

代码语言:javascript
复制
myvars = input("Enter 2 nums!").split()
print('var{} = {}'.format(idx+1, num) for idx, num in enumerate(myvars))

print("Sum =", sum(map(int, myvars)))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32107101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档