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

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

目录

11.2.4 方法 setUp()

注意

11.3 小结

第二部分

项目1 外星人入侵

第12 章

武装飞船

注意

12.1 规划项目

12.2 安装 Pygame

注意

12.2.1 使用 pip 安装 Python 包

注意

如果你启动终端会话时使用的是命令python3,那么在这里应使用命令sudo python3 get-pip.py。

12.2.2 在 Linux 系统中安装 Pygame

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

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


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

11.2.4 方法 setUp()

在前面的test_survey.py中,我们在每个测试方法中都创建了一个AnonymousSurvey实例,并在 每个方法中都创建了答案。unittest.TestCase类包含方法setUp(),让我们只需创建这些对象一 次,并在每个测试方法中使用它们。如果你在TestCase类中包含了方法setUp(),Python将先运行 它,再运行各个以test_打头的方法。这样,在你编写的每个测试方法中都可使用在方法setUp() 中创建的对象了。

下面使用setUp()来创建一个调查对象和一组答案,供方法test_store_single_response()和 test_store_three_responses()使用:

import unittest
from survey import AnonymousSurvey
class TestAnonymousSurvey(unittest.TestCase):
 """针对AnonymousSurvey类的测试"""
 def setUp(self):
 """
创建一个调查对象和一组答案,供使用的测试方法使用
 """
 question = "What language did you first learn to speak?"
1 self.my_survey = AnonymousSurvey(question)
2 self.responses = ['English', 'Spanish', 'Mandarin']
 def test_store_single_response(self):
 """测试单个答案会被妥善地存储"""
 self.my_survey.store_response(self.responses[0])
 self.assertIn(self.responses[0], self.my_survey.responses)
 def test_store_three_responses(self):
 """测试三个答案会被妥善地存储"""
 for response in self.responses:
 self.my_survey.store_response(response)
 for response in self.responses:
 self.assertIn(response, self.my_survey.responses)
unittest.main()

方法setUp()做了两件事情:创建一个调查对象(见1);创建一个答案列表(见2)。存储这 两样东西的变量名包含前缀self(即存储在属性中),因此可在这个类的任何地方使用。这让两 个测试方法都更简单,因为它们都不用创建调查对象和答案。方法test_store_three_response() 核 实 self.responses 中的第一个答案 ——self.responses[0]—— 被妥善地存储,而方法 test_store_three_response()核实self.responses中的全部三个答案都被妥善地存储。

再次运行test_survey.py时,这两个测试也都通过了。如果要扩展AnonymousSurvey,使其允许 每位用户输入多个答案,这些测试将很有用。修改代码以接受多个答案后,可运行这些测试,确 认存储单个答案或一系列答案的行为未受影响。

测试自己编写的类时,方法setUp()让测试方法编写起来更容易:可在setUp()方法中创建一 系列实例并设置它们的属性,再在测试方法中直接使用这些实例。相比于在每个测试方法中都创 建实例并设置其属性,这要容易得多。


注意

运行测试用例时,每完成一个单元测试,Python都打印一个字符:测试通过时打印一个 句点;测试引发错误时打印一个E;测试导致断言失败时打印一个F。这就是你运行测试 用例时,在输出的第一行中看到的句点和字符数量各不相同的原因。如果测试用例包含 很多单元测试,需要运行很长时间,就可通过观察这些结果来获悉有多少个测试通过了。


11.3 小结

在本章中,你学习了:如何使用模块unittest中的工具来为函数和类编写测试;如何编写继 承unittest.TestCase的类,以及如何编写测试方法,以核实函数和类的行为符合预期;如何使用 方法setUp()来根据类高效地创建实例并设置其属性,以便在类的所有测试方法中都可使用它们。 测试是很多初学者都不熟悉的主题。作为初学者,并非必须为你尝试的所有项目编写测试; 但参与工作量较大的项目时,你应对自己编写的函数和类的重要行为进行测试。这样你就能够更 加确定自己所做的工作不会破坏项目的其他部分,你就能够随心所欲地改进既有代码了。如果不 小心破坏了原来的功能,你马上就会知道,从而能够轻松地修复问题。相比于等到不满意的用户 报告bug后再采取措施,在测试未通过时采取措施要容易得多。 如果你在项目中包含了初步测试,其他程序员将更敬佩你,他们将能够更得心应手地尝试使 用你编写的代码,也更愿意与你合作开发项目。如果你要跟其他程序员开发的项目共享代码,就 必须证明你编写的代码通过了既有测试,通常还需要为你添加的新行为编写测试。 请通过多开展测试来熟悉代码测试过程。对于自己编写的函数和类,请编写针对其重要行为 的测试,但在项目早期,不要试图去编写全覆盖的测试用例,除非有充分的理由这样做。

第二部分

项目1 外星人入侵

第12 章

武装飞船


注意

游戏《外星人入侵》将包含很多不同的文件,因此请在你的系统中新建一个文件夹,并 将其命名为alien_invasion。请务必将这个项目的所有文件都存储到这个文件夹中,这样 相关的import语句才能正确地工作。


12.1 规划项目

开发大型项目时,做好规划后再动手编写项目很重要。规划可确保你不偏离轨道,从而提高 项目成功的可能性。 下面来编写有关游戏《外星人入侵》的描述,其中虽然没有涵盖这款游戏的所有细节,但能让你清楚地知道该如何动手开发它。 在游戏《外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家 可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星人出 现在天空中,他们在屏幕中向下移动。玩家的任务是射杀这些外星人。玩家将所有外星 人都消灭干净后,将出现一群新的外星人,他们移动的速度更快。只要有外星人撞到了 玩家的飞船或到达了屏幕底部,玩家就损失一艘飞船。玩家损失三艘飞船后,游戏结束。 在第一个开发阶段,我们将创建一艘可左右移动的飞船,这艘飞船在用户按空格键时能够开 火。设置好这种行为后,我们就能够将注意力转向外星人,并提高这款游戏的可玩性。

12.2 安装 Pygame

开始编码前,先来安装Pygame。下面介绍如何在Linux、OS X和Microsoft Windows中安装 Pygame。 如果你使用的是Linux系统和Python 3,或者是OS X系统,就需要使用pip来安装Pygame。pip 是一个负责为你下载并安装Python包的程序。接下来的几小节介绍如何使用pip来安装Python包。 如果你使用的是Linux系统和Python 2.7,或者是Windows,就无需使用pip来安装Pygame;在 这种情况下,请直接跳到12.2.2节或12.2.4节。


注意

接下来的部分包含在各种系统上安装pip的说明,因为数据可视化项目和Web应用程序项 目都需要pip。这些说明也可在https://www.nostarch.com/pythoncrashcourse/在线资源中找 到。如果安装时遇到麻烦,看看在线说明是否管用。


12.2.1 使用 pip 安装 Python 包

大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip。在Python 3 中,pip有时被称为pip3。

1. 在Linux和OS X系统中检查是否安装了pip

打开一个终端窗口,并执行如下命令:

$ pip --version
1 pip 7.0.3 from /usr/local/lib/python3.5/dist-packages (python 3.5)
$

如果你的系统只安装了一个版本的Python,并看到了类似于上面的输出,请跳到12.2.2节或 12.2.3节。

如果出现了错误消息,请尝试将pip替换为pip3。

如果这两个版本都没有安装到你的系 统中,请跳到“安装pip”。 如果你的系统安装了多个版本的Python,请核实pip关联到了你使用的Python版本,如python3.5(见1)。如果pip关联到了正确的Python版本,请跳到12.2.2节或12.2.3节。如果pip没有关联到 正确的Python版本,请尝试将pip替换为pip3。如果执行这两个命令时,输出都表明没有关联到正 确的Python版本,请跳到“安装pip”。 2. 在Windows系统中检查是否安装了pip 打开一个终端窗口,并执行如下命令:

$ python -m pip --version
1 pip 7.0.3 from C:\Python35\lib\site-packages (python 3.5)
$

如果你的系统只安装了一个版本的Python,并看到了类似于上面的输出,请跳到12.2.4节。 如果出现了错误消息,请尝试将pip替换为pip3。如果执行这两个命令时都出现错误消息,请跳到 “安装pip”。

如果你的系统安装了多个版本的Python,请核实pip关联到了你使用的Python版本,如python 3.5(见1)。如果pip关联到了正确的Python版本,请跳到12.2.4节。如果pip没有关联到正确的Python 版本,请尝试将pip替换为pip3。如果执行这两个命令时都出现错误消息,请跳到“安装pip”。

3. 安装pip 要安装pip,请访问https://bootstrap.pypa.io/get-pip.py。如果出现对话框,请选择保存文件; 如果get-pip.py的代码出现在浏览器中,请将这些代码复制并粘贴到文本编辑器中,再将文件保存 为get-pip.py。将get-pip.py保存到计算机中后,你需要以管理员身份运行它,因为pip将在你的系 统中安装新包。


注意

如果你找不到get-pip.py,请访问https://pip.pypa.io/,单击左边面板中的Installation,再单 击中间窗口中的链接get-pip.py。


4. 在Linux和OS X系统中安装pip

使用下面的命令以管理员身份运行get-pip.py:

$ sudo python get-pip.py

注意

如果你启动终端会话时使用的是命令python3,那么在这里应使用命令sudo python3 get-pip.py。


这个程序运行后,使用命令pip --version(或pip3 --version)确认正确地安装了pip。

5. 在Windows系统中安装pip

使用下面的命令运行get-pip.py:

$ python get-pip.py

如果你在终端中运行Python时使用的是另一个命令,也请使用这个命令来运行get-pip.py。例 如,你可能需要使用命令python3 get-pip.py或C:\Python35\python get-pip.py。 这个程序运行后,执行命令python -m pip --version以确认成功地安装了pip

12.2.2 在 Linux 系统中安装 Pygame

如果你使用的是Python 2.7,请使用包管理器来安装Pygame。为此,打开一个终端窗口,并 执行下面的命令,这将下载Pygame,并将其安装到你的系统中:

$ sudo apt-get install python-pygame

执行如下命令,在终端会话中检查安装情况:

$ python
>>> import pygame
>>> 

如果没有任何输出,就说明Python导入了Pygame,你可以跳到12.3节。

如果你使用的是Python 3,就需要执行两个步骤:安装Pygame依赖的库;下载并安装Pygame。

执行下面的命令来安装Pygame依赖的库(如果你开始终端会话时使用的是命令python3.5, 请将python3-dev替换为python3.5-dev):

$ sudo apt-get install python3-dev mercurial
$ sudo apt-get install libsdl-image1.2-dev libsdl2-dev libsdl-ttf2.0-dev

这将安装运行《外星人入侵》时需要的库。如果你要启用Pygame的一些高级功能,如添加 声音的功能,可安装下面这些额外的库:

$ sudo apt-get install libsdl-mixer1.2-dev libportmidi-dev
$ sudo apt-get install libswscale-dev libsmpeg-dev libavformat-dev libavcode-dev
$ sudo apt-get install python-numpy 

接下来,执行下面的命令来安装Pygame(如有必要,将pip替换为pip3):

$ pip install --user hg+http://bitbucket.org/pygame/pygame

告知你Pygame找到了哪些库后,输出将暂停一段时间。请按回车键,即便有一些库没有找 到。你将看到一条消息,说明成功地安装了Pygame。

要确认安装成功,请启动一个Python终端会话,并尝试执行下面的命令来导入Pygame:

$ python3
>>> import pygame
>>>

如果导入成功,请跳到12.3节。


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

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

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

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

到了这里,关于关于“Python”的核心知识点整理大全29的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索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

领红包