关于“Python”的核心知识点整理大全48

这篇具有很好参考价值的文章主要介绍了关于“Python”的核心知识点整理大全48。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关于“Python”的核心知识点整理大全48,掌握Python分类专栏:开启智能数据处理之旅!,python,python,前端,开发语言,笔记

目录

world_population.py

16.2.5 制作世界地图

americas.py

16.2.6 在世界地图上呈现数字数据

na_populations.py

16.2.7 绘制完整的世界人口地图

world_population.py

16.2.8 根据人口数量将国家分组

world_population.py

16.2.9 使用 Pygal 设置世界地图的样式

world_population.py

往期快速传送门👆(在文章最后):

感谢大家的支持!欢迎订阅收藏!专栏将持续更新!


关于“Python”的核心知识点整理大全48,掌握Python分类专栏:开启智能数据处理之旅!,python,python,前端,开发语言,笔记

from pygal.i18n import COUNTRIES
1 def get_country_code(country_name):
 """根据指定的国家,返回Pygal使用的两个字母的国别码"""
3 for code, name in COUNTRIES.items():
 if name == country_name:
 return code
 # 如果没有找到指定的国家,就返回None
4 return None 
print(get_country_code('Andorra'))
print(get_country_code('United Arab Emirates'))
print(get_country_code('Afghanistan')) 

get_country_code()接受国家名,并将其存储在形参country_name中(见1)。接下来,我们 遍历COUNTRIES中的国家名—国别码对(见2);如果找到指定的国家名,就返回相应的国别码(见 3)。在循环后面,我们在没有找到指定的国家名时返回None(见4)。最后,我们使用了三个国 家名来调用这个函数,以核实它能否正确地工作。与预期的一样,这个程序输出了三个由两个字 母组成的国别码:

ad
ae
af 

使用这个函数前,先将country_codes.py中的print语句删除。 接下来,在world_population.py中导入get_country_code:

world_population.py

import json
from country_codes import get_country_code
--snip--
# 打印每个国家2010年的人口数量
for pop_dict in pop_data:
 if pop_dict['Year'] == '2010':
 country_name = pop_dict['Country Name']
 population = int(float(pop_dict['Value']))
1 code = get_country_code(country_name)
 if code:
2 print(code + ": "+ str(population))
3 else:
 print('ERROR - ' + country_name) 

提取国家名和人口数量后,我们将国别码存储在code中,如果没有国别码,就在其中存储None (见1)。如果返回了国别码,就打印国别码和相应国家的人口数量(见2)。如果没有找到国别 码,就显示一条错误消息,其中包含无法找到国别码的国家的名称(见3)。如果你运行这个程 序,将看到一些国别码和相应国家的人口数量,还有一些错误消息:

ERROR - Arab World
ERROR - Caribbean small states
ERROR - East Asia & Pacific (all income levels)
--snip--
af: 34385000
al: 3205000
dz: 35468000
--snip
ERROR - Yemen, Rep.
zm: 12927000
zw: 12571000

导致显示错误消息的原因有两个。首先,并非所有人口数量对应的都是国家,有些人口数量 对应的是地区(阿拉伯世界)和经济类群(所有收入水平)。其次,有些统计数据使用了不同的 完整国家名(如Yemen, Rep.,而不是Yemen)。当前,我们将忽略导致错误的数据,看看根据成 功恢复了的数据制作出的地图是什么样的。

16.2.5 制作世界地图

有了国别码后,制作世界地图易如反掌。Pygal提供了图表类型Worldmap,可帮助你制作呈现 各国数据的世界地图。为演示如何使用Worldmap,我们来创建一个突出北美、中美和南美的简单 地图:

americas.py
import pygal
1 wm = pygal.Worldmap()
wm.title = 'North, Central, and South America'
2 wm.add('North America', ['ca', 'mx', 'us'])
wm.add('Central America', ['bz', 'cr', 'gt', 'hn', 'ni', 'pa', 'sv'])
wm.add('South America', ['ar', 'bo', 'br', 'cl', 'co', 'ec', 'gf',
 'gy', 'pe', 'py', 'sr', 'uy', 've'])

3 wm.render_to_file('americas.svg')

在1处,我们创建了一个Worldmap实例,并设置了该地图的的title属性。在2处,我们使用 了方法add(),它接受一个标签和一个列表,其中后者包含我们要突出的国家的国别码。每次调 用add()都将为指定的国家选择一种新颜色,并在图表左边显示该颜色和指定的标签。我们要以 同一种颜色显示整个北美地区,因此第一次调用add()时,在传递给它的列表中包含'ca'、'mx' 和'us',以同时突出加拿大、墨西哥和美国。接下来,对中美和南美国家做同样的处理。 3处的方法render_to_file()创建一个包含该图表的.svg文件,你可以在浏览器中打开它。输 出是一幅以不同颜色突出北美、中美和南美的地图,如图16-7所示。

关于“Python”的核心知识点整理大全48,掌握Python分类专栏:开启智能数据处理之旅!,python,python,前端,开发语言,笔记

知道如何创建包含彩色区域、颜色标示和标签的地图后,我们在地图中添加数据,以显示有 关国家的信息。

16.2.6 在世界地图上呈现数字数据

为练习在地图上呈现数字数据,我们来创建一幅地图,显示三个北美国家的人口数量:

na_populations.py
import pygal
wm = pygal.Worldmap()
wm.title = 'Populations of Countries in North America'
1 wm.add('North America', {'ca': 34126000, 'us': 309349000, 'mx': 113423000})
wm.render_to_file('na_populations.svg')

首先,创建了一个Worldmap实例并设置了标题。接下来,使用了方法add(),但这次通过第 二个实参传递了一个字典而不是列表(见1)。这个字典将两个字母的Pygal国别码作为键,将人 口数量作为值。Pygal根据这些数字自动给不同国家着以深浅不一的颜色(人口最少的国家颜色 最浅,人口最多的国家颜色最深),如图16-8所示。

关于“Python”的核心知识点整理大全48,掌握Python分类专栏:开启智能数据处理之旅!,python,python,前端,开发语言,笔记

这幅地图具有交互性:如果你将鼠标指向某个国家,将看到其人口数量。下面在这个地图中 添加更多的数据。

16.2.7 绘制完整的世界人口地图

要呈现其他国家的人口数量,需要将前面处理的数据转换为Pygal要求的字典格式:键为两 个字母的国别码,值为人口数量。为此,在world_population.py中添加如下代码:

world_population.py
import json
import pygal
from country_codes import get_country_code
# 将数据加载到列表中
--snip--
# 创建一个包含人口数量的字典
1 cc_populations = {}
for pop_dict in pop_data:
 if pop_dict['Year'] == '2010':
 country = pop_dict['Country Name']
 population = int(float(pop_dict['Value']))
 code = get_country_code(country)
 if code:
2 cc_populations[code] = population
3 wm = pygal.Worldmap()
wm.title = 'World Population in 2010, by Country'
4 wm.add('2010', cc_populations)
wm.render_to_file('world_population.svg') 

我们首先导入了pygal。在1处,我们创建了一个空字典,用于以Pygal要求的格式存储国别 码和人口数量。在2处,如果返回了国别码,就将国别码和人口数量分别作为键和值填充字典 cc_populations。我们还删除了所有的print语句。

在3处,我们创建了一个Worldmap实例,并设置其title属性。在4处,我们调用了add(), 并向它传递由国别码和人口数量组成的字典。图16-9显示了生成的地图。

关于“Python”的核心知识点整理大全48,掌握Python分类专栏:开启智能数据处理之旅!,python,python,前端,开发语言,笔记

有几个国家没有相关的数据,我们将其显示为黑色,但对于大多数国家,都根据其人口数量 进行了着色。本章后面将处理数据缺失的问题,这里先来修改着色,以更准确地反映各国的人口 数量。在当前的地图中,很多国家都是浅色的,只有两个国家是深色的。对大多数国家而言,颜 色深浅的差别不足以反映其人口数量的差别。为修复这种问题,我们将根据人口数量将国家分组, 再分别给每个组着色。

16.2.8 根据人口数量将国家分组

印度和中国的人口比其他国家多得多,但在当前的地图中,它们的颜色与其他国家差别较小。 中国和印度的人口都超过了10亿,接下来人口最多的国家是美国,但只有大约3亿。下面不将所 有国家都作为一个编组,而是根据人口数量分成三组——少于1000万的、介于1000万和10亿之间 的以及超过10亿的:

world_population.py
--snip--
# 创建一个包含人口数据的字典
cc_populations = {}
for pop_dict in pop_data:
 if pop_dict['Year'] == '2010':
 --snip--
 if code:
 cc_populations[code] = population
# 根据人口数量将所有的国家分成三组
1 cc_pops_1, cc_pops_2, cc_pops_3 = {}, {}, {}
2 for cc, pop in cc_populations.items():
 if pop < 10000000:
 cc_pops_1[cc] = pop
 elif pop < 1000000000:
 cc_pops_2[cc] = pop
 else:
 cc_pops_3[cc] = pop
# 看看每组分别包含多少个国家
3 print(len(cc_pops_1), len(cc_pops_2), len(cc_pops_3))
wm = pygal.Worldmap()
wm.title = 'World Population in 2010, by Country'
4 wm.add('0-10m', cc_pops_1)
wm.add('10m-1bn', cc_pops_2)
wm.add('>1bn', cc_pops_3)
wm.render_to_file('world_population.svg') 

为将国家分组,我们创建了三个空字典(见1)。接下来,遍历cc_populations,检查每个国 家的人口数量(见2)。if-elif-else代码块将每个国别码人口数量对加入到合适的字典 (cc_pops_1、cc_pops_2或cc_pops_3)中。

在3处,我们打印这些字典的长度,以获悉每个分组的规模。绘制地图时,我们将全部三个 分组都添加到Worldmap中(见4)。如果你现在运行这个程序,首先看到的将是每个分组的规模:

85 69 2

上述输出表明,人口少于1000万的国家有85个,人口介于1000万和10亿之间的国家有69个,还有两个国家比较特殊,其人口都超过了10亿。这样的分组看起来足够了,让地图包含丰富的信 息。图16-10显示了生成的地图。

关于“Python”的核心知识点整理大全48,掌握Python分类专栏:开启智能数据处理之旅!,python,python,前端,开发语言,笔记

现在使用了三种不同的颜色,让我们能够看出人口数量上的差别。在每组中,各个国家都按 人口从少到多着以从浅到深的颜色。

16.2.9 使用 Pygal 设置世界地图的样式

在这个地图中,根据人口将国家分组虽然很有效,但默认的颜色设置很难看。例如,在这里, Pygal选择了鲜艳的粉色和绿色基色。下面使用Pygal样式设置指令来调整颜色。 我们也让Pygal使用一种基色,但将指定该基色,并让三个分组的颜色差别更大:

world_population.py
import json
import pygal
1 from pygal.style import RotateStyle
--snip--
# 根据人口数量将所有的国家分成三组
cc_pops_1, cc_pops_2, cc_pops_3 = {}, {}, {}
for cc, pop in cc_populations.items():
 if pop < 10000000:
 --snip-- 
2 wm_style = RotateStyle('#336699')
3 wm = pygal.Worldmap(style=wm_style)
wm.title = 'World Population in 2010, by Country'
--snip-- 

关于“Python”的核心知识点整理大全37-CSDN博客

关于“Python”的核心知识点整理大全25-CSDN博客

关于“Python”的核心知识点整理大全12-CSDN博客文章来源地址https://www.toymoban.com/news/detail-817125.html

往期快速传送门👆(在文章最后):

感谢大家的支持!欢迎订阅收藏!专栏将持续更新!

到了这里,关于关于“Python”的核心知识点整理大全48的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于“Python”的核心知识点整理大全60

    目录 19.4 小结 第 20 章 设置应用程序的样式并对其 进行部署 20.1 设置项目“学习笔记”的样式 20.1.1 应用程序 django-bootstrap3 settings.py settings.py 20.1.2 使用 Bootstrap 来设置项目“学习笔记”的样式 20.1.3 修改 base.html 1. 定义HTML头部 base.html 2. 定义导航栏 3. 定义页面的主要部分 往期

    2024年01月17日
    浏览(37)
  • 关于“Python”的核心知识点整理大全44

    目录 ​编辑 15.3.4 模拟多次随机漫步 rw_visual.py 注意 15.3.5 设置随机漫步图的样式 15.3.6 给点着色 rw_visual.py 15.3.7 重新绘制起点和终点 rw_visual.py 15.3.8 隐藏坐标轴 rw_visual.py 15.3.9 增加点数 rw_visual.py 15.3.10 调整尺寸以适合屏幕 rw_visual.py 15.4 使用 Pygal 模拟掷骰子 15.4.1 安装 Pygal 注

    2024年02月03日
    浏览(23)
  • 关于“Python”的核心知识点整理大全42

    目录 game_functions.py game_functions.py game_functions.py alien_invasion.py 14.4 小结 第15 章 生成数据 15.1 安装 matplotlib 15.1.1 在 Linux 系统中安装 matplotlib 15.1.2 在 OS X 系统中安装 matplotlib 注意 15.1.3 在 Windows 系统中安装 matplotlib 注意 15.1.4 测试 matplotlib 注意 15.1.5 matplotlib 画廊 15.2 绘制简单的

    2024年02月03日
    浏览(101)
  • 关于“Python”的核心知识点整理大全26

    目录 10.3.9 决定报告哪些错误 10.4 存储数据 10.4.1 使用 json.dump()和 json.load() number_writer.py number_reader.py 10.4.2 保存和读取用户生成的数据 对于用户生成的数据,使用json保存它们大有裨益,因为如果不以某种方式进行存储,等程 序停止运行时用户的信息将丢失。下面来看一个这样

    2024年02月04日
    浏览(29)
  • 关于“Python”的核心知识点整理大全41

    目录 scoreboard.py game_functions.py game_functions.py 14.3.8 显示等级 game_stats.py scoreboard.py scoreboard.py scoreboard.py game_functions.py game_functions.py alien_invasion.py 14.3.9 显示余下的飞船数 ship.py scoreboard.py   我们将最高得分圆整到最近的10的整数倍(1),并添加了用逗号表示的千分位分隔符(见

    2024年02月04日
    浏览(28)
  • 关于“Python”的核心知识点整理大全9

    目录 ​编辑 5.2.4 比较数字 5.2.5 检查多个条件 1. 使用and检查多个条件 2. 使用or检查多个条件 5.2.6 检查特定值是否包含在列表中 5.2.7 检查特定值是否不包含在列表中 banned_users.py 5.2.8 布尔表达式 5.3 if 语句 5.3.1 简单的 if 语句 5.3.2 if-else 语句 5.3.3 if-elif-else 结构 5.3.4 使用多个

    2024年02月05日
    浏览(26)
  • 关于“Python”的核心知识点整理大全27

    目录 10.5 小结 第11 章 测试代码 11.1 测试函数 name_function.py 函数get_formatted_name()将名和姓合并成姓名,在名和姓之间加上一个空格,并将它们的 首字母都大写,再返回结果。为核实get_formatted_name()像期望的那样工作,我们来编写一个 使用这个函数的程序。程序names.py让用户输

    2024年02月01日
    浏览(29)
  • 关于“Python”的核心知识点整理大全64

    目录 20.2.15 确保项目的安全 settings.py 20.2.16 提交并推送修改 20.2.17 创建自定义错误页面 1. 创建自定义模板 500.html settings.py settings.py 注意 views.py 20.2.18 继续开发 往期快速传送门👆(在文章最后): 感谢大家的支持!欢迎订阅收藏!专栏将持续更新! 当前,我们部署的项目存

    2024年02月03日
    浏览(69)
  • 关于“Python”的核心知识点整理大全57

    目录 3. 模板edit_entry edit_entry.html 4. 链接到页面edit_entry topic.html 19.2 创建用户账户 19.2.1 应用程序 users 1. 将应用程序users添加到settings.py中 settings.py 2. 包含应用程序users的URL urls.py 19.2.2 登录页面 urls.py 1. 模板login.html login.html 2. 链接到登录页面 base.html 3. 使用登录页面 往期快速传

    2024年01月24日
    浏览(34)
  • 关于“Python”的核心知识点整理大全53

    目录 18.2.7 Django shell 注意 18.3 创建网页:学习笔记主页 18.3.1 映射 URL urls.py urls.py 注意 18.3.2 编写视图 views.py 18.3.3 编写模板 index.html 往期快速传送门👆(在文章最后): 感谢大家的支持!欢迎订阅收藏!专栏将持续更新! 输入一些数据后,就可通过交互式终端会话以编程方

    2024年01月25日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包