Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中获取运行总数_Python_Cumulative Sum - Fatal编程技术网

如何在python中获取运行总数

如何在python中获取运行总数,python,cumulative-sum,Python,Cumulative Sum,我现在正在学习如何编码,我想知道如何得到一个运行总数。我有代码来做基本的计算器功能,现在想学习如何让计算器能够用前面的答案一次做多个问题,例如(5+5=10-5=5*5=25/5)=5。我希望用户能够对以前的结果执行他或她想要的任何问题,但也可以随时退出。我正在使用python,非常希望有人能帮助/直接指出我需要编写什么代码来实现这一点。我不是在寻找答案,只是寻求一些帮助。多谢各位 def add(x, y): return x + y def subtract(x, y): r

我现在正在学习如何编码,我想知道如何得到一个运行总数。我有代码来做基本的计算器功能,现在想学习如何让计算器能够用前面的答案一次做多个问题,例如(5+5=10-5=5*5=25/5)=5。我希望用户能够对以前的结果执行他或她想要的任何问题,但也可以随时退出。我正在使用python,非常希望有人能帮助/直接指出我需要编写什么代码来实现这一点。我不是在寻找答案,只是寻求一些帮助。多谢各位

def add(x, y):
    return x + y
def subtract(x, y):
    return x - y
def multiply(x, y):
    return x * y
def divide(x, y):
    return x / y    

print "Lets Calculate" 

print ("Calculator: ")
print ("1: +")
print ("2: -")
print ("3: *")
print ("4: /")
print ("5: done")

foo1 = input("math solution: ")
num1 = float(raw_input("number 1: "))
num2 = float(raw_input("number 2: ")) 

if foo1 == 1:
    print "{0} + {1} = {2}".format(num1, num2, add(num1, num2)) 
elif foo1 == 2:
    print "{0} - {1} = {2}".format(num1, num2, subtract(num1, num2))
elif foo1 == 3:
    print "{0} * {1} = {2}".format(num1, num2, multiply(num1, num2))
elif foo1 == 4:
    print "{0} / {1} = {2}".format(num1, num2, divide(num1, num2))
elif foo1 == 5:
    print ("done")
结果:

Lets Calculate                                                                                                                                                                                        
Calculator:                                                                                                                                                                                           
1: +                                                                                                                                                                                                  
2: -                                                                                                                                                                                                  
3: *                                                                                                                                                                                                  
4: /  
5: done                                                                                                                                                                                               
math solution: 1                                                                                                                                                                                      
number 1: 2                                                                                                                                                                                           
number 2: 2                                                                                                                                                                                           
2.0 + 2.0 = 4.0
我想在完成之前,有选择地接受这个答案并使用其他数学解决方案。先谢谢你

这是我得到的。我试过无数种不同的方法,但都没办法解决

def add(x, y):
    return x + y
def subtract(x, y):
    return x - y
def multiply(x, y):
    return x * y
def divide(x, y):
    return x / y    

print "Lets Calculate" 

print ("Calculator: ")
print ("1: +")
print ("2: -")
print ("3: *")
print ("4: /")
print ("5: done")

foo1 = input("math solution: ")
rec1 = 0

num1 = float(raw_input("number 1: "))  
while foo1 > 0 and foo1 < 6:
    num2 = float(raw_input("number 2: ")) 

    if foo1 == 1:
        rec1 =  "{0} + {1} = {2}".format(num1, num2, add(num1, num2)) 
    elif foo1 == 2:
        rec1 = "{0} - {1} = {2}".format(num1, num2, subtract(num1, num2))
    elif foo1 == 3:
        rec1 = "{0} * {1} = {2}".format(num1, num2, multiply(num1, num2))
    elif foo1 == 4:
        rec1 = "{0} / {1} = {2}".format(num1, num2, divide(num1, num2))
    elif foo1 == 6:
        rec1 = "Done" 
    print rec1

    foo2 = input("math solution: ")

print "done"
def添加(x,y):
返回x+y
def减法(x,y):
返回x-y
def倍增(x,y):
返回x*y
def除法(x,y):
返回x/y
打印“让我们计算”
打印(“计算器:”)
打印(“1:+”)
打印(“2:-”)
打印(“3:*)
打印(“4:/”)
打印(“5:完成”)
foo1=输入(“数学解:”)
rec1=0
num1=浮点(原始输入(“数字1”))
当foo1>0和foo1<6时:
num2=浮点(原始输入(“数字2”))
如果foo1==1:
rec1=“{0}+{1}={2}”。格式(num1,num2,add(num1,num2))
elif foo1==2:
rec1=“{0}-{1}={2}”。格式(num1,num2,减法(num1,num2))
elif foo1==3:
rec1=“{0}*{1}={2}”。格式(num1,num2,乘法(num1,num2))
elif foo1==4:
rec1=“{0}/{1}={2}”。格式(num1,num2,divide(num1,num2))
elif foo1==6:
rec1=“完成”
打印记录1
foo2=输入(“数学解:”)
打印“完成”
我添加了num1=rec1,每次我尝试继续下一个问题时都会弹出一条错误消息。我编辑了代码,以便您现在可以看到它的样子

    def add(x, y):
    return x + y
def subtract(x, y):
    return x - y
def multiply(x, y):
    return x * y
def divide(x, y):
    return x / y    

print "Lets Calculate" 

print ("Calculator: ")
print ("1: +")
print ("2: -")
print ("3: *")
print ("4: /")
print ("5: done")

foo1 = input("math solution: ")
rec1 = 0

num1 = float(raw_input("number 1: "))
while foo1 > 0 and foo1 < 6:
    num2 = float(raw_input("number 2: ")) 

    if foo1 == 1:
        rec1 =  "{0} + {1} = {2}".format(num1, num2, add(num1, num2)) 
    elif foo1 == 2:
        rec1 = "{0} - {1} = {2}".format(num1, num2, subtract(num1, num2))
    elif foo1 == 3:
        rec1 = "{0} * {1} = {2}".format(num1, num2, multiply(num1, num2))
    elif foo1 == 4:
        rec1 = "{0} / {1} = {2}".format(num1, num2, divide(num1, num2))
    elif foo1 == 6:
        rec1 = "Done"
    print rec1

    num1 = rec1
    foo1 = input("math solution: ")

print "done"
def添加(x,y):
返回x+y
def减法(x,y):
返回x-y
def倍增(x,y):
返回x*y
def除法(x,y):
返回x/y
打印“让我们计算”
打印(“计算器:”)
打印(“1:+”)
打印(“2:-”)
打印(“3:*)
打印(“4:/”)
打印(“5:完成”)
foo1=输入(“数学解:”)
rec1=0
num1=浮点(原始输入(“数字1”))
当foo1>0和foo1<6时:
num2=浮点(原始输入(“数字2”))
如果foo1==1:
rec1=“{0}+{1}={2}”。格式(num1,num2,add(num1,num2))
elif foo1==2:
rec1=“{0}-{1}={2}”。格式(num1,num2,减法(num1,num2))
elif foo1==3:
rec1=“{0}*{1}={2}”。格式(num1,num2,乘法(num1,num2))
elif foo1==4:
rec1=“{0}/{1}={2}”。格式(num1,num2,divide(num1,num2))
elif foo1==6:
rec1=“完成”
打印记录1
num1=rec1
foo1=输入(“数学解:”)
打印“完成”

要继续,直到用户选择退出,您可以使用循环,例如:

foo1 = input("math solution: ")

while foo1 > 0 and foo1 < 5:
   num1 = float(raw_input("number 1: "))
   num2 = float(raw_input("number 2: ")) 
   ....
   # Ask for the next operation
   foo1 = input("math solution: ")

print "done"
ans = 0
if foo1 == 1:
    ans = ...
elif foo1 == 2:
    ans = ...
print ans
最后,为了允许用户使用,我们可以使用一个小技巧。例如,如果用户在输入中写入“ans”,它将是最后一个结果

为此,我们可以在将输入字符串转换为浮点之前对其进行处理:

num1 = raw_input("number 1: ")
if num1 == 'ans':
   num1 = ans
else:
   num1 = float(num1)
我还没有编写完整的代码,让您可以使用它并找出如何将所有内容组合在一起。但是,如果你需要它,告诉我!:)

编辑 如果您总是想使用前一个,我们可以在循环之前初始化一个输入:

num1 = float(raw_input("number 1: "))
while foo1 > 0 and foo1 < 5:
   num2 = float(raw_input("number 2: ")) 
   ....
编辑2 您忘记实现此块的一部分:

ans = 0
if foo1 == 1:
    ans = ...
elif foo1 == 2:
    ans = ...
print ans
当然,如果将结果存储为输出字符串,则无法对其进行操作

正确的版本可以是:

def add(x, y):
    return x + y
def subtract(x, y):
    return x - y
def multiply(x, y):
    return x * y
def divide(x, y):
    return x / y    

print "Lets Calculate" 

print ("Calculator: ")
print ("1: +")
print ("2: -")
print ("3: *")
print ("4: /")
print ("5: done")

result = 0

# Ask for the operation and for the first number
operation = input("math solution: ")
num1 = float(raw_input("number 1: "))

# Continue until the user chooses to exit
while 0 < operation < 5:

    # Ask for the second number
    num2 = float(raw_input("number 2: ")) 

    # Operate
    if operation == 1:
        result = add(num1, num2)
        print "{0} + {1} = {2}".format(num1, num2, result)
    elif operation == 2:
        result = subtract(num1, num2)
        print "{0} - {1} = {2}".format(num1, num2, result)
    elif operation == 3:
        result = multiply(num1, num2)
        print "{0} * {1} = {2}".format(num1, num2, result)
    elif operation == 4:
        result = divide(num1, num2)
        print "{0} / {1} = {2}".format(num1, num2, result)

    # Store the result as the first number
    num1 = result

    # Ask for the next operation
    operation = input("math solution: ")

# Finish
print "Done"

非常感谢你。我会试试这个,然后再打给你。好的,我把所有的东西都搞定了,除了总数。我似乎无法将我的头脑集中在如何将上一个总数计算到下一个方程式上。请多帮忙。Álvaro重新开始在循环结束时,它不是
foo2=input(“数学解决方案”)
而是
foo1=input(“数学解决方案”)
我不小心忘了它,因为我在乱搞代码。它仍然不允许我把上一道题的总数加在下一道数学题上。这只是让我保持第一个数字不变,我希望第一个数字是第一个问题的总数。您忘记添加此部分
num1=ans
,或者在您的情况下,
num1=rec1
。如果没有它,num1将一直保持不变。
def add(x, y):
    return x + y
def subtract(x, y):
    return x - y
def multiply(x, y):
    return x * y
def divide(x, y):
    return x / y    

print "Lets Calculate" 

print ("Calculator: ")
print ("1: +")
print ("2: -")
print ("3: *")
print ("4: /")
print ("5: done")

result = 0

# Ask for the operation and for the first number
operation = input("math solution: ")
num1 = float(raw_input("number 1: "))

# Continue until the user chooses to exit
while 0 < operation < 5:

    # Ask for the second number
    num2 = float(raw_input("number 2: ")) 

    # Operate
    if operation == 1:
        result = add(num1, num2)
        print "{0} + {1} = {2}".format(num1, num2, result)
    elif operation == 2:
        result = subtract(num1, num2)
        print "{0} - {1} = {2}".format(num1, num2, result)
    elif operation == 3:
        result = multiply(num1, num2)
        print "{0} * {1} = {2}".format(num1, num2, result)
    elif operation == 4:
        result = divide(num1, num2)
        print "{0} / {1} = {2}".format(num1, num2, result)

    # Store the result as the first number
    num1 = result

    # Ask for the next operation
    operation = input("math solution: ")

# Finish
print "Done"
Lets Calculate
Calculator: 
1: +
2: -
3: *
4: /
5: done
math solution: 1
number 1: 10
number 2: 5
10.0 + 5.0 = 15.0
math solution: 2
number 2: 7
15.0 - 7.0 = 8.0
math solution: 3
number 2: 8
8.0 * 8.0 = 64.0
math solution: 4
number 2: 4
64.0 / 4.0 = 16.0
math solution: 5
Done