我正在尝试制作我的第一个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
个值来表示总
答案 0 :(得分: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` :我们打印出结果。我不确定你想用它做什么
注意:这不适用于负数,但可以适应这样做......