#This part of the code will only get numbers from user
while True:
#Using while True will allow me to loop and renter if user input is wrong. While True will go above Try Catch
try:
# Using try: and except: will allow to end the program without crash however then need to be indented
# Try goes before the def name
def getNumbers():
num1=int(input("Enter 1st number: "))
num2=int(input("Enter 2nd number: "))
getNumbers()
break# the while will stop when both values are numbers
except:
print("Incorrect input detected, try again")
#This part of the code will add the 2 numbers
def addNums():
What do I put here so that I can use num1+num2
addNums()
def subNums():
What do I put here so that I can use num1-num2
addNums()
我写了一个计算器程序但是在那里我将side1和num2声明为side getNumbers def中的全局变量。有人提到这不是一个好/理想的方式,这就是我想尝试这种方法的原因。
提前致谢。
答案 0 :(得分:0)
要在函数内部使用全局变量,请使用global
关键字:
x = 1
y = 2
def add() :
global x, y
return x + y
修改
实际上,你的问题"真的不清楚。你说你不愿意在代码中使用全局变量,但你写道:
def addNums():
What do I put here so that I can use num1+num2
addNums()
问题是这个地方num1
和num2
不存在。如果你想使用它们,那么它们是全局变量。
据我所知,你想要的只是一个功能:
def addNums(x, y):
return x+y
addNums(num1, num2)
答案 1 :(得分:0)
我不知道你的疑问是什么,在你的帖子里还不清楚。 你为什么不能这样做(只是因为你可以做得更好): -
块引用
def subNums(a, b):
return (a - b)
def addNums(a, b):
return (a + b)
def getNumbers():
while True:
try:
num1 = int(input("Enter 1st number: "))
num2 = int(input("Enter 2nd number: "))
return (num1, num2)
except:
print("Incorrect input detected, try again")
a, b = getNumbers()
print ("sum of %d and %d : %d" % (a, b, addNums(a, b)))
print ("difference of %d and %d : %d" % (a, b, subNums(a, b)))
希望这会有所帮助。