我已經獲得了一小部分非常基本的帳戶登錄系統的代碼。問題是我有三個部分到一個帳戶:uname
,upass
然後bal
。一直運行良好,直到我推出了bal
。Python - 在字典中打印多個內容時的問題
我很愛業餘與Python,並不知道如何解決它。我的意圖是對我添加的每個帳戶都有3個部分,用戶名,密碼和賬戶餘額,但截至目前爲止,我已經儘可能合理地將代碼編寫成了我的知識,但它看起來並不像打印或功能非常好的天平/ bal
。
代碼:
class Login:
def __init__(self):
self.users = {}
def addUser(self, uname, upass, bal):
self.users[uname] = upass, bal;
def login(self):
userNameInput = input("Username: ")
userPassInput = input("Password: ")
if userNameInput in self.users:
if userPassInput in self.users[userNameInput]:
print("Access Granted!")
self.access(userNameInput)
else:
print("Access Denied!")
return self.login()
def access(self, uname, bal):
print("Welcome, "+uname+"!"+bal)
def main():
mylogin = Login()
mylogin.addUser("u123", "p123", 123)
mylogin.login()
main()
錯誤:
Traceback (most recent call last):
File "C:\Users\Tom\Desktop\test.py", line 29, in <module>
main()
File "C:\Users\Tom\Desktop\test.py", line 27, in main
mylogin.login()
File "C:\Users\Tom\Desktop\test.py", line 14, in login
self.access(userNameInput)
TypeError: access() missing 1 required positional argument: 'bal'
額外的次要問題: 對於部分 「DEF訪問」 的uname
出於某些原因,部分可以任意命名,但仍然打印登錄時帳戶的實際名稱。對於我來說,爲什麼該部分完美地使用完全不同的名稱是沒有意義的。
我想你忘了在接入函數中傳遞bal參數 –
@KalyanReddy對不起,應該說我試過了。它只是然後給我一個新的錯誤:TypeError:訪問()缺少1需要的位置參數:'bal' –
如果你添加一個參數bal,那麼你應該在函數調用中發送它 –