Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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_Python 3.x - Fatal编程技术网

当我已经指定了错误消息时,如何删除在使用python的计算器中完成的计算

当我已经指定了错误消息时,如何删除在使用python的计算器中完成的计算,python,python-3.x,Python,Python 3.x,我上周开始学习python。我以前的C++编程背景很差,但很差。我开始使用python,并想制作一个复杂的计算器。我试图更好地学习限制条件和if语句,所以我决定将计算器仅用于正值。 然而,在作出这一声明时。此时会显示消息,但也会显示计算值。 代码如下: op = "" while op != "#": num1 = float(input("Enter your first number:")) op = inp

我上周开始学习python。我以前的C++编程背景很差,但很差。我开始使用python,并想制作一个复杂的计算器。我试图更好地学习限制条件和if语句,所以我决定将计算器仅用于正值。 然而,在作出这一声明时。此时会显示消息,但也会显示计算值。 代码如下:

  op = ""
while op != "#":
     num1 = float(input("Enter your first number:"))
     op = input("Enter an operator: ")
     num2 = float(input("Enter your second number: "))

     if num1 < 0 or num2 < 0:
      print("Calculator accepts positive values only")
     if op == "+":
      print(num1+num2)
     elif op=="-":
      print(num1-num2)
     elif op=="*":
      print(num1*num2)
     elif op=="/":
      print(num1/num2)
     else:
      print("end of program")
op=“”
当op!="#":
num1=浮点(输入(“输入您的第一个数字:”)
op=输入(“输入运算符:”)
num2=浮点(输入(“输入第二个数字:”)
如果num1<0或num2<0:
打印(“计算器仅接受正值”)
如果op==“+”:
打印(num1+num2)
elif op==“-”:
打印(num1-num2)
elif op==“*”:
打印(num1*num2)
elif op==“/”:
打印(num1/num2)
其他:
打印(“程序结束”)
如何消除计算出的数字的输出?当我输入负数时,我希望程序重新启动循环 有没有一种方法可以“打破”循环,然后重新进行?
如果这是一个非常琐碎的问题,我深表歉意,我最近刚开始,并希望从stackoverflow的有经验的用户那里学习。

break
continue
是您正在寻找的操作员

break
将完全停止循环,
continue
将停止循环的当前迭代并继续下一个循环

op = ""
while op != "#":
  
    num1 = float(input("Enter your first number:"))
    op = input("Enter an operator: ")
    num2 = float(input("Enter your second number: "))

    if num1 < 0 or num2 < 0:
        print("Calculator accepts positive values only")
        continue #start again
    
    if op == "STOP":
        break #quit

    if op == "+":
        print(num1+num2)
op=“”
当op!="#":
num1=浮点(输入(“输入您的第一个数字:”)
op=输入(“输入运算符:”)
num2=浮点(输入(“输入第二个数字:”)
如果num1<0或num2<0:
打印(“计算器仅接受正值”)
继续#重新开始
如果op==“停止”:
中断#退出
如果op==“+”:
打印(num1+num2)

break
continue
是您正在寻找的操作员

break
将完全停止循环,
continue
将停止循环的当前迭代并继续下一个循环

op = ""
while op != "#":
  
    num1 = float(input("Enter your first number:"))
    op = input("Enter an operator: ")
    num2 = float(input("Enter your second number: "))

    if num1 < 0 or num2 < 0:
        print("Calculator accepts positive values only")
        continue #start again
    
    if op == "STOP":
        break #quit

    if op == "+":
        print(num1+num2)
op=“”
当op!="#":
num1=浮点(输入(“输入您的第一个数字:”)
op=输入(“输入运算符:”)
num2=浮点(输入(“输入第二个数字:”)
如果num1<0或num2<0:
打印(“计算器仅接受正值”)
继续#重新开始
如果op==“停止”:
中断#退出
如果op==“+”:
打印(num1+num2)

您真正需要做的就是将if语句包装到else循环中

op=“”
当op!="#":
num1=浮点(输入(“输入您的第一个数字:”)
op=输入(“输入运算符:”)
num2=浮点(输入(“输入第二个数字:”)
如果num1<0或num2<0:
打印(“计算器仅接受正值”)
其他:
如果op==“+”:
打印(num1+num2)
elif op==“-”:
打印(num1-num2)
elif op==“*”:
打印(num1*num2)
elif op==“/”:
打印(num1/num2)
其他:
打印(“程序结束”)

第一个if语句检查数字是否为正数。如果是负数,循环将重新启动,但是如果是正数,它将测试运算符等于什么。

您真正需要做的就是将If语句包装到else循环中

op=“”
当op!="#":
num1=浮点(输入(“输入您的第一个数字:”)
op=输入(“输入运算符:”)
num2=浮点(输入(“输入第二个数字:”)
如果num1<0或num2<0:
打印(“计算器仅接受正值”)
其他:
如果op==“+”:
打印(num1+num2)
elif op==“-”:
打印(num1-num2)
elif op==“*”:
打印(num1*num2)
elif op==“/”:
打印(num1/num2)
其他:
打印(“程序结束”)

第一个if语句检查数字是否为正数。如果为负值,循环将重新启动,但是如果为正值,它将测试运算符等于什么。

当您输入负值时,您的代码将显示消息和ans,因为If op='+'的条件应为elif op='+'。这是因为它检查第一个条件为真,因此它会打印消息,但由于第二个条件也有if,因此如果操作员为+,则显示ans,则结果为真。下面是正确代码的样子:

op = ""

while op != "#":
  num1 = float(input("Enter your first number:"))
  op = input("Enter an operator: ")
  num2 = float(input("Enter your second number: "))

  if num1 < 0 or num2 < 0:
      print("Calculator accepts positive values only")
  elif op == "+":
      print(num1+num2)
  elif op=="-":
      print(num1-num2)
  elif op=="*":
      print(num1*num2)
  elif op=="/":
      print(num1/num2)
  else:
      print("end of program")
op=“”
当op!="#":
num1=浮点(输入(“输入您的第一个数字:”)
op=输入(“输入运算符:”)
num2=浮点(输入(“输入第二个数字:”)
如果num1<0或num2<0:
打印(“计算器仅接受正值”)
elif op==“+”:
打印(num1+num2)
elif op==“-”:
打印(num1-num2)
elif op==“*”:
打印(num1*num2)
elif op==“/”:
打印(num1/num2)
其他:
打印(“程序结束”)

当您输入负值时,您的代码将显示消息和ans,因为如果op='+'的条件应为elif op='+'。这是因为它检查第一个条件为真,因此它会打印消息,但由于第二个条件也有if,因此如果操作员为+,则显示ans,则结果为真。下面是正确代码的样子:

op = ""

while op != "#":
  num1 = float(input("Enter your first number:"))
  op = input("Enter an operator: ")
  num2 = float(input("Enter your second number: "))

  if num1 < 0 or num2 < 0:
      print("Calculator accepts positive values only")
  elif op == "+":
      print(num1+num2)
  elif op=="-":
      print(num1-num2)
  elif op=="*":
      print(num1*num2)
  elif op=="/":
      print(num1/num2)
  else:
      print("end of program")
op=“”
当op!="#":
num1=浮点(输入(“输入您的第一个数字:”)
op=输入(“输入运算符:”)
num2=浮点(输入(“输入第二个数字:”)
如果num1<0或num2<0:
打印(“计算器仅接受正值”)
elif op==“+”:
打印(num1+num2)
elif op==“-”:
打印(num1-num2)
elif op==“*”:
打印(num1*num2)
elif op==“/”:
打印(num1/num2)
其他:
打印(“程序结束”)

这里没有循环!您需要适当地缩进代码,尤其是当您在这里以w的形式提问时