分享

Python期末复习笔记

 天穹的雄鹰 2021-03-12

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’, ’

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多