如何回到python中循环的开始?

2024-05-08 04:49:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码:

b="y"

ol=[]

#operations list

OPERATIONS = ["-", "+", "*", "/"]

op = input ("Please enter your first calculation\n")

while b=="y":



    ops = op.split(" ")

    #add arguments to list

    for x in ops:
        ol+=x

    if ol[1] in OPERATIONS:

        #make sure operator is an operator

        print()

        #make sure not dividing by zero

        if ol[1] == "/" and ol[2] == "0":

            print("Error")

            b = input("Would you like to do another calculation (y/n)?\n")

            if b == "y":

                op = input("Please enter your calculation:\n")

                continue

            else:
                break
        else:

            n1 = float(ol[0])
            n2 = float(ol[2])

            #calculations done here

            if ol[1] == '-':

                calc = n1-n2

            if ol[1] == '+':

                calc = n1+n2

            if ol[1] == '/':

                calc = n1/n2

            if ol[1] == '*':

                calc = n1*n2

            print("Result: " + str(calc))

            b = input("Would you like to do another calculation (y/n)?\n")

            if b == "y":

                op = input("Please enter your calculation:\n")

                continue

            else:
                break



    else:
        print("Error")

如何确保程序将新操作带到循环的开始,而不是继续打印原始计算?在


Tags: toinputyourifcalcelselistprint
2条回答

您需要在while循环中重置ol=[]

您的计算是使用由变量ops生成的操作列表ol执行的,该变量通过将输入ops拆分成一个空格来实现。在

您可以通过将ol=[]移动到循环中来实现:

b="y"
# Remove ol=[]

#operations list
OPERATIONS = ["-", "+", "*", "/"]

op = input ("Please enter your first calculation\n")

while b=="y":
    ol = [] # Add here

不过,还有一种更简单的方法。变量ops包含来自splitstr.split生成一个列表)的操作列表,然后将该值复制到列表ol。相反,可以直接将字符串拆分为变量ol,如下所示:

^{pr2}$

这更简洁,因为您不需要额外的ops变量。在

相关问题 更多 >