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

news2024/12/25 2:25:12

目录

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

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

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


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博客

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1322346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文Rebuttal常见格式与模板之下篇

论文Rebuttal常见格式与模板之下篇 前言7. Rebuttal 常见表达一些推荐阅读总体感谢表示感谢和赞同表示不同意或澄清尾句模板 Rebuttal模板的好文 前言 这里承接上一篇笔记:论文Rebuttal常见格式与模板之中篇 其中篇的内容主要讲述可能遇到Rebuttal问题(…

5. Prism系列之区域管理器

Prism系列之区域管理器 文章目录 Prism系列之区域管理器一、区域管理器二、区域创建与视图的注入1. ViewDiscovery2. ViewInjection 三、激活与失效视图1. Activate和Deactivate2. 监控视图激活状态3. Add和Remove 四、自定义区域适配器1. 创建自定义适配器2. 注册映射3. 创建区…

Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句

场景 PostGresSQL简介与Windows上的安装教程: PostGresSQL简介与Windows上的安装教程_postgressql windows安装免费吗?-CSDN博客 除了标准 SQL 语句之外,PostgreSQL 还支持使用各种过程语言(例如 PL/pgSQL、C、PL/Tcl、PL/Python、PL/Per…

fiddler的下载、安装

在官网下载fiddler 点击Download For Windows 下载完成 安装fiddler 点击.exe文件,进行傻瓜式安装,即可安装成功 配置fiddler 点击OK后,重启fiddler, 即可抓包

Next.js 学习笔记(三)——路由

路由 路由基础知识 每个应用程序的骨架都是路由。本页将向你介绍互联网路由的基本概念以及如何在 Next.js 中处理路由。 术语 首先,你将在整个文档中看到这些术语的使用情况。以下是一个快速参考: 树(Tree):用于可…

XXE利用的工作原理,利用方法及防御的案例讲解

XXE(XML外部实体注入)利用是一种网络安全攻击手段,其中攻击者利用XML解析器处理外部实体的方式中的漏洞。这种攻击主要针对的是那些使用XML来处理数据的应用程序,尤其是当这些应用程序没有正确限制外部实体的处理时。通过XXE利用&…

2018年第七届数学建模国际赛小美赛D题速度扼杀爱情解题全过程文档及程序

2018年第七届数学建模国际赛小美赛 D题 速度扼杀爱情 原题再现: 在网上约会的时代,有比鱼更多的浪漫选择,好吧,你知道的。例如,在命名恰当的网站Plenty of Fish上,你可以仔细查看数百或数千名潜在伴侣的档…

云原生之深入解析强大的镜像构建工具Earthly

一、Earthly 简介 Earthly 是一个更加高级的 Docker 镜像构建工具,Earthly 通过自己定义的 Earthfile 来代替传统的 Dockerfile 完成镜像构建;Earthfile 就如同 Earthly 官方所描述: Makefile Dockerfile Earthfile在使用 Earthly 进行构建镜像时目前…

护肤品类小红书素人达人的推广报价是多少?

小红书是一款集社交和电商于一体的平台,用户可以在上面分享生活点滴、购物心得、旅游攻略等。近年来,随着护肤美妆市场的不断扩大,越来越多的品牌和商家选择在小红书上投放广告,借助素人达人的影响力为产品引流。那么,…

Java第十七章总结

数据库基础 SQL语言 1、select 语句 select 语句用于从数据中检索数据。语法如下: SELECT 搜选字段列表 FROM 数据表名 WHERE 条件表达式 GROUP BY 字段名 HAVING 条件表达式(指定分组的条件) ORDER BY 字段名[ASC|DESC] 2、insert 语句 insert 语句用于向表中插入…

2024年G2电站锅炉司炉证考试题库及G2电站锅炉司炉试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2024年G2电站锅炉司炉证考试题库及G2电站锅炉司炉试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试大纲…

Spring学习?这一篇文章就够,史上最全!

文章目录 前言一、IOC概述及底层原理1.概述和原理 二、思路分析三、IOC操作bean管理(基于xml,使用的是IDEA2022.3.3,maven仓库)1.xml实现bean管理(1)创建对象(2)注入属性&#xff08…

SQL Server 查询处理过程

查询处理--由 SQL Server 中的关系引擎执行,它获取编写的 T-SQL 语句并将其转换为可以向存储引擎发出请求并检索所需结果的过程。 SQL Server 需要四个步骤来处理查询:分析、代化、优化和执行。 前三个步骤都由关系引擎执行;第三步输出的是…

一文解释JS如何获取当前系统电量

在前端浏览器中我们可以通过使用JavaScript的navigator.getBattery()方法来获取当前系统的电池情况。 这个API可以监测设备的电池状态,包括是否在充电、当前电量以及放电或充电所需的时间。本文将介绍如何使用这个API以及它在实际应用中的使用。 API使用 首先让我…

SD-WAN组网:企业网络的首选

在互联网技术不断更新、发展的背景之下,企业在面对日益复杂的网络组网需求时迫切需要一种创新的解决方案。传统的MPLS-VPN组网方式由于其高成本的特点令企业难以破局, SD-WAN正逐渐代替它们,成为企业网络组网的首选。 本文将深入探讨SD-WAN技…

广州华锐互动VRAR:利用VR开展新能源汽车触电安全演练,降低培训成本和风险

随着新能源汽车行业的快速发展,相关的安全培训也变得越来越重要。其中,触电急救培训对于保障驾驶员和乘客的安全具有重要意义。传统培训方式存在一些不足,而利用VR技术进行培训则具有很多优势。 利用VR技术开展新能源汽车触电安全演练可以在模…

电脑风扇控制软件Macs Fan Control mac支持多个型号

Macs Fan Control mac是一款专门为 Mac 用户设计的软件,它可以帮助用户控制和监控 Mac 设备的风扇速度和温度。这款软件允许用户手动调整风扇速度,以提高设备的散热效果,减少过热造成的风险。 Macs Fan Control 可以在菜单栏上显示当前系统温…

linux | sed 命令使用 | xargs命令 使用

##################################################### sed命令来自英文词组stream editor的缩写,其功能是利用语法/脚本对文本文件进行批量的编辑操作。sed命令最初由贝尔实验室开发,后被众多Linux系统集成,能够通过正则表达式对文件进行批…

Mysql利用备份数据恢复单表

1、说明 之前的备份是使用Xtrabackup8做的备份 使用了独立表空间(innodb_file_per_table1),就可以单独恢复这个表。 2、在备份的目录下执行Prepare 根据自己之前备份的目录,选择执行路径 我之前的备份目录是 /tmp/backup/2023-12-16/full cd /tmp/…

虾皮 选品:如何在虾皮平台上进行有效的选品?

在虾皮(Shopee)这个跨境电商平台上,选品对于卖家来说至关重要。选品决定了店铺的销售额和竞争力。为了帮助卖家进行选品,虾皮平台提供了一些免费的选品工具,如知虾。同时,还有一些第三方选品工具&#xff0…