如何在Python中将范围(n)内的所有值映射到n
我正在尝试制作我的第一个Python计算器,它可以添加用户给定的值。问题是,有时我们可能需要添加多个值,例如,如何在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
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是一个很好的方法,但可能不适合乞丐