我有一个函数,我想在其中从测试用例中返回某些键值。
这是功能(包括主要功能):
def main():
# initial roster
brave_roster = {
"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273",
"Ronald Acuna": "AB: 467, R: 71, H: 124, HR: 15, AVG: 0.266",
}
def add_player_to_dict(brave_roster,name,stats):
name = input("Enter the name of the player you want to add:\n")
if name not in brave_roster:
stats = input("Please add stats:\n")
brave_roster[name] = stats
brave_roster.update([(name, stats)])
print("Here's", [name],"'s stats:\n")
for name, stats in brave_roster.items():
print(name, ':', stats)
else:
print("That player is already on our roster.")
return brave_roster[(name,stats)]
print(add_player_to_dict)
if __name__ == '__main__':
print("\t *** Braves Stats! ***\n")
print("Welcome to My Braves Stats!")
brave_roster = {
"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273",
"Ronald Acuna": "AB: 467, R: 71, H: 124, HR: 15, AVG: 0.266",
}
name = main()
choice = input("Please type your choice number:")
if (choice == "1"):
lookup_player(brave_roster,name)
elif (choice == "2"):
add_player_to_dict(brave_roster,name,)
else:
(choice == "3")
delete_in_dict(brave_roster,name)
以下是我尝试运行的测试用例:
def test_add_player_sucess(self):
test_dict = {
"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273"
}
actual = {
"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273",
"Ronald Acuna": "AB: 467, R: 71, H: 124, HR: 15, AVG: 0.266"
}
expected = add_player_to_dict(test_dict, "Ronald Acuna", "AB: 467, R: 71, H: 124, HR: 15, AVG: 0.266")
self.assertEqual(actual, expected)
def test_add_player_duplicate(self):
test_dict = {"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273"}
actual = {"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273", "Austin Riley(2)": "AB: 350, R: 20, H: 120, HR: 5, AVG: 0.214"}
expected = add_player_to_dict(test_dict, "Austin Riley", "AB: 350, R: 20, H: 120, HR: 5, AVG: 0.214")
self.assertEqual(actual, expected)
执行程序后,我收到此消息:
Traceback (most recent call last):
line 108, in test_add_player_duplicate
expected = add_player_to_dict(test_dict, "Austin Riley", "AB: 350, R: 20, H: 120, HR: 5, AVG: 0.214")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
line 35, in add_player_to_dict
return brave_roster[(name,stats)]
~~~~~~~~~~~~^^^^^^^^^^^^^^
KeyError:
我做错了什么?