python - UnboundLocalError:分配之前引用的局部变量“余额”(Python)
问题描述
我是编码新手,我正在尝试编写一个程序来通过终端创建一个小型在线商店。这是代码:
global balance
def homescreen():
print("What would you like to do?")
print('1. Sign up')
print("2. Login")
option = int(input())
if option == 1:
sign_up()
elif option == 2:
login()
else:
print("Invalid option")
homescreen()
def sign_up():
global username
global password
username = input("Enter a username: ")
password = input("Enter a password: ")
homescreen()
def login():
user = input("Enter your username: ")
passw = input('Enter your password: ')
if user == username and passw == password:
print("Welcome")
homepage()
else:
print('Incorrect password or username; please try again')
login()
def homepage():
print("Welcome, what would you like to do?")
print('1. Shop')
print("2. Check Balance")
print("3. Add money")
option = int(input())
if option == 1:
shop()
elif option == 2:
check_balance_page()
else:
print("Invalid option")
homepage()
def check_balance_page():
balance = 0
print("Your balance is: ", balance)
print('What would you like to do?')
print('1. Go to homepage')
print('2. Add money to balance')
opt = int(input())
if opt == 1:
homepage()
elif opt == 2:
add_money()
else:
print("Invalid option")
check_balance_page()
def add_money():
print("How much money would you like to add?")
amount = int(input())
balance += amount
homepage()
def shop():
print('x')
homescreen()
每当我运行它时,我都会创建注册、登录并进入检查余额屏幕,然后是添加资金屏幕。但是当我输入要添加到余额中的金额时,我收到此错误消息(XXXXXX 代表我的用户路径):
Traceback (most recent call last):
File "C:\Users\XXXXXX\Documents\pycharm projects\main.py", line 78, in <module>
File "C:\Users\XXXXXXXX\Documents\pycharm projects\main.py", line 8, in homescreen
option = int(input())
File "C:\Users\XXXXXXXX\Documents\pycharm projects\main.py", line 21, in sign_up
username = input("Enter a username: ")
File "C:\Users\XXXXXXXXXXXX\Documents\pycharm projects\main.py", line 10, in homescreen
sign_up()
File "C:\Users\XXXXXXXXXXXXX\Documents\pycharm projects\main.py", line 29, in login
if user == username and passw == password:
File "C:\Users\XXXXXXXXXXXX\Documents\pycharm projects\main.py", line 45, in homepage
elif option == 2:
File "C:\Users\XXXXXXXXXXXX\Documents\pycharm projects\main.py", line 62, in check_balance_page
add_money()
File "C:\Users\XXXXXXXXXXXXX\Documents\pycharm projects\main.py", line 71, in add_money
balance += amount
UnboundLocalError: local variable 'balance' referenced before assignment
有好心人告诉我这是怎么回事吗?
解决方案
推荐阅读
- php - 将 influxdb 时间格式转换为 ISO8601 格式
- sql-server - 执行未从 SQL 代理作业运行的进程任务
- swift - 有没有办法可以在 SceneKit 的节点上停止和播放声音?
- android - 如何在 Flutter 中创建自定义动画启动屏幕
- xcode - 如何为 Flutter 添加额外的 iOS 模拟器?
- angular - 滚动到部分通过
- karate - 是否可以在空手道中为 WebUI 自动化执行性能测试?
- python - 如何将值分配给字典中的键?解决算法
- c# - HttpClient GetAsync 耗时约 2 秒
- c# - HttpClient.PostAsJsonAsync 无法从 ASPX 工作的问题