1

我正在尝试制作我的第一个 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在每个提示中输入值以给出总数。

4

1 回答 1

0
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 行:您要求用户输入一个字符串并存储它

在第 2 行:你做了很多......我会逐个检查它:

  • sum_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 行:我们打印出结果。我不确定你想用它做什么

注意:这不适用于负数,但可以适应这样做......

于 2012-11-13T09:50:05.987 回答