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