python核心编程-第三章-个人笔记
1.语句和语法
(1)反斜杠"\"表示语句继续。python良好的编程习惯是一行最后不超过80个字符,一行字符过多时便须用到反斜杠换行继续该语句。
PS:在使用小括号、中括号、大括号时可以跨行书写,无须反斜杠;三引号的字符串也可以跨行书写
(2)分号";"可以在同一行写多个语句。虽然python支持这么做,但为了代码可读性,一般不建议这么做
2.变量赋值
(1) python中,对象是引用传递的,而不是直接将值赋给对象 如:
>>> a = 123 >>> b = a >>> a 123 >>> b 123 >>> a = 456 >>> a 456 >>> b 123
语句 a = 123,执行的是创建整型 123 以及变量a,并把a指向这个整型;
语句 b = a ,执行的是创建变量b 并把b指向a指向的整型123
在重新给a赋值时,a的指向发生变化,b的指向并没有发生变化,所以在执行 a = 456 之后,a 的值是 456,b的值仍是123
(2)多重赋值 形如x = y = z = 1,一个对象被赋予多个变量
(3)多元赋值 这种赋值方式的等号两边都是元组
>>> x, y, z = 1, 2, 'ab' >>> x 1 >>> y 2 >>> z 'ab'
1、2、'ab'三个对象分别赋值给x,y,z
为了提高代码可读性,最后给两边的元组都加上括号
>>> (x, y, z) = (1, 2, 'ab') >>> x 1 >>> y 2 >>> z 'ab'
多元赋值可以方便的用于变量交换
>>> x = 123 >>> y = 456 >>> x 123 >>> y 456 >>> (x, y) = (y, x) >>> x 456 >>> y 123
3.标识符
①标识符只可包含字母、数字、下划线,首字符不可为数字
②定义字符时须避免python关键字和内建字符。python关键字如下图:
③python用下划线作为变量前缀和后缀指定特殊变量,对解释器有特殊意义,故建议避免用下划线作为变量名字符的开始
4.python基本风格
(1)综述
①注释是必要的,但需要注意不能过度注释,如
x = 5 #对x赋值5
这里的注释就是不必要的,因为这是句废话
②良好的缩进风格是四个空格,避免用tab
③使用简短而又意义丰富的标识符名称
(2)模块结构和布局
①典型的python模块结构,如图
②除非必要,尽量用局部变量代替全局变量
③除了真正需要执行的代码,需要导入模块时必须执行的代码,几乎所以功能代码应该都封装在函数或类中等待主程序调用
④python检测模块是被导入还是被直接运行,用__name__系统变量:
如果模块是被导入,__name__的值为模块名字
如果模块被直接执行,__name__的值为"__main__"
5.内存管理
(1)变量定义
①python中,变量使用前无须声明名字和类型,将在变量第一次赋值时自动声明
②变量仍然需要在被创建和赋值后才能使用
③变量被赋值后。可以通过变量名直接访问
(2)引用计数
python使用"引用计数"来保持追踪内存中的对象。一个内部跟踪变量,称为一个引用计数器,每个对象各有多少个引用,简称引用计数。对象的引用计数为0时被垃圾回收。
①增加引用计数
当对象被创建时,就创建了一个引用计数;当对象被赋值给变量时,引用计数就计为1。
当同一个对象又被赋值给其他变量,或者被作为参数传递给函数,或作为容器对象的一个元素时,对象的引用计数增加1。
x = 123 # 对象被创建并赋值,引用计数为1 y = x #对象被引用给其他变量,引用计数加1 float(x) #作为参数传递给函数,引用计数加1 list1 = ['ab','c',x] #成为容器的一个元素,引用计数加1
②减少引用计数
引用计数减少包括以下情形:
一个本地引用离开了作用范围,这种情况最常出现在函数运行结束时所以局部变量都被销毁,对象的引用计数随之减少;
对象的别名被del销毁
del y # or del x
对象的一个别名被赋值给其他变量
x = 456
对象从一个容器对象中被移除
list1.remove(x)
容器对象本身被销毁
del list1
6.第一个python程序
(1) try-except-else结构
结构:
try:pass #try子块是希望检测错误的代码块 except IOError,e:pass #except子块对错误做出处理,当发生错误时执行此代码块 else:pass #else代码块在try子块检测无误时执行
转载于:https://www.cnblogs.com/hnyczhj/p/4768314.html
python核心编程-第三章-个人笔记相关推荐
- python核心编程-第六章-个人笔记(一)
2019独角兽企业重金招聘Python工程师标准>>> 0. 序列包括字符串.列表和元组三种类型 1. 序列 1.0 序列的每一个元素可以通过指定一个偏移量的方式得到, ...
- python核心编程-第六章-个人笔记(二)
2019独角兽企业重金招聘Python工程师标准>>> 3.11.2 in操作符和index() 先看一段代码 >>> 'record' in music_med ...
- python核心编程第三版_Python之父:自学python,这3本书能节约你一大半时间编程...
今天给大家推荐三本书,有两本是属于一个系列,即<Python核心编程>第二版和第三版,一本讲基础和一本讲进阶,非常适合Python的初学者和有一定基础的学习者.还有一本书适合所有想学Pyt ...
- python核心编程第三版_《Python核心编程(第3版)》
<Python核心编程(第3版)>是经典畅销图书<Python核心编程(第二版)>的全新升级版本,本书适合具有一定经验的Python开发人员阅读,总共分为3部分.第1部分为讲解 ...
- Python计算机视觉编程第三章——图像到图像的映射
Python计算机视觉编程 图像到图像的映射 (一)单应性变换 1.1 直接线性变换算法 1.2 仿射变换 (二)图像扭曲 2.1 图像中的图像 2.2 图像配准 (三)创建全景图 3.1 RANSA ...
- Python计算机视觉编程 第三章 图像到图像的映射
第三章 图像到图像的映射 3.1 单应性变换 3.1.1直接线性变换算法 3.1.2仿射变换 3.2图像扭曲 3.2.1图像中的图像 3.2.2图像配准 3.3创建全景图 3.3.1RANSAC 3. ...
- python核心编程第三版(一)学习笔记:正则表达式
注:下面有些内容不全都来源于原著,这些都是通过各方面的资料收集合并的结果. 目录 一.正则表达式介绍 二.分类解析 1.元字符 匹配对象以及group()和groups()方法 搜索与匹配的比较 2. ...
- python程序练习题第三章_python核心编程-第三章-习题
1.这是python的语言特性,python先创建对象,在给变量赋值时,不需要定义变量的名称和类型,它实际是用变量引用对象.变量类型在给变量赋值时自动声明 2.原因类似变量无须声明类型 3.pytho ...
- python程序操作的核心_python核心编程-第五章-个人笔记
1.用del删除对对象的引用 >>> a = 123 >>>a123 >>> dela>>>a Traceback (most ...
- 读书:python核心编程第三版笔记
message = 'It was a bright cold day in April, and the clocks were striking thirteen.' count = {} for ...
最新文章
- HDOJ 1004 Let the Balloon Rise
- 92. Leetcode 63. 不同路径 II (动态规划-路径规划)
- ALS爱立思简明教程
- PHP 笔记——操作MySQL数据库
- 实习生招聘 | TEG 2019年暑期实习生招聘正式启动
- Codeforces Round #725 (Div. 3) G. Gift Set 二分
- java如何连接mysql_Java如何连接数据库
- stm32读取目标芯片_使用stm32驱动RC522读IC卡(代码留言邮箱)
- Spark源码分析之Task
- FPGA SPI总线协议简介
- Linux离线的nginx安装启动,linux-离线安装nginx
- 《JavaScript开发框架权威指南》——2.4 处理任务
- (转载)软件测试全套教程,软件测试自学线路图
- 一个用于创建JSON接口的网站 http://myjson.com/api
- 完成端口(Completion Port)详解
- 大厂年薪几十万,但是5-8年外包程序员,年薪是多少你知道吗?
- 原来普洱茶还有预防头痛,减轻体重,缓解压力和失眠的作用,而且是年份久的普洱茶效果好
- ZeroLogon(CVE-2020-1472) 漏洞的攻击与防御策略(上)
- 7.node.js的Buffer(缓冲区)的合并(concat)、比较(compare)、拷贝(copy)和裁剪(slice)以及如何转化为JSON对象
- MySQL数据库教程之七:MySQL编程基础
热门文章
- 关于利用exchange server 2003搭建邮件服务器:小进步……
- weblogic IllegalArgumentException 解决办法
- 【C#小知识】C#中一些易混淆概念总结(八)---------解析接口
- LINUX下用select实现串口通讯示例
- HDU-4324 Triangle LOVE 拓扑排序
- SysUtils.AdjustLineBreaks - Unix 与 Windows 的换行符互换
- Nginx源码分析 - HTTP模块篇 - HTTP模块的阶段处理PHASE handler(23)
- Linux 网络编程——UDP编程
- 状态位字段使用char(1)还是tinyint(1)?
- flask-mail异步发送邮件_Spring Boot与异步任务、定时任务、邮件任务