导图社区 PY第一阶段学习总结
基于《python从入门到精通》——‘明日科技’一书的自学历程。介绍了关于Python入门、Python精通方面的内容。《Python从入门到精通》从新手视角去往,根据浅显易懂的語言、多种多样的案例,详解了应用Python开展软件开发应当把握的各层面技术性。
编辑于2021-06-10 18:02:11PY第一阶段总结
第一章:初识Python
Python简介
搭建开发环境
开发工具
第二张:语言基础
语法特点
注释规则
代码缩进
编码规范
保留字
标识符的命名规则
定义变量
赋值
基本数据类型
数字
整数
浮点数
复数
字符串
布尔类型
返回True
返回False
数据转换
int(x) 将 x 转换成整数类型
Iloat(x) 将 x 转换成浮点数类型
complex(real,[,imag]) 创建一个复数
str(x) 将 x 转换为字符串
repr(x) 将 x 转换为表达式字符串
eval(str) 计算在字符串中的有效 Python 表达式,并返回一个对象
chr(x) 将整数 x 转换为一个字符
ord(x) 将一个字符 x 转换为它对应的整数值
hex(x) 将一个整数 x 转换为一个十六进制字符串
oct(x) 将一个整数 x 转换为一个八进制的字符串
input输入、print输出
第三章:运算符和表达式
算术运算符
+ 加
- 减
* 乘
/ 除(除数不能为0,商一定是浮点数)
// 整除(向下取整,若有浮点数,结果也用浮点数表示)
% 取余(除法的余数)
** 幂
() 小括号
赋值运算符
运算符 说 明 用法举例 等价形式
= 最基本的赋值运算 x = y x = y
+= 加赋值 x += y x = x + y
-= 减赋值 x -= y x = x - y
*= 乘赋值 x *= y x = x * y
/= 除赋值 x /= y x = x / y
%= 取余数赋值 x %= y x = x % y
**= 幂赋值 x **= y x = x ** y
//= 取整数赋值 x //= y x = x // y
&= 位与赋值 x &= y x = x & y
|= 位或赋值 x |= y x = x | y
^= 位异或赋值 x ^= y x = x ^ y
<<= 左移赋值 x <<= y x = x << y,这里的 y 指的是左移的位数
>>= 右移赋值 x >>= y x = x >> y,这里的 y 指的是右移的位数
比较运算符
比较运算符 描述 例子
== 如果两个操作数相等,则返回True,否则返回False。 a == b
!= 如果两个操作数不相等,则返回True,否则返回False。 a!= b
> 如果左操作数大于右操作数,则返回True,否则返回False。 a> b
< 如果左操作数小于右操作数,则返回True,否则返回False。 a <b
> = 如果左操作数大于或等于右操作数,则返回True,否则返回False。 a> b
<= 如果左操作数小于或等于右操作数,则返回True,否则返回False。 a <b
逻辑运算符
and 逻辑与运算符 标志= True和True = True
or 逻辑或运算符 标志= False或True = True
not 逻辑非运算符 标志= (False)= True 或者 (True) = False
关于布尔值的判断
位运算符
& 位与运算符 10&7 = 2
| 位或运算符 10 | 7 = 15
^ 位异或运算符 10 ^ 7 = 13
〜 位取反运算符 〜10 = -11
<< 位左移运算符 10 << 2 = 40
>> 位右移运算符 10 >> 1 = 5
位运算是将数字转换为二进制数来进行计算的
运算优先级
优先级 运算符 描述
1 lambda lambda表达式
2 or 布尔"或"
3 and 布尔"与"
4 not 布尔"非"
5 in, not in 成员测试
6 is, is not 同一性测试
7 <, <=, >, >=, !=, == 比较
8 | 按位或
9 ^ 按位异或
10 & 按位与
11 <<, >> 移位
12 +, - 加减法
13 *, /, % 乘、除和取余
14 +x, -x 正负号
15 ~x 按位翻转
16 ** 指数
最低优先级为1,最高优先级为16
条件表达式
使用运算符将不同类型的数据照一定规则连接起来的式子
使用条件表达式时,先计算中间的条件,如果结果为True则返回if语句的左边值,如果结果为False,则返回if语句的右边值
第四章:流程控制语句
程序的基本结构
顺序结构
顺序执行所有语句
选择结构
根据条件语句的结果选择执行不同的语句
循环结构
在一定条件下反复执行某段程序语句
被执行的语句是循环体,决定循环是否终止的判断条件为循环条件
选择语句
别称条件语句,按照条件选择执行不同的代码片段
语句有三种,语法: if …… if……else…… if……elif……else…… 【在Python中没有switch语句,用if……elif……else或者if嵌套】
循环语句
一直重复,直到条件不满足时才结束循环,这叫条件循环,只要条件为True,就一直循环,如while循环
print("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。 问物几何?\n") none = True number = 0 while none: number += 1 if number % 3 == 2 and number % 5 == 3 and number % 7 == 2: print("答曰,此数为", number) none = False
while 条件表达式: 循环体
重复一定次数的循环,称为计数循环,如for循环
print("计算1+2+3+4+5+……+99+100的结果为:") result = 0 for i in range(101): # range(start,end,step),start开始数,可以省略;end,结束数,不包含结束数;step步长,间隔 result += i print(result)
for 迭代变量 in 对象 循环体
循环嵌套
结束或者跳出循环
break语句
break完全中断循环
continue语句
continue直接跳到循环的下一个迭代
pass语句
在Python中还有一个pass语句,它不表示要做什么,只是作为一个占位作用
第五章:列表与元组
序列
什么是序列
Python内置了5个常用的序列结构: 列表、元组、集合、字典、字符串
一种常用的数据存储方式,用于存放多个值的连续内存空间,并且按一定顺序排列,每个值(元素)都分配一个数字,称为索引
序列的基本操作
切片 saname[start:end:step]
相同类型的序列相加 序列+序列
乘法 序列*n
检查存在 元素value in 指定的序列sequence
计算序列长度、最大值和最小值 使用内置函数:len() max() min()
列表list
特定顺序的元素 使用中括号[] 元素类型可以各不相同
列表基本操作的特异点
修改元素 通过索引值和赋值的方法,对该位置的元素进行替换内容
二维列表
使用for循环创建 result=[] 创建空列表 num=1 for i in range(3): 遍历创建空列表里的新列表 inner_result=[] 遍历里定义新的空列表 for i in range(3): 把元素放进新空列表 inner_result.append(num) num+=1 result.append(inner_result) 把新空列表放进空列表
使用列表推导式,4行5列 arr = [[j for j in range(5)] for i in range(4)]
元组tuple
元组基本操作的特异点
修改元素 元组是不可变序列,所以只能通过对整个元组重新赋值来进行元素的修改
元组推导式的特异点
使用元组推导式生成的结果并不是一个元组,而是一个生成器对象; 要使用生成器对象的内容,需要先将它转换为列表或者元组
使用for循环遍历或者__next__()方法进行遍历,就可以得出生成器对象的真实数据
列表和元组的基本操作
元组类型的内容,将[]换成()
创建 列表名=[元素1,元素2,……元素n]
删除 del 列表名
访问 print(列表名)
遍历列表 for循环 ------使用enumerate()函数可以同时获取到索引值和元素内容
添加元素 列表名.append(要添加到列表末尾的对象)
insert()函数添加元素,需要指定位置
extend()函数添加元素 原列表名.extand(要添加的列表)
修改元素 通过索引值和赋值的方法,对该位置的元素进行替换内容
删除元素 一、通过del和索引值删除;二、使用remove()方法,删除具体内容
对列表进行统计计算:
使用count()方法获取指定元素出现的次数 列表名.count(对象)
使用index()方法获取指定元素在列表中首次出现的位置、索引值
列表排序 列名.sort() 或者 使用内置sorted()函数
第六章:字典与集合
字典和集合都是将元素放在一对{}大括号中
什么是字典?dictionary
序列的可变类型序列,保存的内容以“键-值对”的形式存放; 键是唯一的,值可以多个,取最后保存的当前值
字典的基本操作
创建 字典名 = {'键1':'值1','键2':'值2',……'键n':'值n'}
通过映射来创建字典: 字典名 = dict(zip(list1,list2)) zip函数用于将多个列表或者元组对应位置的元素组为元组,并返回包含这些内容的zip对象
通过给定的“键-值对”创建字典: 字典名 = dict(键元素1=值元素1,键元素2=值元素2……键元素n=值元素n)
使用dict对象的fromkeys()方法,可以创建 值 为空的字典
del 删除字典
clear 清空字典的元素
使用条件语句判断或者使用字典对象的get()方法,可以判断目前键是否存在当前字典中
遍历字典:使用字典对象的items()或iteritems()方法可以获取“键-值对”的列表,iteritems()返回的是一个迭代器,它更高效。 想要获得具体的“键-值对”,就用for循环遍历字典对象的items()方法返回的列表
字典的添加、删除元素,通过“键”来搜索进行: 添加 字典名[键] = 新值
集合set
可变集合set
不可变集合frozenset
集合的操作
创建集合: 集合内的元素都是不重复的 赋值 集合名 = {元素1,元素2,元素3,……,元素n} set()函数 集合名 = set(要转换为集合的可迭代对象)
添加元素 集合名.add(元素) 这里不能添加列表、元组等可迭代对象
del 删除整个集合 pop()方法或者remove()方法删除指定元素 clear清空集合的元素
集合的运算
交集
&
并集
|
差集
-
对称差集
^
和数学上的集合运算,原理一致
推导式原理
根据列表、元组、字典的形态要求,使用[]、()、{}
生成指定范围的数值列表: 列表名 = [表达式 for 循环变量 in 对象集合如range函数]
根据列表生成指定需求的列表: 新列表 = [表达式 for 循环变量 in 原列表]
从列表中选择符合条件的元素组成新列表: 新列表 = [表达式 for 变量,值为后面列表的每个值 in 原列表 if 判断语句]
第七章:字符串
字符串,即开发中常用的文本内容
字符串常用的两种类型
str表示Unicode字符
使用encode()方法
bytes表示二进制数据
使用decode()方法
字符串的基本操作
拼接
+
计算长度
len()函数
截取
string[start:end:step]
分割、合并
字符串对象的split()方法可以把一个字符串按照指定的分隔符分割为字符串列表 str.split(sep指定分隔符,maxsplit可选参数指最大分割次数)
合并使用join()方法 新字符串 = string.join(可迭代对象) string 是字符串类型,用于指定合并时的分隔符
检索字符串
count()方法 原字符串.count(以字符串类型出现的要检索的内容)
find()方法 如果检索的字符串不存在则返回 -1 否则返回首次出现目标字符串的索引
单纯只是想判断是否字符串存在,可以使用 in ,返回布尔值
index()方法 但这个方法,如果不存在则抛出异常
startswith()方法,用于判断字符串是否以指定内容开头,返回布尔值
endswith()方法,用于判断结尾
字符串大小写转换
lower() 变成小写
upper() 变成大写
去除空格和特殊字符
strip()函数
格式化字符串
即模板化要输入的内容,非运维中的格式化概念
'%[-][+][0][m][.n]格式化字符'%exp - 用于指定左对齐,正数前方无符号,负数前面加负号 + 用于指定右对齐,正数前方加正号,负数前方无符号 0 表示右对齐,正数前方无符号,负数前面加负号,用0填充空白处(一般和m参数一起使用) m 表示占有宽度 .n 表示小数点后保留的位数 exp 要转换的项,如果要指定的项有多个,需要通过元组的形式进行指定,但不能使用列表 格式化字符 用于指定类型,如下: %c字符及其ASCII码 %s字符串 %d有符号整数(十进制) %u无符号整数(十进制) %o无符号整数(八进制) %x无符号整数(十六进制) %X无符号整数(十六进制大写字符) %e浮点数字(科学计数法) %E浮点数字(科学计数法,用E代替e) %f浮点数字(用小数点符号) %g浮点数字(根据值的大小采用%e或%f) %G浮点数字(类似于%g) %p指针(用十六进制打印值的内存地址) %n存储输出字符的数量放进参数列表的下一个变量中
使用format()方法 模板字符串.format(逗号分隔的参数) str.format(args) str用于指定字符串的显示格式(模板) args用于指定要转换的项,可多个,用逗号分隔
创建模版,用{}和:指定占位符,语法: {[index][:[[fill]align][sign][#][width][.precision][type]]} index 用于指定要设置格式的对象在【参数列表】中的位置,索引值从0开始 fill 可选参数,用于指定空白处的填充字符 align 可选参数,用于指定对齐方式,需要配合width一起使用:值为<表示内容左对齐、值为>表示内容右对齐、值为=表示内容右对齐,将符号放在填充内容的最左边,且只对数字类型有效、 sign 可选参数,用于指定有无符号数:值为+表示正数加正号,负数加负号、值为-表示正数不变,负数加负号、值为空格表示正数前加空格,负数加负号 # 可选参数,对于二进制/八进制/十六进制,如果加上#,则显示前缀0b/0o/0x width 可选参数,用于指定所占宽度 .precision 可选参数,用于指定保留的小数位数 type 可选参数,用于指定类型