我有一项任务,在那里我必须使用字典来制作一本“电话簿”。
我已经试着重新观看视频和试错了大约一个小时,没有改变。
我的代码:
phone_book = {}
while True:
name = input("Enter a name: ")
if name in phone_book:
print(phone_book[name])
elif name == "":
break
else:
phone_number = input("Enter a phone number in the following format[(123)456-7890)]: ")
phone_book[name] = phone_number
print(phone_book)派任要求的检查代码是:
预期结果:
Phone number: 1234
Phone number: 5678
{'Tracy': '5678', 'Karel': '1234', 'Steve': '9999'}我的结果是:
{'Karel': '1234'}
{'Tracy': '5678', 'Karel': '1234'}
{'Tracy': '5678', 'Karel': '1234', 'Steve': '9999'}
1234
{'Tracy': '5678', 'Karel': '1234', 'Steve': '9999'}
5678
{'Tracy': '5678', 'Karel': '1234', 'Steve': '9999'}中已经存在的名称的电话号码。
你的结果:
{'Karel': '1234'}
{'Tracy': '5678', 'Karel': '1234'}
{'Tracy': '5678', 'Karel': '1234', 'Steve': '9999'}
1234
{'Tracy': '5678', 'Karel': '1234', 'Steve': '9999'}
5678
{'Tracy': '5678', 'Karel': '1234', 'Steve': '9999'}发布于 2019-10-04 12:51:19
您已经将print(phone_book)留在了循环的主体中,这意味着它将在循环的每一个周期中执行,如果您只想在字典填充之后打印它,那么应该将它放在循环之外。
phone_book = {}
while True:
name = input("Enter a name: ")
if name in phone_book:
print(phone_book[name])
elif name == "":
break
else:
phone_number = input("Enter a phone number in the following format[(123)456-7890)]: ")
phone_book[name] = phone_number
print(phone_book)发布于 2019-10-04 14:08:14
把指纹从循环中拿出来。我对代码做了一些改动,只是为了一个例子。
phone_book_new = {}
def phone():
while True:
name = input('Name: ')
number = int(input('Number: '))
phone_book = {name: number}
phone_book_new.update(phone_book)
break
phone()
print(phone_book_new)https://stackoverflow.com/questions/58236691
复制相似问题