大家早,
因此,我嘗試使用掃描方法創建一個帳戶類,該方法對會員卡進行“虛構”掃描,但是,當我在輸入欄位中輸入有效的 card_number 時,它會回傳另一個輸入欄位,但是如果我輸入無效的card_number 它回傳無效的 ID
這是我的代碼,請問我哪里出錯了?
from enum import Enum
from abc import ABC, abstractmethod
import csv
import json
from datetime import datetime, timedelta, date
membersJsonPath = 'members.json'
class BookStatus(Enum):
AVAILABLE, RESERVED, LOANED, LOST = 1, 2, 3, 4
class ReservationStatus(Enum):
WAITING, PENDING, CANCELED, NONE = 1, 2, 3, 4
class AccountStatus(Enum):
ACTIVE, CLOSED, CANCELED, NONE = 1, 2, 3, 4
class Account(ABC):
def __init__(self, status=AccountStatus.ACTIVE):
self.__id = self.scan_id()
self.__status = status
def scan_id(self):
with open(membersJsonPath, 'r') as membersJson:
data = json.load(membersJson)
input_id = input("Please enter your member ID: ")
for member in data['members']:
if member['card_number'] == input_id:
return ("Welcome, " member['first_name'] "!")
else:
return "Invalid ID"
a = Account()
a.scan_id()
這是我從 CSV 檔案創建的 json 檔案的一部分
{
"members": [
{
"\u00ef\u00bb\u00bfid": "1",
"first_name": "Adelaide",
"last_name": "Cunningham",
"gender": "Female",
"email": "[email protected]",
"card_number": "13"
},
{
"\u00ef\u00bb\u00bfid": "2",
"first_name": "Charlie",
"last_name": "Roberts",
"gender": "Male",
"email": "[email protected]",
"card_number": "22"
},
{
"\u00ef\u00bb\u00bfid": "3",
"first_name": "Eric",
"last_name": "Cooper",
"gender": "Male",
"email": "[email protected]",
"card_number": "33"
},
{
"\u00ef\u00bb\u00bfid": "4",
"first_name": "Cadie",
"last_name": "Hall",
"gender": "Female",
"email": "[email protected]",
"card_number": "43"
}
]
}
uj5u.com熱心網友回復:
問題在于這個 for 回圈:
for member in data['members']:
if member['card_number'] == input_id:
return ("Welcome, " member['first_name'] "!")
else:
return "Invalid ID"
這里,如果input_id等于第一個會員的卡號,則回傳歡迎訊息,否則"Invalid ID"。你想掃描所有卡號,只有"Invalid ID"在沒有匹配的時候才回傳,所以第二個 return 陳述句應該在 for 回圈結束之后:
for member in data['members']:
if member['card_number'] == input_id:
return ("Welcome, " member['first_name'] "!")
return "Invalid ID"
uj5u.com熱心網友回復:
您正在通過創建物件來獲取 id。
self.__id = self.scan_id()
這是正確的行為嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/338821.html
