如何解决运行简单的 Python 计算器时出现逻辑错误
昨天我开始学习 Python,到目前为止我很享受它的简单性。今天,我尝试创建一个可以加、减、乘、除和求模的简单计算器。虽然它工作得很好,但每当程序询问用户是否希望在第二次尝试后再次尝试时,都会出现“什么?再试一次”这一行。出现,只有当用户对问题“再试一次?”给出不在 noList 或 yesList 中的答案时才会出现。对不起,如果这些都没有意义,但我会把我的代码放在下面。
functionList = ["add","subtract","multiply","divide","mod"]
yesList = ["yes","yeah","yup","y"]
noList = ["no","nope","nah","n"]
print("Welcome to Bryan's Calculator!")
def calculator():
whatFunction = input("What math function do you want to use (add/subtract/multiply/divide/mod)? ")
if whatFunction == "add":
numAddOne = float(input("What is your first number? "))
numAddTwo = float(input("What is your second number? "))
answerAdd = numAddOne + numAddTwo
print(str(answerAdd) + " is the answer!")
if whatFunction == "subtract":
numSubtractOne = float(input("What is your first number? "))
numSubtractTwo = float(input("What is your second number? "))
answerSubtract = numSubtractOne - numSubtractTwo
print(str(answerSubtract) + " is your answer!")
if whatFunction == "multiply":
numMultiplyOne = float(input("What is your first number? "))
numMultiplyTwo = float(input("What is your second number? "))
answerMultiply = numMultiplyOne * numMultiplyTwo
print(str(answerMultiply) + " is your answer!")
if whatFunction == "divide":
numDivideOne = float(input("What is your dividend? "))
numDivideTwo = float(input("What is your divisor? "))
answerDivide = numDivideOne / numDivideTwo
print(str(answerDivide) + " is your answer!")
if whatFunction == "mod":
numModone = float(input("What is your dividend? "))
numModTwo = float(input("What is your divisor? "))
answerMod = numModone % numModTwo
print(str(answerMod) + " is your remainder!")
elif whatFunction not in functionList:
print("What? Try again.")
calculator()
def askTryAgain():
tryAgain = input("Try again? ")
if tryAgain in yesList:
calculator()
if tryAgain in noList:
print("Thanks for using my calculator!")
exit()
if tryAgain not in yesList or noList:
print("What? Try again")
askTryAgain()
calculator()
askTryAgain()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。