
Python工程师提升计划
文章平均质量分 90
BinaryStarXin
专注于网络技术、各类计算机热门行业技术研究分享、嵌入式开发、人工智能、后端与前端等方面的技术知识文章分享,欢迎留言
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OpenCV轻松入门:面向Python【2.7】
摘要:本文介绍了OpenCV中的形态学图像处理技术,重点讲解了cv2.morphologyEx()函数的使用。该函数通过组合基础的腐蚀和膨胀操作,实现了开运算(去噪、计数)、闭运算(填充孔洞、连接区域)、形态学梯度(边缘提取)、礼帽运算(提取亮边缘/噪声)、黑帽运算(提取暗边缘/孔洞)等多种形态学操作。文章详细说明了每种运算的原理、应用场景和实现代码,并展示了不同核函数(矩形、十字形、椭圆形)对形态学处理效果的影响。通过实际案例演示了如何使用这些技术处理图像,为图像分析和特征提取提供了实用方法。原创 2025-07-27 20:05:18 · 1013 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【2.6】
本文介绍了OpenCV中的图像处理技术,主要包括自定义卷积和形态学操作两部分。在卷积部分,详细讲解了cv2.filter2D()函数的使用方法,通过自定义卷积核实现图像滤波,并提供了均值滤波的实现示例。在形态学操作部分,重点阐述了腐蚀和膨胀的原理及实现:腐蚀使用cv2.erode()函数缩小前景对象,膨胀使用cv2.dilate()函数扩大前景边界。通过多个示例展示了不同参数设置对处理效果的影响,包括核大小、迭代次数等,并比较了各种情况下的处理结果差异。这些基础操作是更复杂形态学运算(如开闭运算等)的基础,原创 2025-07-27 14:52:22 · 799 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【2.5】
摘要:本文介绍了三种图像滤波方法:高斯滤波、中值滤波和双边滤波。高斯滤波通过赋予中心点更大权重实现平滑处理,其卷积核需归一化,OpenCV中通过cv2.GaussianBlur函数实现。中值滤波取邻域像素中值替代当前像素值,能有效去除噪声且保留细节,通过cv2.medianBlur实现。双边滤波综合考虑空间距离和色彩差异,在去噪同时保护边缘信息,通过cv2.bilateralFilter实现,其中sigma参数控制滤波效果。实验对比显示,高斯滤波会模糊边缘,而双边滤波能更好地保持边缘清晰度。三种滤波方法各具原创 2025-07-27 14:41:18 · 834 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【2.4】
图像平滑处理是一种保留图像主要信息同时去除噪声的技术,通过将噪点像素值调整为周围像素近似值来实现。本章介绍了均值滤波、方框滤波等常用方法:均值滤波通过计算邻域像素均值来消除噪声,核越大去噪效果越强但失真越明显;方框滤波可选择是否归一化,未归一化时像素值可能超出范围。实验表明,3×3或5×5核能较好平衡去噪与失真,而过大核会导致图像过度模糊。OpenCV提供了cv2.blur()和cv2.boxFilter()函数分别实现这两种滤波方法,使用时需根据需求调整核大小和归一化参数。原创 2025-07-27 13:05:15 · 961 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【2.3】
本文介绍了OpenCV中的几种阈值处理方法及其应用。主要内容包括:1. 反二值化阈值处理(THRESH_BINARY_INV):将大于阈值的像素设为0,小于等于的设为255;2. 截断阈值化处理(THRESH_TRUNC):将大于阈值的像素设为阈值,其余保持不变;3. 超阈值零处理(THRESH_TOZERO_INV):将大于阈值的像素置0,其余保留;4. 低阈值零处理(THRESH_TOZERO):将小于等于阈值的像素置0,其余保留;5. 自适应阈值处理:通过计算局部邻域加权平均值确定阈值,适用于明暗不均原创 2025-07-26 00:06:32 · 884 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【2.2】
本文介绍了在OpenCV中使用cv2.remap()函数实现图像翻转的几种方法。主要包括:1)绕y轴翻转,保持y坐标不变,x坐标对称变换;2)同时绕x、y轴翻转;3)x、y轴互换;4)图像缩放。通过具体代码示例演示了如何构建映射矩阵mapx和mapy来实现这些变换,并给出了数组和lena图像的处理结果。此外,还介绍了阈值处理函数cv2.threshold()的基本用法,包括二值化阈值处理的实现方法和示例。文中通过详细代码和运行结果展示了各种图像变换效果,为OpenCV图像处理提供了实用参考。原创 2025-07-25 23:52:31 · 611 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【2.1】
OpenCV提供了多种图像变换方法,包括仿射变换、透视变换和重映射。仿射变换通过cv2.getAffineTransform()生成转换矩阵,并用cv2.warpAffine()实现图像变换,可将矩形映射为任意平行四边形。透视变换则通过cv2.getPerspectiveTransform()和cv2.warpPerspective()实现更复杂的四边形映射。重映射使用cv2.remap()函数,通过自定义映射参数map1和map2实现像素位置的自定义调整,能够完成图像复制等操作。这些变换方法通过控制源点和原创 2025-07-24 23:25:25 · 1238 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【2.0】
本文介绍了OpenCV中的几何变换操作,主要包括缩放、翻转和仿射变换。在缩放方面,详细讲解了cv2.resize()函数的使用方法,包括参数dsize、fx、fy的用法差异及注意事项,并通过实例演示了缩放效果。翻转操作介绍了cv2.flip()函数实现图像水平、垂直及双向翻转的方法。仿射变换部分阐述了cv2.warpAffine()函数的原理,重点讲解了平移和旋转两种变换的实现方式,包括如何构造变换矩阵和使用cv2.getRotationMatrix2D()函数。文中通过多个示例代码直观展示了各种变换效果,原创 2025-07-24 23:05:06 · 905 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【1.9】
本文介绍了基于HSV色彩空间的颜色标记方法,重点讲解了如何通过cv2.inRange()函数锁定特定颜色值。主要内容包括:1. 利用H通道筛选特定颜色(如蓝色、绿色、红色),通过设置合适区间范围实现颜色提取;2. 使用掩码和按位与运算显示感兴趣区域(ROI);3. 将方法扩展到肤色标记,通过设定HSV空间中的色调和饱和度范围实现;4. 通过调整HSV通道值(如将V通道设为255)创造艺术效果;5. 介绍了RGBA色彩空间中的alpha通道处理,演示了如何修改透明度并合并通道。文中通过多个具体示例展示了相关技原创 2025-07-23 23:48:07 · 732 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【1.8】
本文介绍了OpenCV中的色彩空间转换函数cv2.cvtColor()及其应用。主要内容包括:1)该函数的语法格式和参数说明,重点解释了BGR与RGB色彩空间的差异;2)不同类型图像(8位、16位、浮点数)在转换时的取值范围处理;3)通过数组和实际图像展示了BGR与灰度图、RGB之间的相互转换过程;4)详细解析了HSV色彩空间的三个分量(色调H、饱和度S、亮度V)及其在OpenCV中的表示方法;5)通过实例演示了如何获取RGB颜色在HSV空间中的对应值,验证了蓝色、绿色、红色的HSV编码。文中还强调了非线性原创 2025-07-23 23:34:00 · 971 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【1.7】
本文介绍了图像处理中的两个核心技术:脸部打码解码和色彩空间转换。在脸部打码解码部分,通过Python+OpenCV实现了一个完整的脸部打码解码流程,包括密钥生成、异或加密、掩模处理等步骤。在色彩空间转换部分,详细阐述了常见的8种色彩空间(GRAY、XYZ、YCrCb、HSV、HLS、CIELab*、CIELuv*、Bayer)的特性及转换原理,重点分析了HSV色彩空间的色调、饱和度、亮度三要素,并提供了各色彩空间间的转换公式。文章通过具体代码示例和理论讲解相结合的方式,展示了图像处理中这两个重要技术的实现方原创 2025-07-23 22:06:15 · 939 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【1.6】
最低有效位(LSB)数字水印技术通过将二值图像信息嵌入载体图像的最低有效位实现信息隐藏。该方法利用人眼对最低位变化不敏感的特性,将水印信息替换载体图像的第0位平面,具有较高隐蔽性。水印嵌入过程包括:预处理载体图像保留高七位、处理水印为二值图像、通过按位或运算嵌入水印;提取过程通过按位与运算从载体图像最低位提取水印信息。该技术可实现信息隐藏、版权认证等功能,适用于文本、图像等多种数字水印形式。虽然隐蔽性较好,但由于算法简单,安全性有待提高。实验表明,含水印图像与原始图像视觉差异不明显,成功实现了水印的嵌入与提原创 2025-07-23 21:29:30 · 821 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【1.5】
本文介绍了灰度图像的位平面分解原理及实现方法。对于8位灰度图像,可分解为8个位平面,其中最高有效位(第7位)平面与原图最相似,最低有效位(第0位)平面呈杂乱图案。分解方法包括:1)构造2^n提取矩阵;2)进行按位与运算提取指定位;3)阈值处理将非零值设为255以增强显示。此外,文章还阐述了基于按位异或运算的图像加密解密技术,通过密钥图像与原始图像的异或运算实现加密,再用相同密钥异或运算即可解密还原图像。最后通过Python+OpenCV实现了位平面分解和加解密过程的代码示例,验证了相关理论的正确性。原创 2025-07-23 00:16:18 · 979 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【1.4】
摘要:本文介绍了OpenCV中的按位逻辑运算及其在图像处理中的应用。主要内容包括:1)四种位运算(与、或、非、异或)的原理及对应函数cv2.bitwise_and/or/not/xor()的使用方法;2)掩模操作原理,通过位运算实现图像指定区域的提取;3)图像与数值的运算方式。通过多个示例展示了如何构造掩模图像、处理灰度及彩色图像,以及位运算与掩模结合使用的技巧。文中特别强调彩色图像处理时需注意通道匹配问题,并提供了两种掩模应用方案。原创 2025-07-09 00:06:59 · 588 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【1.3】
摘要:本文介绍了OpenCV中RGB图像的通道操作与图像属性获取方法。主要内容包括:1)通道拆分与合并操作,演示了通过索引和cv2.split()函数拆分BGR通道,以及使用cv2.merge()合并通道的不同效果;2)图像属性获取方法,如shape、size、dtype等属性的含义及使用示例;3)图像加法运算的两种方式("+"运算符和cv2.add()函数)的区别及实际应用;4)图像加权和运算cv2.addWeighted()的原理和使用场景,包括ROI区域的混合处理。文中通过多个代码原创 2025-06-25 23:26:34 · 933 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【1.2】
本文介绍了使用NumPy的item()和itemset()函数高效访问和修改图像像素值的方法。对于灰度图像,通过行列索引直接操作像素;对于彩色图像,还需指定通道信息。通过多个实例演示了随机生成图像、读取修改像素值、区域像素修改等操作。在ROI处理部分,展示了区域复制、脸部提取与打码、图像间ROI复制等应用场景。这些方法优化了像素操作效率,提升了图像处理的可读性和灵活性。文中所有实例均提供完整代码和效果说明,建议读者实际运行观察彩色效果。原创 2025-06-18 22:44:00 · 1632 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【1.1】
本文介绍了OpenCV图像处理的基本操作,重点讲解了图像保存、像素访问与修改方法。主要内容包括:1. 图像保存方法,使用cv2.imwrite()函数保存图像;2. OpenCV贡献库的功能模块及安装方式;3. 图像的基本表示方法(二值图像、灰度图像、彩色图像);4. 像素处理操作,包括索引访问和数值修改;5. 通过多个示例演示如何读取图像并修改指定区域像素值。文章强调使用OpenCV处理图像需要熟练掌握Numpy数组操作,并详细说明了不同类型图像的存储结构和访问方式。原创 2025-06-18 22:30:20 · 954 阅读 · 0 评论 -
OpenCV轻松入门:面向Python【1.0】
OpenCV是一个由英特尔开发的跨平台开源计算机视觉库,提供500多种图像处理函数。本文介绍了使用Python配置OpenCV开发环境的步骤:安装Python 3、Anaconda,并通过pip安装OpenCV包。重点讲解了图像处理的基本操作,包括:1)使用cv2.imread()读取图像;2)通过cv2.imshow()显示图像,配合cv2.namedWindow()创建窗口;3)利用cv2.waitKey()实现键盘交互;4)使用cv2.destroyWindow()和cv2.destroyAllWin原创 2025-06-18 21:58:31 · 647 阅读 · 0 评论 -
网络工程师的Python之路-网络运维自动化实战【2.6】
( 4)最后使用 for 循环,打印出 switch_with_authentication_issue 和 switch_not_reachable 两个列表中的元素,这样就能清楚看到有哪些交换机的用户名和密码验证失败,哪些交换机的管理 IP 地址不可达。( 3) 在主机上创建一个名为 ip_list.txt 的文本文件,内含 SW1~SW5 的管理 IP 地址,注意在实验 2 中我们已经将 SW5 的管理 IP 地址从 192.168.2.15 改成 192.168.2.55,如下所示。原创 2025-03-12 21:53:55 · 942 阅读 · 0 评论 -
网络工程师的Python之路-网络运维自动化实战【2.2】
根据维基百科的解释:正则表达式( Regular Expression,在代码中常简写为 regex、 regexp 或 RE),又称正规表示式、 正规表示法、 正规表达式、 规则表达式、 常规表示法,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器 k,正则表达式通常被用来检索、替换那些匹配某个模式的文本。原创 2025-03-11 23:35:51 · 1212 阅读 · 0 评论 -
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 · 748 阅读 · 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 · 832 阅读 · 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 · 709 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【3.9】
alien = Alien(self) self.aliens.add(alien) 在这个方法中,创建了一个Alien 实例,再将其添加到用于存储外星人群的编组 中。我们最终会创 建一群外星人,涉及的工作量不少,因此将新建一个名为_create_fleet() 的辅 助方法。将每个外星人的左边距都设置为外星人的宽度,并将上边距设置为外 星人的高度(见❶),这样更容易看清。Alien 类不需要一个在屏幕上绘制外星人的方法,因为我们将使用一个Pygame编组 方法,自动在屏幕上绘制编组中的所有元素。原创 2024-07-14 22:38:31 · 784 阅读 · 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 · 1188 阅读 · 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 · 633 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【3.6】
在❷处,使用方法get_rect() 访问屏 幕的属性rect ,并将其赋给了self.screen_rect ,这让我们能够将飞船放到 屏幕的正确位置。这里采用的做法是,先 编写可行的代码,等代码越来越复杂时再进行重构,以向你展示真正的开发过程: 先编写尽可能简单的代码,等项目越来越复杂后对其进行重构。创建一个类,将该角色绘制到屏幕中央,并将该图像的背景色设置为屏 幕背景色,或者将屏幕背景色设置为该图像的背景色。这样,玩家输入时,飞船的位置将更新,从而确保使用更新后的位置将飞船绘制到屏幕上。原创 2024-06-24 14:18:45 · 800 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【3.5】
在阅读本章的过程 中,请动手输入并运行代码,以明白各个代码块对整个游戏所做的贡献,并且 尝试不同的值和设置,以对如何改进游戏的交互性有更深入的认识。在Pygame中,颜色是以RGB值指定的。另外,在项目增大时,这使得修改游戏的外观和行为更容易:要修 改游戏,只需修改(接下来将创建的)settings.py中的一些值,而无须查找散布在 项目中的各种设置。我们移动游戏元素时,pygame.display.flip() 将不断更新屏幕, 以显示元素的新位置,并且在原来的位置隐藏元素,从而营造平滑移动的效果。原创 2024-06-23 16:26:34 · 516 阅读 · 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 · 814 阅读 · 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 · 625 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【3.2】
动手试一试 练习10-11:喜欢的数 编写一个程序,提示用户输入喜欢的数,并使用 json.dump() 将这个数存储到文件中。如果存储了用户 喜欢的数,就向用户显示它,否则提示用户输入喜欢的数并将其存储到文件 中。为此,它首先调用get_stored_username() ,该函数只负责获取已存储的 用户名(如果存储了的话)。在第11章中,你将学习高效的代码测试方式。这个程序更加清晰,但函数greet_user() 所做的不仅仅是问 候用户,还在存储了用户名时获取它、在没有存储用户名时提示用户输入。原创 2024-06-23 15:33:50 · 854 阅读 · 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 · 686 阅读 · 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 · 724 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.9】
如你所见,在组织大型项目的代码方面,Python提供了很多选项。熟悉所有这些选项很重要,这样你才能确定哪种项目组织方式是最佳的,并能理解别人开发的项目。一开始应让代码结构尽可能简单。先尽可能在一个文件中完成所有的工作,确定一切都能正确运行后,再将类移到独立的模块中。如果你喜欢模块和文件的交互方式,可在项目开始时就尝试将类存储到模块中。先找出让你能够编写出可行代码的方式,再尝试改进代码。动手试一试。原创 2024-06-23 13:26:25 · 498 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.8】
让一个类继承另一个类后,就可以添加区分子类和父类所需的新属性和新方法了。下面来添加一个电动汽车特有的属性(电瓶),以及一个描述该属性的方法。我们将存储电瓶容量,并编写一个打印电瓶描述的方法:class Car:--snip--"""电动汽车的独特之处。""""""初始化父类的属性。再初始化电动汽车特有的属性。""""""打印一条描述电瓶容量的消息。"""在❶处,添加了新属性self.battery_size ,并设置其初始值(75 )。根据。原创 2024-06-23 13:10:13 · 841 阅读 · 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 · 813 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.6】
你将把自己编写的类存储在模块中,并在自己的程序文件中导 入其他程序员编写的类。理解面向对象编程有助于你像程序员那样看世界,还可以帮助你真正明白自己 编写的代码:不仅是各行代码的作用,还有代码背后更宏大的概念。随着面临的挑战日益严峻,类还能让你以及与你合作的其他程序员的生活更轻 松。在面向对象编程 中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。接下来,在pizza.py所在的目录中创建一个名为making_pizzas.py的文件。你只需知道,在making_pizzas.py中,可。原创 2024-06-23 12:45:09 · 904 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.5】
动手试一试练习8-6:城市名 编写一个名为city_country() 的函数,它接受城市的名称及其所属的国家。这个函数应返回一个格式类似于下面的字符串:至少使用三个城市国家对来调用这个函数,并打印它返回的值。练习8-7:专辑 编写一个名为make_album() 的函数,它创建一个描述音乐专辑的字典。这个函数应接受歌手的名字和专辑名,并返回一个包含这两项信息的字典。使用这个函数创建三个表示不同专辑的字典,并打印每个返回的值,以核实字典正确地存储了专辑的信息。原创 2024-06-23 12:32:43 · 713 阅读 · 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 · 891 阅读 · 0 评论 -
Python工程师之Python编程:从入门到实践【2.3】
下面是一个打印问候语的简单函数,名为greet_user() :greeter.py❷ """显示简单的问候语。"""")本例演示了最简单的函数结构。❶处的代码行使用关键字def 来告诉Python,你要定义一个函数。这是函数定义 ,向Python指出了函数名,还可能在圆括号内指出函数为完成任务需要什么样的信息。在这里,函数名为greet_user() ,它不需要任何信息就能完成工作,因此括号是空的(即便如此,括号也必不可少)。最后,定义以冒号结尾。原创 2024-06-23 00:29:58 · 815 阅读 · 0 评论