关于“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”的核心知识点整理大全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日
    浏览(44)
  • 关于“Python”的核心知识点整理大全6

    目录 4:操作列表 4.1 遍历整个列表 4.1.1 深入地研究循环 4.1.2 在 for 循环中执行更多的操作 4.1.3 在 for 循环结束后执行一些操作 4.2 避免缩进错误 4.2.1 忘记缩进 4.2.2 忘记缩进额外的代码行 4.2.3 不必要的缩进 4.2.4 循环后不必要的缩进 往期快速传送门👆(在文章最后): 你经

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

    目录 16.1.3 提取并读取数据 highs_lows.py highs_lows.py 16.1.4 绘制气温图表 highs_lows.py 16.1.5 模块 datetime ​编辑 16.1.6 在图表中添加日期 highs_lows.py 16.1.7 涵盖更长的时间 highs_lows.py highs_lows.py 16.1.9 给图表区域着色 highs_lows.py 往期快速传送门👆(在文章最后): 感谢大家的支持!欢迎

    2024年02月04日
    浏览(25)
  • 关于“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日
    浏览(115)
  • 关于“Python”的核心知识点整理大全59

    目录 19.3.2 将数据关联到用户 1. 修改模型Topic models.py 2. 确定当前有哪些用户 3. 迁移数据库 注意 19.3.3 只允许用户访问自己的主题 views.py 19.3.4 保护用户的主题 views.py views.py 19.3.6 将新主题关联到当前用户 views.py 往期快速传送门👆(在文章最后): 感谢大家的支持!欢迎订阅

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

    目录 ​编辑 8.6.4 使用 as 给模块指定别名 8.6.5 导入模块中的所有函数 8.7 函数编写指南 8.8 小结 第9章 类 9.1 创建和使用类 9.1.1 创建 Dog 类 dog.py 1. 方法__init__() 2. 在Python 2.7中创建类 9.1.2 根据类创建实例 1. 访问属性 2. 调用方法 3. 创建多个实例 往期快速传送门👆(在文章最后

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

    目录 ​编辑 8.3.4 结合使用函数和 while 循环 greeter.py 8.4 传递列表 greet_users.py 8.4.1 在函数中修改列表 printing_models.py 8.4.2 禁止函数修改列表 要将列表的副本传递给函数,可以像下面这样做: 往期快速传送门👆(在文章最后): 感谢大家的支持!欢迎订阅收藏!专栏将持续更

    2024年02月04日
    浏览(37)
  • 关于“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日
    浏览(30)
  • 关于“Python”的核心知识点整理大全8

    目录 ​编辑 4.5 元组 4.5.1 定义元组 dimensions.py 4.5.2 遍历元组中的所有值 4.5.3 修改元组变量 4.6 设置代码格式 4.6.1 格式设置指南 4.6.2 缩进 4.6.3 行长 4.6.4 空行 4.6.5 其他格式设置指南 4.7 小结 第5章 if语句 5.1 一个简单示例 cars.py 5.2 条件测试 5.2.1 检查是否相等 5.2.2 检查是否相等

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

    目录 6.3.3 按顺序遍历字典中的所有键 6.3.4 遍历字典中的所有值 6.4 嵌套 6.4.1 字典列表 aliens.py 6.4.2 在字典中存储列表 pizza.py favorite_languages.py 注意 往期快速传送门👆(在文章最后): 6.3.3 按顺序遍历字典中的所有键 字典总是明确地记录键和值之间的关联关系,但获取字典的

    2024年02月05日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包