[自学Python纪录] HackerRank 新手30天挑战-Day08

Hi there! 我是嘟嘟~受到前辈启发,想说可以纪录一下自己练习的过程,小女子为程式超超菜鸟,此系列非教学文,仅为个人解题笔记,可能有错误或未补充详尽之处,欢迎前辈们不吝指教!也欢迎正在自学的伙伴一起讨论学习~


Day 8: Dictionaries and Maps(字典)

输入格式

第一行输入一整数n代表电话簿里资料的数量。
后面n行输入姓名和8码电话代表电话簿,并用两行空格隔开。
后面输入未知行数的姓名,测试是否有在电话簿里。你必须一直测试值到没有输入值为止。

There are an unknown number of lines of queries. Each line (query) contains a name to look up, and you must continue reading lines until there is no more input.

输出格式

如果查询的姓名有出现在电话簿里,印出姓名和电话,格式为name=phoneNumber
否则,印出Not found

样本输入

3sam 99912222tom 11122222harry 12299933samedwardharry

样本输出

sam=99912222Not foundharry=12299933

  

我的解答(错误版本)

n = int(input())phoneBook = {} #建立字典for i in range(n):    name,phone = input().strip().split() #输入n笔电话和姓名    phoneBook[name] = phone #新增字典资料[Key:value=name:phone]for i in range(n):    nameTest = input() #输入n笔测资    print(nameTest + '=' + phoneBook[nameTest]) if nameTest in phoneBook else print('Not found') #查询姓名是否在电话簿里面

结果死在Test Case1,发现是自己太粗心没看清楚题目写到测试资料是未知数!! 感谢前辈补充!!

因为不知道测资有几笔,只能用while迴圈一直读测资(直到读取失败),可以使用try-except用法,try-except必须成对出现,try意思是我先尝试做一些事,比如说「nameTest = input()」读取测资,当try里面做的事失败就会进入except里面。
  

我的解答(修正后)

n = int(input())phoneBook = {} #建立字典for i in range(n):    name,phone = input().strip().split() #输入n笔电话和姓名    phoneBook[name] = phone #新增n笔字典资料[key:value=name:phone]for i in range(n):    while True: #因为不知道测资有几笔,就一直跑迴圈        try:            nameTest = input() #尝试读取测资,没有测资时会失败,进入except            print(nameTest + '=' + phoneBook[nameTest]) if nameTest in phoneBook else print('Not found') #查询姓名是否在电话簿里面        except:            break #如果没有测资了,跳出迴圈

输入

2Ace 12345678Luffy 87654321ZoroNamiUsoppLuffy

结果为

Not foundNot foundNot foundLuffy=87654321

  
 

补充:

建立字典

字典里元素的"值"(value)可以是任何的资料型态,例如: 字串、整数、list、物件等等。但 key 必须是唯一且不可变的,也就是在写程式时不可随意更动,如整数、字串、tuple 等。
Python 创建字典的方式有两种:

使用大刮号 {}使用内建函数 dict()

例如:

movie_1 = {'name': 'Saving Private Ryan','year': 1998,'director': 'Steven Spielberg'}movie_2 = dict(name='The Breakfast Club',year=1985,director='John Hughes')
参考资料
【Python 初学第九讲 — 字典】
【Python 3.1 快速导览 - 例外处理 try-except陈述】

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章