Python 用新用户输入覆盖以前用户输入的变量
我正在尝试构建一个计算器,但我有点纠结于如何使用相同的变量用新值覆盖用户输入。我想要的是,当用户在菜单上打招呼时,当用户输入“5”时,它会提示输入变量“num1”和“num2”的新输入。我有一种感觉,这是非常容易做到的,但出于某种原因,我卡住了 我在正确的elif中尝试了正常的-Python 用新用户输入覆盖以前用户输入的变量,python,python-3.x,Python,Python 3.x,我正在尝试构建一个计算器,但我有点纠结于如何使用相同的变量用新值覆盖用户输入。我想要的是,当用户在菜单上打招呼时,当用户输入“5”时,它会提示输入变量“num1”和“num2”的新输入。我有一种感觉,这是非常容易做到的,但出于某种原因,我卡住了 我在正确的elif中尝试了正常的-num1=int(输入(“输入新的第一个数字”)等等,但是我得到了: UnboundLocalError:赋值前引用的局部变量“num1” 这是我的密码: num1 = int(input("Enter first nu
num1=int(输入(“输入新的第一个数字”)
等等,但是我得到了:
UnboundLocalError:赋值前引用的局部变量“num1”
这是我的密码:
num1 = int(input("Enter first number: "))
num2 = int(input("Enter second number: "))
def calculate():
print('''The numbers you have selected to calculate are:
{}, and {} \n'''.format(num1, num2))
menu = int(input(''' Main Menu:
1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Enter new numbers
6. Exit\n '''))
if menu == 1:
add = addition(num1, num2)
print("{} + {} = {}".format(num1, num2, add))
elif menu == 2:
sub = subtract(num1, num2)
print("{} - {} = {}".format(num1, num2, sub))
elif menu == 3:
multi = multiply(num1, num2)
print("{} x {} = {}".format(num1, num2, multi))
elif menu == 4:
div = divide(num1, num2)
print("{} / {} = {}".format(num1, num2, div))
elif menu == 5:
num1 = int(input("Enter first number: "))
num2 = int(input("Enter second number: "))
elif menu == 6:
print("Exiting...")
else:
print("You have not entered a valid input.")
rerun()
代码的问题在于
num1
和num2
变量未在函数calculate
中定义。因此,当您尝试访问函数内的num1
时,它将抛出错误
def calculate():
num1 = int(input("Enter first number: "))
num2 = int(input("Enter second number: "))
print('''The numbers you have selected to calculate are:
{}, and {} \n'''.format(num1, num2))
menu = int(input(''' Main Menu:
1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Enter new numbers
6. Exit\n '''))
if menu == 1:
add = addition(num1, num2)
print("{} + {} = {}".format(num1, num2, add))
elif menu == 2:
sub = subtract(num1, num2)
print("{} - {} = {}".format(num1, num2, sub))
elif menu == 3:
multi = multiply(num1, num2)
print("{} x {} = {}".format(num1, num2, multi))
elif menu == 4:
div = divide(num1, num2)
print("{} / {} = {}".format(num1, num2, div))
elif menu == 5:
num1 = int(input("Enter first number: "))
num2 = int(input("Enter second number: "))
elif menu == 6:
print("Exiting...")
else:
print("You have not entered a valid input.")
rerun()
calculate()
您还可以尝试将变量num1
和num2
设置为全局变量
num1 = int(input("Enter first number: "))
num2 = int(input("Enter second number: "))
def calculate():
global num1, num2
print('''The numbers you have selected to calculate are:
{}, and {} \n'''.format(num1, num2))
menu = int(input(''' Main Menu:
1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Enter new numbers
6. Exit\n '''))
if menu == 1:
add = addition(num1, num2)
print("{} + {} = {}".format(num1, num2, add))
elif menu == 2:
sub = subtract(num1, num2)
print("{} - {} = {}".format(num1, num2, sub))
elif menu == 3:
multi = multiply(num1, num2)
print("{} x {} = {}".format(num1, num2, multi))
elif menu == 4:
div = divide(num1, num2)
print("{} / {} = {}".format(num1, num2, div))
elif menu == 5:
num1 = int(input("Enter first number: "))
num2 = int(input("Enter second number: "))
elif menu == 6:
print("Exiting...")
else:
print("You have not entered a valid input.")
rerun()
calculate()
您还可以将变量作为参数传递给函数calculate
num1=int(输入(“输入第一个数字:”)
num2=int(输入(“输入第二个数字:”)
我有一种感觉,除非你将num1和num2作为列表,否则没有办法做到这一点,但我只是想知道是否有一种方法可以做到这一点,而不必使用列表。没有任何线索表明存在类似“全局”的东西-它工作得非常好!谢谢
def calculate(num1, num2):
print('''The numbers you have selected to calculate are:
{}, and {} \n'''.format(num1, num2))
menu = int(input(''' Main Menu:
1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Enter new numbers
6. Exit\n '''))
if menu == 1:
add = addition(num1, num2)
print("{} + {} = {}".format(num1, num2, add))
elif menu == 2:
sub = subtract(num1, num2)
print("{} - {} = {}".format(num1, num2, sub))
elif menu == 3:
multi = multiply(num1, num2)
print("{} x {} = {}".format(num1, num2, multi))
elif menu == 4:
div = divide(num1, num2)
print("{} / {} = {}".format(num1, num2, div))
elif menu == 5:
num1 = int(input("Enter first number: "))
num2 = int(input("Enter second number: "))
elif menu == 6:
print("Exiting...")
else:
print("You have not entered a valid input.")
rerun()
calculate(num1, num2)