Python工程师提升计划
文章平均质量分 88
BinaryStarXin
专注于网络技术、各类计算机热门行业技术研究分享、嵌入式开发、人工智能、后端与前端等方面的技术知识文章分享,欢迎留言
展开
-
Python工程师之Python编程:从入门到实践【4.2】
check_play_button() 和_check_keydown_events() 中调用这个方。方法_check_play_button() 的代码如下,将它放在_check_events() 后。在_check_bullet_alien_collisions() 中,在整群外星人都被消灭后调用。为在玩家单击Play按钮时开始新游戏,在_check_events() 末尾添加如下elif。用了pygame.mouse.get_pos() ,它返回一个元组,其中包含玩家单击时鼠标的。原创 2024-08-04 20:28:51 · 691 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【4.1】
我们创建了一个新方法_check_bullet_alien_collisions() ,用于检测子弹。在_update_aliens() 中,当有外星人撞到飞船时,不调用函数print() ,而调。方法_check_aliens_bottom() 检查是否有外星人到达了屏幕底端。接下来在_ship_hit() 中添加代码,在玩家的飞船用完后将game_active 设置。刻,再接着往下执行。为此,在方法reset_stats() 中初始化大部分统计信息,而。原创 2024-08-04 20:17:09 · 782 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【4.0】
change_fleet_direction() ,并且修改_update_aliens()。我们将方法_update_aliens() 修改成了先调用_check_fleet_edges() ,再。fleet_direction 为-1,就将外星人的当前 坐标减去alien_speed ,从而将。方法_update_bullets() 的后面,以便与while 循环中的调用顺序一致。_change_fleet_direction() 中,遍历所有外星人,将每个外星人下移设置。对于外星人群中的每个外。原创 2024-07-24 23:58:48 · 649 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【3.9】
alien = Alien(self) self.aliens.add(alien) 在这个方法中,创建了一个Alien 实例,再将其添加到用于存储外星人群的编组 中。我们最终会创 建一群外星人,涉及的工作量不少,因此将新建一个名为_create_fleet() 的辅 助方法。将每个外星人的左边距都设置为外星人的宽度,并将上边距设置为外 星人的高度(见❶),这样更容易看清。Alien 类不需要一个在屏幕上绘制外星人的方法,因为我们将使用一个Pygame编组 方法,自动在屏幕上绘制编组中的所有元素。原创 2024-07-14 22:38:31 · 717 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【3.8】
在AlienInvasion 中,需要修改_check_keydown_events() ,以便在玩家按。在_fire_bullet() 中,创建一个Bullet 实例并将其赋给new_bullet。_update_bullets() 的代码是从run_game() 剪切并粘贴而来的,这里只是让。在❷处,将子弹的rect.midtop 设置为飞船的rect.midtop。首先导入Bullet 类(见❶),再在玩家按空格键时调用_fire_bullet() (见。的子弹,以便管理发射出去的所有子弹。原创 2024-07-14 16:22:55 · 1095 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【3.7】
现在飞船能够持续向右移动了,添加向左移动的逻辑也很容易。我们将再次修改Ship 类和方法_check_events() 。下面显示了对Ship 类的方法__init__()和update() 所做的相关修改:在方法__init__() 中,添加标志self.moving_left 。在方法update() 中,添加一个if 代码块而不是elif 代码块,这样如果玩家同时按下了左右箭头 键,将先增加再减少飞船的rect.x 值,即飞船的位置保持不变。如果使用一个 elif 代码块来处理向左移动的情况,右原创 2024-06-24 23:23:05 · 561 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【3.6】
在❷处,使用方法get_rect() 访问屏 幕的属性rect ,并将其赋给了self.screen_rect ,这让我们能够将飞船放到 屏幕的正确位置。这里采用的做法是,先 编写可行的代码,等代码越来越复杂时再进行重构,以向你展示真正的开发过程: 先编写尽可能简单的代码,等项目越来越复杂后对其进行重构。创建一个类,将该角色绘制到屏幕中央,并将该图像的背景色设置为屏 幕背景色,或者将屏幕背景色设置为该图像的背景色。这样,玩家输入时,飞船的位置将更新,从而确保使用更新后的位置将飞船绘制到屏幕上。原创 2024-06-24 14:18:45 · 710 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【3.5】
在阅读本章的过程 中,请动手输入并运行代码,以明白各个代码块对整个游戏所做的贡献,并且 尝试不同的值和设置,以对如何改进游戏的交互性有更深入的认识。在Pygame中,颜色是以RGB值指定的。另外,在项目增大时,这使得修改游戏的外观和行为更容易:要修 改游戏,只需修改(接下来将创建的)settings.py中的一些值,而无须查找散布在 项目中的各种设置。我们移动游戏元素时,pygame.display.flip() 将不断更新屏幕, 以显示元素的新位置,并且在原来的位置隐藏元素,从而营造平滑移动的效果。原创 2024-06-23 16:26:34 · 466 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【3.4】
test_store_single_response() 和test_store_three_responses() 使。test_give_default_raise() 和test_give_custom_raise()。方法store_response() 存储单个答案English。中的问题,使用store_response() 来存储答案并使用show_results() 来显。test_store_single_response() 所做的一样,在其中创建一个调查对象。原创 2024-06-23 16:20:14 · 765 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【3.3】
为此,可在每次修改 get_formatted_name() 后都进行测试:运行程序names.py,并输入像Janis Joplin这样的姓名。要为函数编写测试用例,可先导入模块unittest 和 要测试的函数,再创建一个继承unittest.TestCase 的类,并编写一系列方法对 函数行为的不同方面进行测试。下面的测试用例只包含一个方法,它检查函数get_formatted_name() 在给定名 和姓时能否正确工作: test_name_function.py。结果是否与期望的结果一致。原创 2024-06-23 16:14:31 · 583 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【3.2】
动手试一试 练习10-11:喜欢的数 编写一个程序,提示用户输入喜欢的数,并使用 json.dump() 将这个数存储到文件中。如果存储了用户 喜欢的数,就向用户显示它,否则提示用户输入喜欢的数并将其存储到文件 中。为此,它首先调用get_stored_username() ,该函数只负责获取已存储的 用户名(如果存储了的话)。在第11章中,你将学习高效的代码测试方式。这个程序更加清晰,但函数greet_user() 所做的不仅仅是问 候用户,还在存储了用户名时获取它、在没有存储用户名时提示用户输入。原创 2024-06-23 15:33:50 · 807 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【3.1】
对于所有这些情形,都可使用tryexcept 代码块以直观的方式处理。异常是使用try-except 代码块处理的。在本例中,try 代码块中的代码引发了ZeroDivisionError 异常,因此Python。在本例中,try 代码块引发了FileNotFoundError 异常,因此Python找到与该。将导致错误的代码行print(5/0) 放在一个try 代码块中。如果try 代码块中的。如果try 代码块中的代码。我们将文件alice.txt移到了正确的目录中,让try 代码块能够成功执行。原创 2024-06-23 15:29:21 · 636 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【3.0】
这让你的程序在面对错误的数据 时更健壮,不管这些错误数据源自无意的错误,还是源自破坏程序的恶意企 图。在这里,open('pi_digits.txt') 返回一个表示文件pi_digits.txt的。例如,如果text_files并不在文件夹python_work中,而在文件夹other_files。读取你刚创建的文件learning_python.txt中的每一行,将其中的Python都替换。录中查找指定的文件。下面的示例在with 代码块中将文件pi_digits.txt的各行存储在一个列表中,再在。原创 2024-06-23 15:19:22 · 674 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.9】
如你所见,在组织大型项目的代码方面,Python提供了很多选项。熟悉所有这些选项很重要,这样你才能确定哪种项目组织方式是最佳的,并能理解别人开发的项目。一开始应让代码结构尽可能简单。先尽可能在一个文件中完成所有的工作,确定一切都能正确运行后,再将类移到独立的模块中。如果你喜欢模块和文件的交互方式,可在项目开始时就尝试将类存储到模块中。先找出让你能够编写出可行代码的方式,再尝试改进代码。动手试一试。原创 2024-06-23 13:26:25 · 432 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.8】
让一个类继承另一个类后,就可以添加区分子类和父类所需的新属性和新方法了。下面来添加一个电动汽车特有的属性(电瓶),以及一个描述该属性的方法。我们将存储电瓶容量,并编写一个打印电瓶描述的方法:class Car:--snip--"""电动汽车的独特之处。""""""初始化父类的属性。再初始化电动汽车特有的属性。""""""打印一条描述电瓶容量的消息。"""在❶处,添加了新属性self.battery_size ,并设置其初始值(75 )。根据。原创 2024-06-23 13:10:13 · 777 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.7】
increment_login_attempts() 的方法,将属性login_attempts 的值。describe_restaurant() 的方法和一个名为open_restaurant() 的方。在❸处,调用方法update_odometer() 并传入23_500 ,方法reset_login_attempts() ,并再次打印属性login_attempts 的。6 调用Dog 类的方法__init__()。在❷处,定义了一个名为get_descriptive_name() 的方法。原创 2024-06-23 12:50:24 · 759 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.6】
你将把自己编写的类存储在模块中,并在自己的程序文件中导 入其他程序员编写的类。理解面向对象编程有助于你像程序员那样看世界,还可以帮助你真正明白自己 编写的代码:不仅是各行代码的作用,还有代码背后更宏大的概念。随着面临的挑战日益严峻,类还能让你以及与你合作的其他程序员的生活更轻 松。在面向对象编程 中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。接下来,在pizza.py所在的目录中创建一个名为making_pizzas.py的文件。你只需知道,在making_pizzas.py中,可。原创 2024-06-23 12:45:09 · 860 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.5】
动手试一试练习8-6:城市名 编写一个名为city_country() 的函数,它接受城市的名称及其所属的国家。这个函数应返回一个格式类似于下面的字符串:至少使用三个城市国家对来调用这个函数,并打印它返回的值。练习8-7:专辑 编写一个名为make_album() 的函数,它创建一个描述音乐专辑的字典。这个函数应接受歌手的名字和专辑名,并返回一个包含这两项信息的字典。使用这个函数创建三个表示不同专辑的字典,并打印每个返回的值,以核实字典正确地存储了专辑的信息。原创 2024-06-23 12:32:43 · 643 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.4】
first_name 的值时,使用的键为'first' ,而存储last_name 的值时,使用。这里修改了函数describe_pet() 的定义,在其中给形参animal_type 指定了。函数get_formatted_name() 和while 循环,以更正式的方式问候用户。例如,假设要扩展函数get_formatted_name() ,使其同时处理中间名。为让get_formatted_name() 在没。在本例中,使用的是get_formatted_name() 的简单版本,不涉及中间名。原创 2024-06-23 12:28:24 · 849 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.3】
下面是一个打印问候语的简单函数,名为greet_user() :greeter.py❷ """显示简单的问候语。"""")本例演示了最简单的函数结构。❶处的代码行使用关键字def 来告诉Python,你要定义一个函数。这是函数定义 ,向Python指出了函数名,还可能在圆括号内指出函数为完成任务需要什么样的信息。在这里,函数名为greet_user() ,它不需要任何信息就能完成工作,因此括号是空的(即便如此,括号也必不可少)。最后,定义以冒号结尾。原创 2024-06-23 00:29:58 · 767 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.2】
for 循环用于针对集合中的每个元素都执行一个代码块,而while 循环则不断运行,直到指定的条件不满足为止。7.2.1 使用while 循环可使用while 循环来数数。例如,下面的while 循环从1数到5:在第一行,将1 赋给变量current_number ,从而指定从1开始数。将接下来的while 循环设置成:只要current_number 小于或等于5,就接着运行这个循环。原创 2024-06-22 21:13:59 · 736 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.1】
在❶处,遍历字典users ,让Python依次将每个键赋给变量username ,并。键'toppings' ,就像访问字典中的其他值一样。是'toppings' ,与之相关联的值是一个列表,其中存储了顾客要求添加的所有配。字典alien_0 包含一个外星人的各种信息,但无法存储第二个外星人的信息,更别。与每个键盘相关联的值都是一个字典,其中包含用户的名、姓和居。这些外星人都具有相同的特征,但在Python看来,每个外星人都是独立的,这让我。样),并将这些字典存储在一个名为users 的列表中。原创 2024-06-22 19:34:54 · 717 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.0】
在本章中,你将学习能够将相关信息关联起来的Python字典, 以及如何访问和修改字典中的信息。另外,你还将学习存储字典的列表、存储 列表的字典和存储字典的字典。你可以创建一个表示人的 字典,然后想在其中存储多少信息就存储多少信息:姓名、年龄、地址、职 业,以及能描述他的任何方面。你还能够存储任意两种相关的信息,如一系列 单词及其含义,一系列人名及其喜欢的数,以及一系列山脉及其海拔,等等。在6.2.6节的示例favorite_languages.py中,字典存储的是不同人的同一种信息。量language。原创 2024-06-22 19:29:32 · 471 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【1.9】
alien_color 的变量,并将其赋值为'green' 、'yellow' 或'red'。肠(pepperoni)的代码也是一个简单的if 语句,而不是elif 或else 语句。编写简单的if 语句、if-else 语句和if-elif-else 结构,并且在程序中使用。然而,Python将跳过if-elif-else 结构中余下的测试,不再检查列表中是。练习5-6:人生的不同阶段 设置变量age 的值,再编写一个if-elif-else。不管前两个测试的结果如何,都会执行这些代码。原创 2024-06-22 19:21:57 · 861 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【1.8】
这个人未满18岁,Python将打印相应的消息,并跳过else 代码块。如果条件测试的结果为True ,Python就会执行紧跟在if 语句后面的代码,否。为了让代码更简洁,可不在if-elif-else 代码块中打印门票价格,而只在其中设。这些代码的输出与前一个示例相同,但if-elif-else 结构的作用更小:它只确定。else 是一条包罗万象的语句,只要不满足任何if 或elif 中的条件测试,其中的。answer 的值(17 )不是42 ,❶处的条件得到满足,因此缩进的代码块得以执。原创 2024-06-22 19:18:50 · 430 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【1.7】
元组看起来很像列表,但使用圆括号而非中括号来标识。定义元组后,就可使用索引来访问其元素,就像访问列表元素一样。例如,如果有一个大小不应改变的矩形,可将其长度和宽度存储在一个元组中,从而确保它们是不能修改的:首先定义元组dimensions (见❶),为此使用了圆括号而不是方括号。原创 2024-06-22 19:05:51 · 621 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【1.6】
最后,循环结束后,打印列表squares (见❺): [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 为了让代码更简洁,可不使用临时变量square ,而直接将每个计算得到的值附加 到列表末尾: squares = [] for value in range(1,11): ❶ squares.append(value**2) print(squares) ❶处的代码与squares.py中❸处和❹处的代码等效。例如,在Python中,2的立方 用2**3 表示。原创 2024-06-22 18:50:39 · 751 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【1.5】
鉴于该列表还包含其他值, Python返回到循环的第一行: for magician in magicians: Python获取列表中的下一个名字'david',并将其与变量magician相关联,再执行下 面这行代码: print(magician) Python再次打印变量magician 的值,当前为'david'。在代码行for magician inmagicians 后面,每个缩进的代码行都是循环的一部分,将针对列表中的每个值都执行一次。因此,可对列表中的每个值执行任意次数的操作。原创 2024-06-20 21:08:33 · 562 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【1.4】
注意 发生索引错误却找不到解决办法时,请尝试将列表或其长度打印出来。 列表可能与你以为的截然不同,在程序对其进行了动态处理时尤其如此。通过 查看列表或其包含的元素数,可帮助你找出这种逻辑错误。 动手试一试 练习3-11:有意引发错误 如果你还没有在程序中遇到过索引错误,就尝试引 发一个这种错误。在你的一个程序中,修改其中的索引,以引发索引错误。关 闭程序前,务必消除这个错误。3.5 小结在本章中,你学习了:列表是什么以及如何使用其中的元素;如何定义列表以及如 何增删元素;如何对列表进行原创 2024-06-20 20:49:31 · 949 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【1.3】
在本章和下一章中,你将学习列表是什么以及如何使用列表元素。列表让你能够在一个地方存储成组的信息,其中可以只包含几个元素,也可以包含 数百万个元素。列表是新手可直接使用的最强大的Python功能之一,它融合了众多 重要的编程概念。原创 2024-06-20 20:41:25 · 907 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【1.2】
在有些情况下,你可能想在字符串中使用变量的值。例如,你可能想使用两个变量分别 表示名和姓,然后合并这两个值以显示姓名: full_name.py first_name = "ada" last_name = "lovelace" ❶ full_name = f"{first_name} {last_name}" print(full_name) 要在字符串中插入变量的值,可在前引号前加上字母f (见❶),再将要插入的变量放 在花括号内。这样,当Python显示字符串时,将把每个变量都替换为其值。 这种字符串原创 2024-06-20 00:16:14 · 527 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【1.1】
如果无法运行程序hello_world.py,可尝试如下几个解决方法,这些通用方法适用于所 有编程问题。 程序存在严重错误时,Python将显示traceback,即错误报告。Python会仔细研究文 件,试图找出其中的问题。trackback可能会提供线索,让你知道是什么问题让程序 无法运行。 离开计算机,先休息一会儿再尝试。别忘了,语法在编程中非常重要,即便是少一 个冒号、引号不匹配或括号不匹配,都可能导致程序无法正确运行。请再次阅读本 章的相关内容,并重新审视你编写的代码,原创 2024-06-20 00:06:13 · 756 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【1.0】
Sublime Text是一款简单的文本编辑器,可以在任何现代操作系统中安装。你几乎能直 接在Sublime Text中执行所有程序。在Sublime Text中执行程序时,代码将在其内嵌的终端会话中运行,让你能够轻松地看到输出。Sublime Text是一款适合初学者的编辑器,但很多专业编程人员也在使用它。在学习 Python的过程中熟练掌握Sublime Text之后,可继续使用它来编写复杂的大型项目。原创 2024-06-19 23:57:04 · 627 阅读 · 0 评论