一、基础知识
python保留字:35个
变量命名:大小写字母+数字(不可开头)+下划线(可开头)
int的进制:二进制0b,八进制0o,十六进制0x,如0x24b转十进制为2×16^2+4×16+11=587
科学计数法浮点数1.01e4 = 1.01×10^4,注意浮点数只有十进制而没有二/八/十六进制
int(5.6)=5,直接砍小数而不是四舍五入
复数a=12+5j,a.real(实部)为12.0,a.imag(虚部)为5.0,注意均返回浮点数
数值运算符:除10/3=3.3333,整除10//3=3,模(取余)10%3=1,2**3是2的3次幂
字符串运算符:x+y是拼接,x*y是复制y次x,x in y是判断x是否为y的子串
增强赋值操作符:x+=1,同x=x+1
将变量a和b中的值互换:a,b=b,a
将a和b都赋值为1:a=b=1
关系运算符:x>y,x<y,x>=y,x<=y,x==y,x!=y,均返回bool(True/False)
逻辑运算符:(已按优先级排列)not x,x and y,x or y,输入输出均为bool
分支结构:if...elif...else...
循环结构:遍历循环for、无限循环while
循环控制保留字:continue(后面内容不执行,跳到下次循环),break(直接终止循环)
异常处理:try...except...
组合数据类型:集合类型(集合)、序列类型(列表,元组)、映射类型(字典)。其中集合是无序且不重复,列表是有序且可重复;元组一旦创建就不能被修改。
列表的常用操作函数(直接改变ls):
ls.append(x) #在ls末尾增加元素x
ls.insert(i,x) #在ls第i位增加元素x
ls.pop(i) #删除ls第i位元素,i缺省则删除末尾
ls.remove(x) #删除ls第一个元素x
ls.clear() #清空ls所有元素
ls.index(x) #返回第一次出现x的位置
ls.count(x) #返回x的个数
ls.reverse() #元素反转
ls.copy() #复制列表
第三方库安装方式:pip工具安装、自定义安装、文件安装(扩展名 .whl)
二、编程考点
input函数:
age = input("请输入年龄:") #input接收的是字符串
print("年龄为:" + age)
函数可以有多个返回值:
def fun(a,b):
return b+1,a+1
n,m = fun(3,4)
print(n) #值为5
print(m) #值为4
函数的默认参数:
def fun(a,b=5):
print(a+b)
fun(10) #输出15
fun(10,10) #输出20
全局变量和局部变量:
n = 2 #全局变量
def fun(a,b):
#除非这里加一句global n,则继承上面的全局变量,输出30
n = a*b #局部变量,只对函数生效
print(n)
fun(5,6) #输出30
print(n) #输出2
print实现连续不换行输出:
a = 2
print(a,end='')
print(a+1) #输出23
print(a,end='_')
print(a+1,end='_')
print(a+2) #输出2_3_4
b = 3
print(a,b) #输出2 3
字符串切片出现负数:
s = "abcdefg"
print(s[::-1]) #步长-1,输出倒序gfedcba,效果同reversed(s)
print(s[-1]) #输出倒数第一位g
print(s[0:-2]) #第0位到倒数第2位(不含),输出abcde
字符串居中填充:
# str.center(目标长度,填充字符(默认空格))
s = 'hello'
print(s.center(10,'=')) #输出==hello===
字符串插花:
# a.join(b)表示在b的每两个字符之间都插入a
print('_'.join("python")) #输出p_y_t_h_o_n
字符串索引追踪:
# str.index(sub,begin,end)返回sub在str中第一次出现的位置(从0开始),没找到就报错
# str.find(sub,begin,end)返回sub在str中第一次出现的位置(从0开始),没找到就返回-1
s = "motherfathergentleman"
print(s.index("t",3)) #单参数只有begin,输出8
槽与format:
print("{0}说今天天气{1}".format("她","很好")) #输出:她说今天天气很好
s = "二级考试"
y = "+"
print("{0:{1}^10}".format(s,y)) #表示+填充,居中对齐,宽度10,输出 +++二级考试+++
n = 3.1415926
print("{:.2f}".format(n)) #表示保留2位小数,输出3.14
m = '3.1415926'
print("{:.3}".format(m)) #表示保留3位字符串,输出3.1
交集、并集、差集、补集:
a = {1,2,3,4,5}
b = {1,2,3,7,8}
c = set() #创建空集合,或者c=set({}),而不是c={},这是空字典,但列表可以c=[]
print(a & b) #交集为{1,2,3}
print(a | b) #并集为{1,2,3,4,5,7,8}
print(a - b) #在a不在b,差集为{4,5}
print(a ^ b) #除ab公共元素,补集为{4,5,7,8}
列表的Copy:
a = [123,456,789]
b = a #会同时修改a
c = a.copy() #不会修改a
b[0] = 1
c[1] = 2
print(a) #输出[1,456,789]
print(b) #输出[1,456,789]
print(c) #输出[123,2,789]
字典的操作:
d = {"老崔":80,"老徐":90,"老王":85}
d["老连"] = 70 #字典增加元素
print(d.keys()) #输出dict_keys(['老崔','老徐','老王','老连'])
print(d.values()) #输出dict_values([80,90,85,70])
print(d.items()) #输出dict_items([('老崔',80),('老徐',90),('老王',85),('老连',70)])
for i in d:
print(i) #输出老崔、老徐、老王、老连(仅输出键)
#输出值应该用print(d[i])或者for i in d.values()或者for k,v in d.items()
print(d.get("老崔",“查无此人”)) #输出老崔的值80
print(d.get("老左",“查无此人”)) #找不到老左,输出“查无此人”
print(d.pop("老王",“查无此人”)) #删除老王,返回老王的值85
文件的读写:
常考的内置函数:
abs(x) #返回x的绝对值,x为复数时返回x的模
divmod(a,b) #返回a除以b的商和余数,如divmod(10,3)=(3,1)
pow(x,y) #返回x的y次幂
round(n,x) #返回n的四舍五入值,保留小数点后x位(默认0位)
all(x) #x中所有元素均为True则返回True,否则返回False
any(x) #x中任意元素为True则返回True,否则返回False
sorted(x,reverse=False/True) #对x中元素进行排序,默认升序(False)
sum(x) #返回x中所有元素的和
range(a,b,n) #生成从a到b(不含)的步长为n的数字列表,常见for i in range(10)为[0,...,9]
eval和exec:
# eval(str)表示去掉str的引号,执行这条表达式,并返回值
a = eval('[1,2,3]') # a为[1,2,3]
b = list('[1,2,3]') # 会把str当作列表中的一个元素,b为['[1,2,3]']
c = eval('1+1') # c为2
# exec(str)与eval的区别是:exec不会返回值,直接把语句执行,且exec可执行多行语句
code = '''
c = 1+1
for i in range(5):
print(i)
'''
exec(code)
turtle画图:
import turtle as t
# 创建窗体
t.setup(width,height,startx,starty)
# 设置画笔粗细,默认是1
t.pensize(2) 或 t.width(3)
# 设置画笔速度,参数取值范围(0.5,10],当设置值小于0.5或大于10时,速度会修正为0(最快)
t.speed(v)
# 设置画笔颜色,默认是black
t.pencolor('red') 或 t.pencolor((r,g,b)),其中r/g/b = 0~1
t.color('red','blue') #画笔颜色red,填充颜色blue
# 图形填充,无需图形闭合
t.begin_fill()
...(画图程序)
t.end_fill()
# 隐藏和显示画笔
t.hideturtle()
t.showturtle()
# 在画笔位置写文字
t.write(str,font=None)
# 往前和往后x个pix
t.forward(x) 或 t.fd(x)
t.backward(x) 或 t.bk(x)
# 往左和往右转x度
t.left(x)
t.right(x)
t.setheading(angel) #设置朝向angel角度(绝对角度,如0为右、90为上、180为左、270为下)
# 例子:画边长100的正方形
for i in range(4):
t.fd(100)
t.left(90)
# 抬起和落下画笔(例子:画间距为20的平行线)
t.fd(200)
t.penup() 或 t.pu() 或 t.up() #抬起后不留移动痕迹
t.left(90)
t.fd(20)
t.left(90)
t.pendown() 或 t.pd() 或 t.down() #落下后回归正常
t.fd(200)
t.hideturtle()
t.done() #画完保持窗口
# 画笔瞬移(会留下移动痕迹)
t.goto(x,y)
t.setx(x) #横坐标变为x,纵坐标不变
t.sety(y) #纵坐标变为y,横坐标不变
t.home() #回到原点朝东
# 画圆/弧形/圆内切正多边形
t.circle(redis,angel,steps)
t.circle(-50) #半径为50(正为当前画笔逆时针往上画;负为顺时针往下画),angel默认360
t.circle(50,steps=3) #半径50圆的内切正三角形
# 画圆点
t.dot(size,color) #以当前笔尖为圆心,点一个直径size,颜色color的圆点
随机数random库: