Hello StackOverflowコミュニティ、 私は、保存用の辞書を実装する従業員データベースプログラムの作成を終えています。私が実行している問題は、メニュープロンプトの前に格納されている最初のEmployeeオブジェクトを見つけることができないということです。それらはデータベースに存在しますが、自分のコードでそれらを操作することはできません。後でメニュー機能を使用して追加したものは、参照または削除することができます。私は本当に問題が何であるかは分かりません。辞書を無駄にすることを試みました。私が使っている記述はほとんど同じです。辞書検索で初期入力が認識されない
class Employee:
def __init__(self, name, idNo, department, title):
self.name = name
self.idNo = idNo
self.department = department
self.title = title
def setName(newName):
self.name = newName
def setIDNo(newID):
self.idNo = newID
def setDepartment(newDept):
self.department = newDept
def setTitle(newTitle):
self.title = newTitle
def getName():
return self.name
def getIDNo():
return self.idNo
def getDepartment():
return self.department
def getTitle():
return self.title
def __str__(self):
return "Name: {0} \nID number: {1} \nDepartment: {2} \nTitle: {3}\n".format(self.name, self.idNo, self.department, self.title)
def main():
empDatabase = {}
entry = input("Do You Want to Enter New Employee Information(Y/N): ")
entry = entry.upper()
if entry == 'Y':
gate = True
newName = input("Enter Employee Name: ")
newID = input("Enter Employee ID Number: ")
newDept = input("Enter Employee Department Name: ")
newTitle = input("Enter Employee Job Title: ")
empDatabase[newID] = Employee(newName, newID, newDept, newTitle)
another = input("Do You Want to Enter Another Employee Information(Y/N): ")
another = another.upper()
if another != 'Y':
gate = False
while gate == True:
newName2 = input("Enter Employee Name: ")
newID2 = input("Enter Employee ID Number: ")
newDept2 = input("Enter Employee Department Name: ")
newTitle2 = input("Enter Employee Job Title: ")
empDatabase[newID2] = Employee(newName2, newID2, newDept2, newTitle2)
another2 = input("Do You Want to Enter Another Employee Information(Y/N): ")
another2 = another2.upper()
if another2 != 'Y':
gate = False
boolGate = True
while boolGate == True:
print("\nPlease Select from the Following Menu: ")
print("1. Look up an Employee in the Dictionary")
print("2. Add a New Employee to the Dictionary")
print("3. Delete an Employee from the Dictionary")
print("4. Quit the Program")
print()
choice = eval(input("Please Enter a Number from the Menu: "))
if choice == 1:
idNo = eval(input("Please Enter the Employee ID You are Looking for: "))
dic_lookup(idNo, empDatabase)
elif choice == 2:
empDatabase = dic_add(empDatabase)
elif choice == 3:
idNo = eval(input("Please Enter the Employee ID to Delete the Employee: "))
dic_delete(idNo, empDatabase)
else:
boolGate = False
def dic_lookup(idNo, database):
if idNo in database:
print()
print(database.get(idNo))
else:
print()
print("This Employee ID is not Available in our Database")
def dic_add(database):
print()
addName = input("Enter New Employee Name: ")
addID = eval(input("Enter New Employee ID Number: "))
addDept = input("Enter New Employee Department Name: ")
addTitle = input("Enter New Employee Job Title: ")
database[addID] = Employee(addName, addID, addDept, addTitle)
return database
def dic_delete(idNo, database):
if idNo in database.keys():
database.pop(idNo)
else:
print()
print("Employee does not exist in database")
return database
main()
既存の従業員はどこにロードしますか? – Vinny
インデントを修正してください。どの機能が 'Employee'クラスに属しているか不明です –
@Vinny従業員が辞書に保存されています – notbob1