【概述】

书名:Python编程:从入门到实践

作者:埃里克·马瑟斯

日期:2021年09月01日

读书用时:1632页,100小时,27个笔记

【读书笔记】

◆ 第4章 操作列表

>> 

在第3章,你学习了如何创建简单的列表,还学习了如何操作列表元素。在本章中,你将学习如何遍历整个列表,这只需要几行代码,无论列表有多长。循环让你能够对列表的每个元素都采取一个或一系列相同的措施,从而高效地处理任何长度的列表,包括包含数千乃至数百万个元素的列表。

4.1 遍历整个列表

你经常需要遍历列表的所有元素,对每个元素执行相同的操作。例如,在游戏中,可能需要将每个界面元素平移相同的距离;对于包含数字的列表,可能需要对每个元素执行相同的统计运算;在网站中,可能需要显示文章列表中的每个标题。

◆ 第5章 if语句

>> 

编程时经常需要检查一系列条件,并据此决定采取什么措施。在Python中,if语句让你能够检查程序的当前状态,并据此采取相应的措施。

在本章中,你将学习条件测试,以检查感兴趣的任何条件。你将学习简单的if语句,以及创建一系列复杂的if语句来确定当前到底处于什么情形。接下来,你将把学到的知识应用于列表,以编写for循环,以一种方式处理列表中的大多数元素,并以另一种不同的方式处理包含特定值的元素。

◆ 第6章 字典

for name in favorite_languages.keys(),字典遍历,默认遍历keys值,所以可以不写.keys

>> 如果显式地使用方法keys()可让代码更容易理解,你可以选择这样做,但如果你愿意,也可省略它。

去重函数set(listname)

>> for language in set(favorite_languages.values()): ❶
 print(language.title())

◆ 第7章 用户输入和while循环

>> 

大多数程序都旨在解决最终用户的问题,为此通常需要从用户那里获取一些信息。例如,假设有人要判断自己是否到了投票的年龄,要编写回答这个问题的程序,就需要知道用户的年龄,这样才能给出答案。因此,这种程序需要让用户输入其年龄,再将其与投票年龄进行比较,以判断用户是否到了投票的年龄,再给出结果。

在本章中,你将学习如何接受用户输入,让程序能够对其进行处理。在程序需要一个名字时,你需要提示用户输入该名字;程序需要一个名单时,你需要提示用户输入一系列名字。

字符串a+=字符串b,字符串可以通过“+”号直接连接

>> prompt = "If you tell us who you are, we can personalize the messages you see."
prompt+= "\nWhat is your first name? "

标志,就是函数外部定义变量初始值true,while判断变量值true则执行程序,内部如果接收到quit命令,就把外部变量改为false,从而结束while循环。

>> 在要求很多条件都满足才继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量被称为标志,充当了程序的交通信号灯。

◆ 第8章 函数

定义函数时变量为行参;实际调用时,变量值为实参,还扩展为:位置形参、关键字形参、默认形参、可变形参数

>> 在函数greet_user()的定义中,变量username是一个形参——函数完成其工作所需的一项信息。在代码greet_user('jesse')中,值'jesse'是一个实参。

>> 如果我们发现需要对打印代码进行修改,只需修改这些代码一次,就能影响所有调用该函数的地方;与必须分别修改程序的多个地方相比,这种修改的效率更高。

这个程序还演示了这样一种理念,即每个函数都应只负责一项具体的工作。第一个函数打印每个设计,而第二个显示打印好的模型;这优于使用一个函数来完成两项工作。编写函数时,如果你发现它执行的任务太多,请尝试将这些代码划分到两个函数中。别忘了,总是可以在一个函数中调用另一个函数,这有助于将复杂的任务划分成一系列的步骤。

8.4.2 禁止函数修改列表

有时候,需要禁止函数修改列表。例如,假设像前一个示例那样,你有一个未打印的设计列表,并编写了一个将这些设计移到打印好的模型列表中的函数。

浅复制,创建副本listname[:],不改变原有列表的数据

>> 切片表示法[:]创建列表的副本。

位置实参+关键字实参+可变实参+默认实参

>> Python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中。

**args,接收键:值对的空字典

>> 形参**user_info中的两个星号让Python创建一个名为user_info的空字典,并将收到的所有名称—值对都封装到这个字典中。

谨慎使用from xx import *,因为一旦导入文件中包含当前文件的同名文件,函数就会被覆盖引发报错

>> 然而,使用并非自己编写的大型模块时,最好不要采用这种导入方法:如果模块中有函数的名称与你的项目中使用的名称相同,可能导致意想不到的结果

函数名:下划线+小写字母,见名知意。函数第一行,三引号介绍函数作用

>> 每个函数都应包含简要地阐述其功能的注释,该注释应紧跟在函数定义后面,并采用文档字符串格式。

>> 建议代码行的长度不要超过79字符,

>> 如果程序或模块包含多个函数,可使用两个空行将相邻的函数分开,

◆ 第9章 类

>> 

面向对象编程是最有效的软件编写方法之一。在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。编写类时,你定义一大类对象都有的通用行为。基于类创建对象时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性。使用面向对象编程可模拟现实情景,其逼真程度达到了令你惊讶的地步。

根据类来创建对象被称为实例化,这让你能够使用类的实例。在本章中,你将编写一些类并创建其实例。你将指定可在实例中存储什么信息,定义可对这些实例执行哪些操作。

基于父类创建对象,叫做对象的继承,可以通用其静态属性,也叫类的实例化。

>> 基于类创建对象时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性。

class Dog():类名首字母必须大写

def __init__():静态方法,子类可直接调用,注意是双下划线

self.name = name

def eat():共有方法,子类可复用。

>> __init__()

类中的函数称为方法

每当继承父类创建子类,子类自动运行父类的静态属性和方法。

>> ❸处的方法__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,Python都会自动运行它。

__init__双下划线,避免自动默认运行的方法名的冲突。

>> 在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。

父类第一个形参(self),是为了让子类调用默认方法时,让属性本身能随意访问类中的实力和方法,我的理解是copy,把dna复制给自己的儿子。

>> 每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。

self.name,以self开头的所有变量,可以供类中所有方法调用,也可以供类中所有实例访问。

>> ❹处定义的两个变量都有前缀self。以self为前缀的变量都可供类中的所有方法使用,我们还可以通过类的任何实例来访问这些变量。self.name = name

>> 在Python 2.7中创建类时,需要做细微的修改——在括号内包含单词object

给一个父类创建多个相同名称的实例,依旧会出现多个实例,不会相互覆盖。

>> 就算我们给第二条小狗指定同样的名字和年龄,Python依然会根据Dog类创建另一个实例。

父类的静态属性内容里如果定义了有默认值的变量,类名后的括号内就不需要写形参了。

>> 如果你对某个属性这样做了,就无需包含为它提供初始值的形参

>> 9.3 继承

编写类时,并非总是要从空白开始。如果你要编写的类是另一个现成类的特殊版本,可使用继承。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为父类,而新类称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。

9.3.1 子类的方法__init__()

创建子类的实例时,Python首先需要完成的任务是给父类的所有属性赋值。为此,子类的方法__init__()需要父类施以援手。

【读书笔记】Python编程:从入门到实践-埃里克·马瑟斯,python基础体系巩固和常见场景练习相关推荐

  1. Python编程:从入门到实践 埃里克马瑟斯 1-2章

    1. 小结      变量名只能包含字母.数字和下划线,不能以数字打头:      名称错误: 使用变量前忘记赋值?                         输入变量名拼写错误?      t ...

  2. 《Python编程从入门到实践》记录之将Python函数存储在模块中(import、import*)

    目录 1.导入整个模块 2.导入特定的函数 3.使用as给函数指定别名 4.导入模块中的所有函数 5.总结 我们可以在编写程序时将函数存储在被称为模块的独立文件中,再将模块导入到主程序中(必须的步骤) ...

  3. python编程从入门到实践课后题答案-《Python编程:从入门到实践》课后习题及答案—第11章...

    第11章 测试代码 11-1 城市和国家 :编写一个函数,它接受两个形参:一个城市名和一个国家名.这个函数返回一个格式为City, Country 的字符串,如Santiago, Chile .将这个 ...

  4. python基础学习[python编程从入门到实践读书笔记(连载三)]:django学习笔记web项目

    文章目录 Django项目:学习笔记web网页 项目部署 参考 自己部署的网站,还是小有成就感的,毕竟踩过很多坑,实战技能也有些许进步. 网站链接:http://lishizheng.herokuap ...

  5. 《Python编程从入门到实践》,留言送5本

    你好,我是 zhenguo 我每次送书,一定必选经典.今天图灵出版社的这本<Python编程从入门到实践>,就很值得一读,强调入门学习Python的动手和实践,是一本经典好书.今天一共赠送 ...

  6. python编程 入门到实践-终于懂了python编程从入门到实践

    Python语言是一种典型的脚本语言,简洁,语法约束少,接近人类语言.有丰富的数据结构,例如列表.字典.集合等.具有可移植性,支持面向过程和面向对象编程,并且开源.以下是小编为你整理的python编程 ...

  7. python编程 从入门到实践-终于懂了python编程从入门到实践

    Python语言是一种典型的脚本语言,简洁,语法约束少,接近人类语言.有丰富的数据结构,例如列表.字典.集合等.具有可移植性,支持面向过程和面向对象编程,并且开源.以下是小编为你整理的python编程 ...

  8. python编程从入门到实践第九章——类

    相关文章链接: python编程从入门到实践第二章--变量和简单数据类型 python编程从入门到实践第三章--列表简介 python编程从入门到实践第四章--操作列表 python编程从入门到实践第 ...

  9. python基础学习[python编程从入门到实践读书笔记(连载一)]

    写在前面:本文来自笔者关于<python编程从入门到实践>的读书笔记与动手实践记录. 程序员之禅 文章目录 02变量和简单数据类型 03 列表简介 04 操作列表 05 if语句 06 字 ...

最新文章

  1. linux 打印函数宏,linux内核中的嵌入式汇编宏函数
  2. golang中的测试命令
  3. 超实用!K8s 开发者必须知道的 6 个开源工具
  4. Xcode使用心得01:断点中断问题和调整编译目标[转]
  5. 最近微信方面的更新   getUserInfo:fail scope unauthorized
  6. [转]Xdebug----Failed loading
  7. JavaFX图表(一)
  8. ServletContext(核心内容)
  9. 终极解码播放mkv声音小的解决
  10. (21)pandas.drop与dropna方法
  11. Linux三剑客--grep
  12. 怎么设置竖线分栏_做出专业级的Word文档分栏,只需这3个技巧
  13. hsql mybatis 表不存在_Mybatis-plus 查询数据库表时抛异常提示数据库表不存在
  14. [FAQ10926][USB serial number客制化][系列5]:如何实现可以通过pc工具来修改serialnumber?
  15. 傲澜智伴机器人_通辽智伴机器人,智伴机器人招商,傲澜智伴机器人
  16. c语言 十进制转换成二进制 递归实现
  17. 解决Eclipse保存web.xml卡的问题
  18. OpenCV_tutorials 04 imgproc module - Affine Transformations
  19. 荣耀8X0安卓系统切换鸿蒙系统,华为大改安卓Q,EMUI 10将启用全新UI,花粉沸腾:静候鸿蒙...
  20. 蓝牙软件测试指标,蓝牙测试指标.doc

热门文章

  1. 微信小程序 java四六级英语学习助手系统app
  2. 文件操作的实例——下载并合并流式视频文件
  3. npm install报错 npm ERR 的四种解决办法
  4. 西门子1200/1500PLC不定长数组选择排序的运用编程实例
  5. 分布式监控apm_Datadog:APM和分布式跟踪的新Java支持
  6. 疫情之后,教育的生死淘汰赛
  7. 电大计算机应用基础win7操作,新版电大《计算机应用基础》(win7)操作题解题步骤.doc...
  8. 2015ccpc——G - Ancient Go
  9. YOLOv5/v7 引入 RepVGG 重参数化模块
  10. 手写经典游戏 - FlappyBird