基础语法
每行代码无需用;隔开,通过缩进表示代码结构,按行编译
输出
print()
可以通过+将不同的字符串连接起来 +只能连接字符串,如果需要将字符串和数字同时用+连接输出,需要进行格式转换
' ' “ ”互相配对,通过\字符转译
“““ ”””打破按行编译,可将格式打印,可直接打印跨行多的内容
定义变量
a="hello"
直接定义变量名并赋值
运算法则
乘方 **
导入math函数库,使用数学函数
import math
math.函数名()
添加注释
# 注释单行
“““ ”””注释多行
数据类型
字符串,整型,浮点型,布尔型,空值型(只有空值None)
# 查询数据类型
type()
输入
input()
输入均为字符串类型,进行其他操作时需要强制类型转换
可以使用“”框住提示内容
条件判断
if [条件]:[执行语句][执行语句]
else:[执行语句][执行语句]
嵌套通过缩进判断进行那个条件语句
if [条件a]:[语句a]if [条件b]:[语句b]else:[语句c]
else:[语句d]
多个判断语句使用elif
if[条件a]:[语句a]
elif[条件b]:[语句b]
elif[条件c]:[语句c]
else:[语句d]
逻辑运算符
与and,或or,非not
优先级顺序not>and>or,可以通过()改变优先级
列表
[]表示
添加 append
删除 remove
与数组使用方式一致
字典
键:值 {}表示,一键对一值,键值不可变,键值不可重复,区别相同部分的不同键可使用元组
添加 字典名['键名']='键值'
相当于c++中的map容器
元组
()表示,不可变,
循环
for 变量名 in 可迭代对象:执行语句
范围函数 步长默认为1
range(起始值,结束值,步长)
while 条件a:行动b
format方法
替换字符串中的部分值使用fomat方法
变量名="xxxxxxx{0}xxxxxxxx{1}".format(a,b)
变量名="xxxxxxx{aa}xxxxxxxx{bb}".format(aa=a,bb=b)
f"xxxxx{a}xxxx{b}xxxx"
定义函数
def 函数名(参数名):执行语句return 返回值
面向对象
定义类
class 类名:定义类def __init__(self,属性1,属性2): #两个_定义属性self.a=属性1self.b=属性2def 方法名(selt):方法内容
文件操作
打开
open("路径","模式",encoding="编码方式")
只读 r 读写 w,不写模式默认只读 ,写入a,可以不将文件内容清空使用,使用r+既可读又可写
使用w时,如果文件已存在会将文件内容清空,谨慎使用
编码方式一般默认为utf-8
读取
文件变量.read(参数) #读取全部,输入参数表示读取前多少字符
文件变量.readline() #读取一行
文件变量.readlines() #读取全部
关闭
文件变量.close() #关闭文件释放内存,每次进行读取操作后最好都关闭
可以使用下面的语句,省去关闭操作
with open("","","") as f:操作
写入
文件变量.write("写入内容")
捕捉异常
try:语句
except 异常:语句
else:语句
finally:语句
测试
断言,若表达式值为真,则正常运行,否则终止程序
assert 表达式
unittest 测试库,需要通过import导入,使用时需把实现代码与测试代码分开,所以测试时需要将实现代码导入
from 文件名 import 类名
测试代码,测试类定义方法必须以test_开头
import unittest
from 文件名 import 类名
class 测试类(unittest.TestCase):def test_xxxx(self):测试内容
在终端中使用下列命令,可直接运行所有测试中所有以test_开头的方法
python -m unittest
为避免测试def方法中的内容重复,可以在test_方法之前调用setUp方法,这样,每次执行test_之前都会先执行一遍setUp方法
requests发送请求
安装扩展包
pip install requests
导入模块
import requests
访问网站 get
相应状态码 变量名.status_code
是否请求正确 变量名.ok
变量内容 变量名.text
有些服务器会判断请求是否为程序请求,从而禁止程序请求,所以需要通过headers伪装成网页请求
headers={"User-Agent=找一个网页,右键查看他的这个值"}
再将参数传入get方法