目录
为了完成本关任务,你需要掌握:
1.读文件 2.构建字典类型数据
构建字典类型数据
以公司或单位为键,以电话号码为值创建字典。
1.用字典推导式创建字典 2.用给字典的键赋值的方法创建字典
编程要求
“customer service number.txt”中包含一些单位的95开头的客服短号码和少量其他客服电话号,以单位名为键,以电话号为值构建字典,用户输入一个公司名,当公司名存在时,从字典中删除该公司的元素,返回提示信息“****电话*****成功删除”;公司名不存在时,返回“公司名“****”不存在”。
测试说明
平台会对你编写的代码进行测试,输入输出参考示例:
示例输入:
中国电信
示例输出:
中国电信电话10000成功删除
示例输入:
中国电脑
示例输出:
公司名“中国电脑”不存在
第1关 创建客服电话字典
def read_txt(file: str) -> dict:
"""参数为表示文件名的字符串,读取文件file中的数据。
以公司名为键、电话号码为值构建包含各公司客服电话的字典,返回字典。
"""
# 补充你的代码
dic = {}
with open(file, 'r', encoding='utf-8') as f:
for x in f: # 遍历文件对象
x = x.strip().split(',', maxsplit=1) # 每行根据空格切分为列表,只切分一次
dic.update({x[0]: x[1]})
print(dic.items())
if __name__ == '__main__':
filename = '/data/bigfiles/customer service number.txt'
phone_dic = read_txt(filename) # 读文件返回字典
# 补充你的代码输出字典视图
第2关 客服电话查询
def read_txt(file: str) -> dict:
"""参数为表示文件名的字符串,读取文件file中的数据,构建包含各公司客服电话的字典,公司名为键,电话号码为值,返回字典。"""
# 补充你的代码
dic = {}
list1 =[]
with open(file, 'r', encoding='utf-8') as f:
for x in f: # 遍历文件对象
x = x.strip().split(',', maxsplit=1) # 每行根据空格切分为列表,只切分一次
dic.update({x[0]: x[1]}) # 列表的两个元素作为字典的键和值加入字典中
return dic
def query_get(company: str, tel_book: dict) -> str:
"""参数 company为表示公司名的字符串,参数 tel_book是字典。
查询该公司的客服电话号码,返回“用户名:电话号码”的字符串。
若公司不存在,则在电话号码位置替换为“***不存在”,***表示公司名
"""
# 补充你的代码
if company in phone_dic:
return company + ':' + phone_dic[company]
else:
return company + ':' + company+'客服电话不存在'
if __name__ == '__main__':
filename = '/data/bigfiles/customer service number.txt'
phone_dic = read_txt(filename) # 读文件到字典
comp = input() # 输入公司名
print(query_get(comp,phone_dic)) # 输出查询结果
第3关 电话簿更新
def read_txt(file: str) -> dict:
"""参数为表示文件名的字符串,读取文件file中的数据,构建包含各公司客服电话的字典,公司名为键,电话号码为值,返回字典。"""
# 补充你的代码
dic = {} # 创建空字典
with open(filename, 'r', encoding='utf-8') as data:
for x in data: # 遍历文件对象
x = x.strip().split(',',maxsplit=1) # 每行根据空格切分为列表,只切分一次
dic.update({x[0]: x[1]}) # 列表的两个元素作为字典的键和值加入字典中
return dic
def update_tel_book(company: str, tel_book: dict) -> None:
"""接受公司名与电话簿字典,若公司名存在,调用修改函数,否则调用插入函数
无返回值"""
if company in tel_book:
print(modify_number(company, tel_book))
else:
print(add_number(company, tel_book))
def modify_number(company:str, tel_book:dict):
"""接受公司名与电话簿字典,输出提示:'姓名已存在,输入"Y"或"y"修改,其他字符退出'
输入'Y'后再输入一个新电话号码,将用户的电话号码修改为新值,
返回'成功修改****电话为*****';输入其他字符时返回'放弃更新****电话'并退出。
"""
print(f'{company}电话为{tel_book[company]}')
print('公司信息已存在,输入"Y"或"y"修改电话号码,其他字符退出')
# 补充你的代码
content = input()
if content == ("Y" or "y"):
print('请输入新的电话号码:')
tel_add = input()
phone_dic[company] = tel_add
return f'成功更新{company}电话为{tel_add}'
else:
return f'放弃更新{company}电话'
def add_number(company, tel_book):
"""接受公司名和电话簿字典为参数,用户输入一个电话号码,为字典增加一个以公司名中键,以电话号为值的元素
返回'成功添加{company}客服电话为{phone_number}'
"""
print('请输入电话号码:')
# 补充你的代码
phone_number = input()
phone_dic[company] = phone_number
return f'成功添加{company}客服电话为{phone_number}'
if __name__ == '__main__':
filename = '/data/bigfiles/customer service number.txt'
phone_dic = read_txt(filename)
comp = input() # 输入要修改信息或新增的公司名
update_tel_book(comp, phone_dic) # 更新字典中的数据
第4关 删除某公司电话
本关任务:编写一个能删除一条客服电话的小程序。
相关知识
为了完成本关任务,你需要掌握: 1.删除字典的值
删除字典的值
1.pop(key) 2.del dic[key]
def read_txt(file: str) -> dict:
"""参数为表示文件名的字符串,读取文件file中的数据,构建包含各公司客服电话的字典,公司名为键,电话号码为值,返回字典。"""
# 补充你的代码
dic = {}
list1 =[]
with open(file, 'r', encoding='utf-8') as f:
for x in f: # 遍历文件对象
x = x.strip().split(',', maxsplit=1) # 每行根据空格切分为列表,只切分一次
dic.update({x[0]: x[1]}) # 列表的两个元素作为字典的键和值加入字典中
return dic
def del_number(company:str, tel_book:dict)->str:
"""参数 company表示公司名的字符串,参数 tel_book为通讯录字典。
从字典中删除某公司的信息,删除成功返回提示信息“****电话*****成功删除”
否则返回“公司名“****”不存在”
"""
# 补充你的代码
if company in phone_dic: #
del_number = phone_dic[company]
del phone_dic[company]
return f'{company}电话{del_number}成功删除'
else:
return f'公司名“{company}”不存在'
if __name__ == '__main__':
filename = '/data/bigfiles/customer service number.txt'
phone_dic = read_txt(filename)
comp = input() # 输入要删除信息的公司名
print(del_number(comp, phone_dic)) # 输出删除结果提示信息
人在舒适区待久了,就容易不思进取、安于现状。如果每天只是机械重复地做同样的事情,见识、能力和格局,很可能会停滞不前。去做一些会带来突破的事,去经历一种从未尝试过的生活。才能领略不一样的风景。人生没有太晚的开始,只要你勇于尝试,敢于挑战新事物,终会有别样的收获。一起加油吧!