如何在Python中将范围(n)内的所有值映射到n

如何在Python中将范围(n)内的所有值映射到n,python,python-3.x,Python,Python 3.x,我正在尝试制作我的第一个Python计算器,它可以添加用户给定的值。问题是,有时我们可能需要添加多个值,例如,a+b不仅仅是我们添加的a+b+d+g+h+…,因此我定义了一个范围,最大为n,其中n是用户输入 现在的问题是,如果用户在该范围内给出值5,那么如何映射该范围内的每个值以输入要添加的值 守则: def main(): print("how many no.s are we dealing with?"); n=int(input("")); for i in r

我正在尝试制作我的第一个Python计算器,它可以添加用户给定的值。问题是,有时我们可能需要添加多个值,例如,
a+b
不仅仅是我们添加的
a+b+d+g+h+…
,因此我定义了一个范围,最大为
n
,其中
n
是用户输入

现在的问题是,如果用户在该范围内给出值
5
,那么如何映射该范围内的每个值以输入要添加的值

守则:

 def main():
    print("how many no.s are we dealing with?");
    n=int(input(""));
    for i in range(n):
        print("addition:");
简而言之,我只希望用户首先键入要添加的值的数量,然后用户必须键入所有要键入的值,以便计算器添加它们

这就像如果用户有一个3个数字的范围
[a+b+c]
,那么用户会在第一个提示中键入
3
,然后他会在每个提示中键入
a、b、c
值以给出总数

def main():
    n=int(input("how many no.s are we dealing with?"))
    result = 0
    for i in range(n):
        value = float(input('enter next number to add'))
        result += value
    print('the result is {0}'.format(result))
注意缺少

其工作原理是将结果初始化为0。然后,每次循环迭代时,都会要求用户输入一个数字。然后将该数字添加到结果中


然而,有一种更简单的方法:

sum_string = input('please enter a sum. for example: "1 + 2 + 10 ..."') #1
result = sum([float(i) for i in sum_string.split('+')])                 #2
print('the result is {0}'.format(result))                               #3
其工作原理如下:

在第1行:您要求用户输入一个字符串并存储它

第二行:你做了很多。。。我将逐一检查:

  • sum\u string.split(“+”)
    获取用户输入的字符串并将其转换为列表。例如:
    1+2+45'.split(“+”)=>['1'、'2'、'45']
  • 继续上面的例子:
    [float(i)for i in['1','2','45']=>[1,2,45]
    这叫做列表理解。这是可怕的,完全值得一看
  • 最后,
    sum([1,2,45
    ])=>48`
第3行:我们打印出结果。我不确定你想用它做什么


注意:这不适用于负数,但可以进行调整…

这不是实现计算器的正确方法。你对用户施加了太多的限制。你可以在这里看到和实现这样的计算,寻找SimpleCalc。py@jojo当前位置看起来,比起制作一个好的计算器,他更想学习如何使用python。Python是一个计算器。所有这些实际上都不是必要的。这是一个循环和用户输入的练习,就是it@Sheena:谢谢,我以为他是想学习输入解析,pyparsing是一个很好的方法,但可能不适合乞丐