如何防止我的计算器输入字段被滥用


from math import *
print("Calculator that performs simple arithmetic with 2 variables.n")
def Input():
global Arithmetic_Operator
print("0: Exitn1: Additionn2: Subtractionn3: Multiplicationn4: Divisionn5: Square rootn")
print("Only numbers 0 to 5 are accepted.")
Arithmetic_Operator = input("Which arithmetic operator do you want to use? ")
if Arithmetic_Operator == "0":
print("Exiting...")
exit()
elif Arithmetic_Operator == "1":
global Arithmetic_Operator_Addition
print("n")
Arithmetic_Operator_Addition = "Addition"
Options()
elif Arithmetic_Operator == "2":
global Arithmetic_Operator_Subtraction
print("n")
Arithmetic_Operator_Subtraction = "Subtraction"
Options()
elif Arithmetic_Operator == "3":
global Arithmetic_Operator_Multiplication
print("n")
Arithmetic_Operator_Multiplication = "Multiplication"
Options()
elif Arithmetic_Operator == "4":
global Arithmetic_Operator_Division
print("n")
Arithmetic_Operator_Division = "Division"
Options()
elif Arithmetic_Operator == "5":
global Arithmetic_Operator_Square_root
print("n")
Arithmetic_Operator_Square_root = "Square root"
Options()
else:
print("Invalid input. Please try again.n")
Input()
def Options():
if Arithmetic_Operator == "1":
print("Operator chosen: " + Arithmetic_Operator_Addition)
First_Number = float(input("First number: "))
Second_Number = float(input("Second number: "))
Answer = str(First_Number + Second_Number)
print("Answer: " + Answer + "n")
Input()
elif Arithmetic_Operator == "2":
print("Operator chosen: " + Arithmetic_Operator_Subtraction)
First_Number = float(input("First number: "))
Second_Number = float(input("Second number: "))
Answer = str(First_Number - Second_Number)
print("Answer: " + Answer + "n")
Input()
elif Arithmetic_Operator == "3":
print("Operator chosen: " + Arithmetic_Operator_Multiplication)
First_Number = float(input("First number: "))
Second_Number = float(input("Second number: "))
Answer = str(First_Number * Second_Number)
print("Answer: " + Answer + "n")
Input()
elif Arithmetic_Operator == "4":
print("Operator chosen: " + Arithmetic_Operator_Division)
First_Number = float(input("First number: "))
Second_Number = float(input("Second number: "))
Answer = str(First_Number / Second_Number)
print("Answer: " + Answer + "n")
Input()
elif Arithmetic_Operator == "5":
print("Operator chosen: " + Arithmetic_Operator_Square_root)
Number = float(input("Number: "))
Answer = sqrt(Number)
print("Answer: " + str(Answer) + "n")
Input()
Input()

在Input((模块中,我的所有输入字段都是以这样一种方式设计的,即只接受数字0到5,而拒绝其他输入。这样,我就可以防止input((模块中的输入字段被滥用。然而,在Options((模块中,如果用户输入了字母表或其他符号,由于使用了float((函数,输入字段很容易被滥用?当在Options((模块中输入这样的字母和符号时,有没有办法防止脚本崩溃?

您正在寻找的可以通过异常处理来完成

try:
First_Number = float(input("First number: "))
except ValueError as e:
print("Only numbers allowed")

我希望你的作业在未来的某个时候也涉及到重构

最新更新