私はPythonでこのコードを実行しようとしています。私は「createAccount」関数を使用して新しいアカウントを作成するときに問題があるPythonは単純変数の値を保存しません
import os
customers = []
numAccounts = 0
option = 0
def listAccounts(customers):
(...)
def createAccount(customers, numAccounts):
name = input('Enter a name: ')
lastname = input('Enter a lastname: ')
account = {'name':name, 'lastname':lastname, 'account':{'balance':0, 'accountNumber':numAccounts}}
customers.append(account)
numAccounts += 1
print("Account created")
input("Press Intro to continue...")
return customers, numAccounts
while ('3' != option):
option = input('''Please select an option:
1.- List Accounts
2.- Create Account
3.- Exit
''')
if option == '1':
listAccounts(customers)
elif opcion == '2':
createAccount(customers, numAccounts)
os.system("CLS")
print("End of the program")
(私はそれで問題がないので、私は「listAccounts」関数の本体を省略しました)。値を入力して保存すると、すべて正常に動作します。私はアカウントを表示し、最初のアカウント番号は0です。すべてうまくいっていますが、新しいアカウントを作成してリストすると、3つ目のアカウントを作成しても両方のアカウントに番号0が付いていることがわかります「numAccounts」変数が増加していない場合と同様です。
私は自分のプログラムをデバッグし、 'numAccounts'の値が実際には1に増加することに気がつきましたが、 'return'行にステップすると再び値が0になります。私は '返信'行にコメントし、値などを変更しますが、何も動作しません。誰かが私のコードに何が間違っているか知っていますか?
ありがとう、Genaro。私は関数の変数の振る舞いについてもっと詳しく知りました。そして、「createAccount」関数の中に「global」キーワードを追加して解決しました。このようにして、このようにして、値が大きくなると値を保存できます。あなたの時間のために人々にありがとう。 –