Python期末复习笔记
Python期末复习笔记
簟纹
关注
0.154
·
字数 4487 · 阅读 1780
2021-01-07 21:54
本篇根据老师画的重点基本上将期末考点都囊括了
如果发现有错误或遗漏欢迎各位在学习群里指正
可能看起来稍微有点多,但其实大部分都是代码
所有代码块都可以直接粘到编译器里执行,会报错的代码我都加了注释
(ง ·_·)ง,加油
Python 语言基础
python规范
命名规则
必须以下划线或字母开头
前后单下划线为系统变量
双下划线开头为类的私有变量
关键字不能用作变量名
注释
单行注释以 # 开头
多行注释可用多个 # 或者用 三引号(文档注释)
多行语句
行尾使用反斜线()来续行
同一行写多条语句
语句间用分号(;)分隔
输入输出
输出print()
print默认在末尾换行
a = 1
b = 2
c = 3
# 直接输出多个变量
print(a,b,c) # 输出:1 2 3
# 使用 end参数用指定的字符替换末尾的换行符
print(a,end=’@’) # 输出:1@
# 使用format
print(’a={}’.format(a))# 输出:a=1
print(’a={0},b={1},c{2}’.format(a,b,c))# 输出:a=1,b=2,c3
输入input()
input输入的始终是字符串,需要转换为其他数据类型使用
python 数据类型
六个标准数据类型
Number(数字)
String(字符串)
List(列表)
Tuple(元组)
Sets(集合)
Dictionary(字典)
Number
包括:int(整型)、float(浮点型)、bool(布尔型)、complex(复数)、long(长整型)
清楚哪些值转换为布尔类型后值是False
print(bool([])) # 输出:False
print(bool(’’)) # 输出:False
print(bool({})) # 输出:False
print(bool(())) # 输出:False
# 注意下面两个的区别
print(bool(0)) # 输出:False
print(bool(’0’)) # 输出:True
浮点数的内置函数运算会有误差,也就是小数的精度问题
String
字符串属于序列,除此之外还有:元组、列表(集合和字典不是序列类型)
单引号和双引号可以互换,也可以互嵌
三引号表示多行字符串(也可以作为文档注释)
另外:三引号内可以直接使用回车、制表符,可以不使用转移字符来表示
字符串常用操作
连接和重复
print('hello’*3,’ wor’+’ld’) # 输出:hellohellohello world
字符串的切片(左闭右开)
word = ’hello world’
print(word[0:5]) # 输出:hello
print(word[:5]) # 输出:hello
print(word[1:]) # 输出:ello world
print(word[:]) # 输出:hello world
print(word[0:5:2]) # 输出:hlo
print(word[2:-2]) # 输出:llo wor
print(word[-2:2]) # 输出空串
转义字符
要注意这种复杂的转义字符一起输出
在字符串内的“”、””、””等字符,会转换为空白字符(回车符、水平制表符、换行符……)
printf(’helloworld’) # 输出:hello world
Raw字符串(字符串内不转义)
字符串前缀为’R’或'r’
print(r'helloworld’) # 输出:helloworld
变量及其赋值
简单赋值
a = 1
多目标赋值
a=b=c=1 # 这种情况下a、b、c都是引用同一个变量
这样会报错
a=(b=c=1) a=(b=1)
序列赋值
左边是元组、列表表示的多个变量,右侧是元组、列表或字符串等序列表示的值。
序列元素个数必须和变量个数相等,否则会出错
在变量名前使用“*”创建列表对象引用
a,b = 1,2 # 省略括号的元组赋值
(c,d) = (2,3) # 元组赋值
[e,f] = [4,’5’] # 列表赋值
(g,h) = ['6’,7] # 元组和列表可以交叉赋值
(x,y,z) = 'abc’ # 字符串赋值,x='a’,y='b’,z='c’
(i,j) = (8,9,10) # 这是错误的,变量和值的个数必须相等
在变量名前使用“*”创建列表对象引用
x,*y = 'abcd’
print(x,y) # 输出:a ['b’,’c’,’d’]
运算符和表达式
包括:算术运算符、关系运算符、字符串运算符、逻辑运算符。
算术运算符和表达式
算术运算符包括:加(+)、减(-)、乘(*)、除(/)、取余(%)、整除(//)、幂运算(**)
a+=1和a=a+1等价,a-=1、a//=2等也类似
要注意这种复杂的表达式的运算优先级
int(8 * math.sqrt(36) * 10 ** (-2) *10 + 0.5)/10
运算顺序如下:
int(8 * 6 * 10 ** (-2) * 10 + 0.5)/10
10**(2)=0.01
8 * 6 = 48
int(48 * 0.01 * 10 + 0.5 )/10
int(5.3)/10
5/10
0.5
逻辑运算符
and(逻辑与),or(逻辑或),not(逻辑非)
关系运算符
==(等于)、!=(不等于)、<>(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)
运算符的优先级
最高优先级的三个运算符(优先级由高到低):** 幂运算、~ 安位取反、- 负号
最低优先级的几个运算符(优先级由高到低):| 按位或、< > <= >= == != 关系运算符、not and or逻辑运算符
字符串运算符
下面这些运算对于列表、元组都有效(因为它们同属序列类型)
字符串连接(+)
print(’a’+’b’) # 输出:ab
重复字符串(*)
print(’a’*3) # 输出:aaa
索引字符串( [] )
a=’hello’; print(a[1]); # 输出:e
截取字符串( [:] )
print(a[1:4]) # 输出:ell
成员运算符( in )
print(’e’ in a) # 输出:True
成员运算符( not in )
print(’e’ not in a) # 输出:False
Raw字符串( r/R )
print(R’hello’) # 输出:hellollo
格式字符串(%)
print(’hello %s%s’ %(’wor’,’ld’)) # 输出:hello world
格式化
%c(转换为字符)
print(’%c’ %(’hello’)) # 报错,必须是ASCII码值或者一个字符,否则会出错
%r(使用repr()进行字符串转换)
print(’%r’ %(’hello’)) # 输出:’hello’
%s(使用str()进行字符串转换)
print(’%s’ %(’hello’)) # 输出:hello
.format() 格式化
print(’a={}’.format(’a’)) # 输出:a=a
repr()函数和str()函数的区别就在于接受值和返回值不同
repr()函数和str()函数,分别会调用输入对象的__repr__()、__str__()特殊方法
%d或%i(转换为有符号十进制数)
print('%d’ %(-10)) # 输出:-10
%u(转换为无符号十进制数)
print(’%u’ %(-10)) # 输出:-10
有无符号是指在二进制下,最高位用来表示实际的数或是单纯表示正负
%o(转换为无符号八进制数)
print(’%o’ %(100)) # 输出:144
%x或%X(转换为无符号十六进制数)
print(’%x’ %(100)) # 输出:64
%e或%E(转换成科学计数法)
print(’%e’ %(1000)) # 输出:1.000000e+03
%f或%F
print(’%f’ %(100) # 输出:100.000000)
格式化操作辅助符
print(’开始%10.2f结束’ %(7.2222)) # 输出:开始 7.22
%10.2f 表示:最小总长度为10,不足用前导空格补齐,长度大于等于10则正常显示(这里的长度不包括小数点)
位运算符
异或:二进制数逐位对比相同为0,不同为1
10^2==8 1010 异或 0010 结果为:1000
运算符说明
&按位与
|按位或
^按位异或
~按位去反
<<按位左移
>>按位右移
python 常用函数
数据类型转换函数
重点掌握加粗的函数
函数名说明
int(str)将字符串str转换为<u>整数</u>
long(str)将字符串str转换为<u>长整型整数</u>
float(str)将字符串str转换为<u>浮点数</u>
eval(str)将字符串str转换为<u>有效表达式</u>并返回表达式计算后的对象
str(x)将数值x转换为<u>字符串</u>
repr(obj)将<u>对象</u>obj转换为一个<u>字符串</u>
chr(x)将整数x转换为对应的<u>ASCII字符</u>
ord(x)将字符x转换为对应的<u>ASCII码</u>
hex(x)将一个整数x转换为一个<u>十六进制字符串</u>
oct(x)将一个整数x转换为一个<u>八进制字符串</u>
tuple(squ)将一个序列squ转换为一个<u>元组</u>
list(squ)将一个序列squ转换为<u>列表</u>
set(squ)将一个序列squ转换为可变<u>集合</u>
dict(squ)创建一个<u>字典</u>,squ是一个序列(key,value)元组
len(obj)返回对象的长度(字符个数、列表元素个数、字典key个数)
数学函数
函数名说明
abs(x)返回数值x的绝对值
exp(x)返回e的x次幂
fabs(x)返回数字的绝对值
log10(x)返回以10为底的x的对数
pow(x,y)返回x的y次幂
floor(x)x向下取整(小于等于x)
ceil(x)x向上取整(大于等于x)
fmod(x,y)求x/y的余数
sin(x) cos(x)...返回x的三角函数值
python数据结构
python常用三种数据结构:序列、映射、集合
列表和元组有什么相同点和不同点?(后面会给出解释)
字符串
字符串是不可变的序列,不可以通过 str[n] = chr来改变字符串
字符串的切片(左闭右开)
word = ’hello world’
print(word[0:5]) # 输出:hello
print(word[:5]) # 输出:hello
print(word[1:]) # 输出:ello world
print(word[:]) # 输出:hello world
print(word[0:5:2]) # 输出:hlo
print(word[2:-2]) # 输出:llo wor
print(word[-2:2]) # 输出空串
字符串转列表
可以通过list()函数直接将字符串中的每个字符转换为一个列表元素,也可以通过split()方法根据指定的分割符分割元素(默认以空格分割)。
word = ’hello world’
print(list(word)) # 输出:[’h’, ’e’, ’l’, ’l’, ’o’, ’ ’, ’w’, ’o’, ’