Python - 这个循环是否正确?
问题描述:
def add(num1, num2):
return num1 + num2
def sub(num1, num2):
return num1 - num2
def multi(num1, num2):
return num1 * num2
def div(num1, num2):
return num1/num2
print("\t\t\tCalculator App")
def main():
operation = input("\nWhat do you want to do: (+, -, *, /)? ")
if(operation != "+" and operation != "-" and operation != "*" and operation != "/"):
#invalid operation
print("You have entered an invalid key")
else:
var1 = int(input("Please number : "))
var2 = int(input("Please enter another number : "))
if(operation == "+"):
print("Answer is: ", add(var1, var2))
elif(operation == "-"):
print("Answer is: ", sub(var1, var2))
elif(operation == "*"):
print("Answer is: ", multi(var1, var2))
else:
print("Answer is: ", div(var1,var2))
main()
rerun = input("ReRun? (y/n)")
while(rerun == "y"):
main()
rerun = input("ReRun? (y/n) ")
else:
exit()
阅读书籍,观看视频和自学一直是一个挑战。Python - 这个循环是否正确?
请让我知道,如果这是循环此程序的正确方法,我敢肯定有其他选择。
答
如果你指的是重新运行循环下底部,大概就是下面的清洁:
while True:
main()
if input("ReRun? (y/n) ") == 'n':
break
应当指出的是,它默认为,如果用户输入了一些不希望重新运行。
答
我会做类似
operators = dict()
operators['+'] = lambda x,y: x+y
operators['-'] = lambda x,y: x-y
operators['*'] = lambda x,y: x*y
operators['/'] = lambda x,y: x/y
def main():
operation = input("\nWhat do you want to do: (+, -, *, /)? ")
if operation in operators:
var1 = int(input("Please number : "))
var2 = int(input("Please enter another number : "))
print("Answer is: ", operators[operation](var1, var2))
else:
print("You have entered an invalid key")
while True:
main()
if input("ReRun? (y/n) ") == 'n':
break
我相信这是更readeable,更容易扩大(添加新的运营商)
+0
大家好,程序执行完美,没有错误。我研究了各种编程语言,仍然认为我是一个noob,并寻求其他方法。感谢那些提供建议的人。 – Pycool0
是否有程序的任何可观察到的错误? – logic
该程序看起来是一个简单的方法,如果它的工作没有错误,然后看起来不错 – kyrenia
@logic我认为它的作品,但Pycool0是好奇的正确的方法来循环这样的程序? – zfb