简介
验证一下python学习效果,顺便还能再编程与巩固的同时长点见识,
项目描述
1、网上采集世界国家人口排名先构成列表,再形成字典
2、用户输入排名,输出对应排名的国家
3、用户输入国家,输出该国家人口数量对应的排名
4、若是不输入内容或是输入的内容不在程序的查找范围内,可以重新输入
参考
程序中的TXT文件,或复制该链接下的表格名称那一列新建TXT即可
《流畅的Python》字典构造方法
小结
1、else、elif为子块,不能独立使用;一个if语句中可以包含多个elif语句,但结尾只能有一个else语句
2、 and 和 or 执行布尔逻辑演算,在布尔环境中,0、”、[]、()、{}、None为假;其它任何东西都为真
3、字典构造方法
a = dict(one=1, two=2, three=3)
b = {'one': 1, 'two': 2, 'three': 3}
c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
d = dict([('two', 2), ('one', 1), ('three', 3)])
e = dict({'three': 3, 'one': 1, 'two': 2})
4、列表构造方法
n1 = []
for n in range(1, 227):
n1.append(str(n))
程序代码
# !/usr/bin/python
# -*- coding: UTF-8 -*-
def population_rank():
country_name = []
with open('C:\\Users\\th103\\Desktop\\country_name.txt', 'r', True, 'UTF-8') as f:
for i in range(0, 227):
name = f.readline()
country_name.append(name.strip('\n'))
list1 = [i for i in range(1, 227)]
list2 = country_name
population_rankings_list = list(zip(list1, list2))
# 世界人口数量排名前10位国家列表转化为字典
population_rankings_dict = dict(sorted(population_rankings_list))
# 生成国家排名的列表
n1 = []
for n in range(1, 227):
n1.append(str(n))
# 进入循环,按q或Q退出程序
while True:
input_value = input('请输入一个正整数或国家名,或按q或Q退出程序:')
# 判断输入的数字(此时为字符串形式)是否在n1
if input_value in n1:
country_name = population_rankings_dict[int(input_value)]
print('人口排名第{0}的国家是:{1}'.format(int(input_value), country_name))
# 判断输入的内容是否不在n1和字典的“值”中,确保程序继续下去
elif (input_value not in n1) and (input_value not in population_rankings_dict.values()):
print(end='')
# 不打断程序的连续性
else:
print(end='')
# 判断输入的国家名(此时为字符串形式)是否在字典的“值”中
for i in range(1, 227):
if (input_value == population_rankings_dict[i]) and (len(input_value) > 0):
print('人口排名第{rank}的国家是:{name}'.format(rank=i, name=str(input_value)))
# 输入字母q或Q退出循环
while input_value.lower() == 'q' or input_value == 'Q':
exit(0)
population_rank()
致谢
感谢同伴对我的帮助!
感谢网上的教程!