簡體   English   中英

Python:銀行ATM程序

[英]Python: Bank ATM program

在我的 Python 程序中,我創建了一個 class 用戶詳細信息 - (盡管我還有一些其他類我想稍后添加)。 我從那個 class 創建了 2 個對象,但我不能全部調用它們? 這是我的問題。 我想將單獨的 pin_no 鏈接到單獨的對象並使用它們的詳細信息單獨調用它們。


from Details import userdetails


pin_no = (1111, 2222)

while True:

    pin_no = input("Input the no : ")

    if pin_no == '1111' or pin_no == '2222':
        
        
        print ("\n Hello and welcome to my program.  Please choose from one of the following options:")
        
        break
    
    else:
    
        print ("please try again ")
            
            
            
newuserdetails = userdetails ('Tom', '23 Bishop St ', 'cv3_f45', 2347477472)

newuserdetails1 = userdetails ('Bill', '81 Oliver St ', 'CV6 7FR', 574747477)   
  
  
user =  input("\n\n 1. Userdetails \n 2. Address \n 3. Post Code \n 4. Tel No " '\n')

a = '1'
b = '2'
c = '3'
d = '4'


if user == a:

    print (newuserdetails.name) or (newuserdetails1.name) 
    
elif user == b:
    
    print (newuserdetails.address)
     
elif user == c:
    
    print (newuserdetails.post_code)
    
elif user == d:
    
    print (newuserdetails.tel_no)

我相信正在尋找的是一本字典。

newuserdetails = userdetails ('Tom', '23 Bishop St ', 'cv3_f45', 2347477472)
newuserdetails1 = userdetails ('Bill', '81 Oliver St ', 'CV6 7FR', 574747477)
newuserdetails2 = userdetails ('John', '35 Main St ', 'CRF 250R', 435247477)


# create the dictionary right after you create the class, so they can be in the same scope
# whenever you would reference newuserdetails, you can now reference the dictionary object

dict = { # if you know all the users when you create the dictionary
  '1111': newuserdetails,
  '2222': newuserdetails1,
}

# to add a user after the dictionary has been created
dict['3333'] = newuserdetails2

然后,您可以通過 pin 獲取用戶詳細信息實例,使用以下方法:

dict['1111'] # returns newuserdetails

# instead of using:
newuserdetails.name # returns 'Tom'

# you can now use:
dict['1111'].name # returns 'Tom'

# Or you could assign it to a temp variable if that makes more sense
currentuserdetails = dict['1111']
currentuserdetails.name # still returns 'Tom'

但是,我警告不要使用 pin 作為獲取用戶的方式。

如果兩個用戶偶然選擇了相同的 pin,那么就會出現錯誤並且您的代碼會中斷。 您會更適合使用 Ids 來獲取用戶詳細信息

編輯:

這是我正在使用的,它在 python 3.8 上按預期工作

class userdetails:
    def __init__(self, name, addr, num, number):
        self.name = name
        self.address = addr
        self.post_code = num
        self.tel_no = number


pin_no = (1111, 2222)

while True:
    pin_no = input("Input the no : ")
    if pin_no == '1111' or pin_no == '2222':
        print ("\n Hello and welcome to my program.  Please choose from one of the following options:")     
        break
    
    else:
        print ("please try again ")
            
               
newuserdetails = userdetails ('Tom', '23 Bishop St ', 'cv3_f45', 2347477472)
newuserdetails1 = userdetails ('Bill', '81 Oliver St ', 'CV6 7FR', 574747477)   
dict = {
  '1111': newuserdetails,
  '2222': newuserdetails1
}

user =  input("\n\n 1. Userdetails \n 2. Address \n 3. Post Code \n 4. Tel No " '\n')

a = '1'
b = '2'
c = '3'
d = '4'


if user == a:
    print (dict[pin_no].name)
elif user == b:
    print (dict[pin_no].address)
elif user == c:
    print (dict[pin_no].post_code)
elif user == d:
    print (dict[pin_no].tel_no)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM