python3基础教程
[第一版][2016.10]
邓英 夏帮贵 [主编]
总页数:278
唯一QQ :1825587919
唯一WX :ly1825587919
PS:为了阅读效率,以下笔记仅记录关键内容
第一章 python起步
- 1.python2.x和python3.x的区别
- 2.python是解释性语言
- 3.python的运行
- 4.python的可执行exe文件打包软件 http://py2exe.org/
- 5.python运行环境搭建
第二章 python编程基础
- 1.基本结构
缩进 4个空格
注释 #(单行注释) """(多行注释)或'''
语句续行 \
语句分隔 ;
关键字大小写
- 2.基本输入和输出
input()
print()
sep可以指定分隔符号,默认为一个空格 sep=''
end可以指定结尾符号,默认为换行号 end=''
file可以指定输出到文件, file=
- 3.数据类型 数字
运算符优先级
//除法 和 /除法
小数由于精度问题会出现不精确 引入decimal模块中的Decimal函数
分数表示需引入模块fractions中的Frantion函数
其他常见函数 chr():返回整数对应的ASCII码值
ord():返回字符的ASCII码值对应的整数
divmod():返回商和余数
eval():返回字符串中表达式的值
max(),min(),pow(),sum(),不解释
round():一个参数时四舍五入为整数,两个参数时第二个参数为保留小数位数,舍入部分为5时向偶数舍入
需要更多数学函数需要导入math模块,比如math.gcd(x,y)为求最大公约数
- 4.变量与动态数据类型
所有的数据都已对象存在
变量名前使用*,为变量创建列表对象引用
赋值语句
①简单赋值 a=1
②序列赋值 a,b=2,4
③多目标赋值 a=b=c=1
④增强赋值 a+=1
变量的共享引用
可以用is来判断变量是否引用自一个对象
- 5.数据类型:集合 set()
和字典一样,用花括号表示
通常用set()函数来创建
x.pop():随机删除一个元素
x.clear():删除全部元素
集合,列表字典对象均不能加入集合,但元组可作为一个对象加入集合
冻结集合不可改变集合,所以可以作为元素加入到一个集合内,冻结集合表示为:x=frozenset()
- 6.数据类型:字符串 str()
字符串对象不容许被修改
带r前缀:r`xjdjd',R'fjfjd` 不会解析转义字符
带u前缀:u'djddj`,U'shdd`
三引号:作为可换行字符串,作为注释
打开文件时输入文件名:
-
- 两个反斜线
- 一个正斜线
- 加前缀r
字符串基本操作
- 求长度:len
- 包含性判断:in
- 连接字符串:+
空格分开的多个字符串自动合并
加号合并
乘法重复字符串
逗号合并时产生元组
字符串迭代用for循环
分片时可以有三个参数,start,end,step
step为负数时,返回的字符串与原来相反
可以用str()将数字转换为字符串,也可以用repr(),区别不再赘述
字符串转化
字符串格式化表达式:基本同c
bytes字符串,书写格式为字符串前加前缀b,字符串内只能含有ascii码,其他功能与普通字符串一样,索引时返回ascii的数字值。可用16进制显示字符串,b‘dfj'.hex()
- 7.数据类型:列表 list()
列表可修改
列表存储的是对象的引用,而不是对象本身,类似于c的指针数组
remove(按值删除一个对象)
pop(按位置删除一个对象,省略参数时删除第一个)
sort()排序,数字按从小到大,字符串按字典序
reverse()反转列表元素
- 8.数类型:元组 tuple()
可看做不可变的列表
元组方法:
count():指定值在元组出现的次数
index():查找指定值,返回第一次出现的位置,可有三个参数,value,start,end
- 9.数据类型:字典 dict()
键值对
可变
无序
键值对视图items(),
键视图keys(),
值视图values()
- 10.数据类型:文件
open(),w,a时指针指向文件末尾,r时指针指向文件开头
close(),将缓冲区内容存入文件,关闭文件
flush(),将缓冲区内容存入文件,
常见读写函数
read(),read(n),readline(),readlines(),seek(),write(xstring),writelines(xlist),tell()等
文件存储python对象时比较繁琐,可使用pickle模块进行操作
pickle.dump(x,myfile):将对象存入文件,x=pickle.load(myfile),将文件中对象存入变量中
第三章 程序流程控制
1.if分支结构
if基本结构
双分支if语句
多分支if语句
2.for循环
for循环基本格式
多个变量迭代
break和continue
嵌套使用for循环
3.while循环
while循环基本结构
嵌套使用while循环
4.迭代和列表解析
迭代
列表解析
带条件的列表解析
多重解析嵌套
列表解析用于元组
zip、map、filter函数
第四章 函数与模块
1.函数定义函数 def
def add(a,b):return a+b
函数调用
函数参数
参数的多态性
参数赋值传递
参数传递与共享引用
小心使用可变参数 比如传列表 字典时,会在函数内改变对象 这时可以使用拷贝对象 a=a[:]
有默认值的参数
传递任意数量的参数
在形参前加一个* 例如add(a,*b) add(1,2,3,4),此时形参b相当于一个不确定长度的元组
如果带星号之后还有参数,必须使用赋值方法传递参数 add(a,*b,c=2) ,带星号可以省略,相当于传一个空的元组add(1,c=2)
函数嵌套
lambda函数:表达式函数 add=lambda a,b:a+b add(3,4) >>>7
递归函数
函数列表:可以将函数作为列表对象,然后通过列表索引来调用函数。(当然作为元组、字典对象也是可以的)
2.变量作用域
内置作用域
文件作用域
函数嵌套作用域
本地作用域
调用函数时函数内部的本地变量才会被创建
作用域隔离原则
1 >>>a=10 2 >>>def show(): 3 ... a=100 4 ... print('in show():a=',a) 5 ... 6 >>>show() 7 in show():a=100 8 >>>a 9 10
global语句:全局变量可在函数内部使用
1 >>>a=10 2 >>>def show(): 3 ... global a 4 ... print('a=',a) 5 ... a=100 6 ... print('a=',a) 7 ... 8 >>>show() 9 a=10 10 a=100 11 >>>a 12 100
不提倡在函数中修改全局变量或函数参数中的可修改对象
nonlocal语句:它申明变量为外部的本地变量,例子不再赘述
3.模块
包含变量、函数或类的定义的程序(也称脚本)文件。
import 模块名称 import 模块名称 as 新名称 from 模块名称 import 导入对象名称 from 模块名称 import 导入对象名称 as 新名称 from 模块名称 import*
重新导入模块不会不会改变模块中变量在之前已经赋的值
建议使用import导入模块,原因很多,不在赘述
重新导入模块时,本意通常为重新执行模块代码,恢复相关变量到模块开始时的状态,显然import和from无法实现,这时可以用imp模块的reload函数进行重新导入
导入模块步骤
- 摸索模块文件
- 必要时编译模块
- 执行模块
嵌套导入模块时,使用模块变量名需要依次使用模块变量名作为限定符
模块自身还有一些属性,比如:__doc__,__file__,__name__,__loader__等。
4.模块包
导入包
相对导入 在from后加 . 和加 .. 两种
def func(): x=5 def func2(): print(x) func2() x=3 func() print(x) answer: 5 3
笔记第二篇见链接:http://www.cnblogs.com/tenjl-exv/p/8414646.html(函数篇)
笔记第三篇见链接 :http://www.cnblogs.com/tenjl-exv/p/8422165.html(异常、数据库、GUI篇)