Web 后端python
Web 后端python
python
Python是一种功能强大且易于上手的高级编程语言
特点:
- . 易于学习:Python 有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单
- 易于阅读:Python 代码定义的更清晰
- 易于维护:Python的成功在于它的源代码是相当容易维护的
应用领域:web开发、数据科学、人工智能和机器学习、 自动化运维
和测试、游戏开发、系统运维
1. 基本语法
Python 最大的特点是无需声明变量类型,直接赋值即可(设置变量无需前缀)
单行注释:以“#”开始,到该行末尾结束

Python f-string:是在字符串前加f或F修饰符,Python会自动将其值转换为字符串插入
- 允许在字符串中直接嵌入变量、表达式或函数调用的一种字符串格式化方法
- 语法:字符串前添加f,使用大括号{}包裹内容
- 另一种方式:+号拼接
注意:必须使用 str()将数字转换为字符串后,才能进行字符串连接
实际演示:
str_num = "123" int_num = int(str_num) # 字符串转换为整数 #str 字符串类型 int 整数类型 print(f"字符串 '{str_num}' 转换为整数: {int_num}") new_message = "我的分数是: " + str(int_num) #str(int_num) 数字类型转换为字符串类型 print(new_message) 输出: 字符串 '123' 转换为整数: 123 我的分数是: 123 不同类型不能直接用+拼接在一串代码中,需转换为同一类型

2. 数据类型-list\tuple\dict
ist列表
ist列表用[ ]标识,可以修改
# 定义一个待办事项列表(列表中的项从左到右依次是0 1 2) todo_list = ["买牛奶", "取快递", "写代码"] # 添加新项 todo_list.append("运动30分钟") # 修改第二项 todo_list[1] = "取快递(顺丰)" print(todo_list) # 输出:['买牛奶', '取快递(顺丰)', '写代码'] # 删除第三项 del todo_list[2] print(todo_list) # 输出:['买牛奶', '取快递(顺丰)', '运动30分钟'] 输出: ['买牛奶', '取快递(顺丰)', '写代码', '运动30分钟'] ['买牛奶', '取快递(顺丰)', '运动30分钟'] tuple元组
tuple元组用( )标识,是不可变序列,只能读取,适合存储固定数据
# 定义个人核心信息元组 person_info = ("zs", "110101199001011234", "1990-01-01") print(person_info[0]) # 查看姓名 # 尝试修改元组元素(会报错,体现不可变性) person_info[1] = "110101199001015678" # TypeError: 'tuple' object does not support item assignment(这是报错显示) 输出:zs dict字典
dict字典用{ }标识,以一键一值两两相对的形式存在
# 定义通讯录字典 contact = {"zs": "13800138000"} # 新增联系人 contact["lisi"] = "13700137000" # 修改手机号 contact["wu"] = "13900139999" # 通过键取值 print(contact["zs"]) # 输出:13800138000 #查看字典 print(contact) 输出:{'zs': '13800138000', 'lisi': '13700137000', 'wu': '13900139999'} 3. 流程控制-条件语句
核心规则:缩进!
Python 不使用大括号 {},而是依赖缩进(通常是 4 个空格)来定义
代码块
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进
空白数量,这个必须严格执行

缩进数报错:

if语句
if语句:根据不同情况执行不同代码

while循环
while循环格式
# while 循环 count = 3 while count > 0: print(f"While倒计时: {count}") count -= 1 while 条件 :重复执⾏的代码

注意:条件一直满足(死循环),会一直重复循环,电脑容易卡死
for循环
for 临时变量 in 容器 :重复执⾏的代码
# for 循环遍历范围 (左闭右开) for i in range(1, 6, 2): #数字2,第三个参数表示步长 print(f"For循环数字: {i}") 输出: For循环数字: 1 For循环数字: 3 For循环数字: 5 
循环遍历:
# for 循环遍历范围 (左闭右开) for i in range(1, 6, 2): # 遍历 1, 2, 3, 4, 5 print(f"For循环数字: {i}") #遍历列表 fruits=["apple","banana","orange","peach","watermelon"] for fruit in fruits: # 遍历列表中的每个元素 print(fruit) # 遍历元组 tuple = ("zs", "110101199001011234", "1990-01-01") for tup in tuple: # 遍历元组中的每个元素 print(tup) #遍历字典 ;字典以一键一值两两相对的形式存在 iddict = {'name':'zs','age':'18'} #遍历字典的键 for key in iddict: #iddict 取的是键 print(key) #遍历字典的值 for value in iddict.values():#需要使用.values进行取值 print(value) 输出: For循环数字: 1 For循环数字: 3 For循环数字: 5 apple banana orange peach watermelon zs 110101199001011234 1990-01-01 name age zs 18 4. 面向对象实战
Python函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段

自定义函数格式:
def 函数名(参数列表): # 函数体,包含一系列缩进的语句 return 返回值 # 可选,用于返回结果给调用者 参数
# 打印指定信息 # 参数:执行函数时候,传递的额外信息,多个参数以逗号隔开 def print_hello(info,message): print(info) print(message) # 调用函数 print_hello("helloworld","你好,世界!") 输出: 你好,世界! helloworld 类/实例化/魔术方法
class Dog: species = "犬科" # 类属性 #self 表示当前对象;通俗理解,谁来调用,self就表示谁 def __init__(self, name, age): # 构造函数:自动调用 self.name = name # 实例属性 self.age = age def bark(self): # 实例方法:手动调用 print(f"{self.name}在汪汪叫")#打印当前对象的属性 # return 语句用于从函数中返回一个值。 # 当函数执行到 return 语句时,它会立即停止执行,并将 return 后面的表达式的值作为结果返回。 def __str__(self): # 实例方法 return f"{self.name}今年{self.age}岁了" # 创建对象 dog1 = Dog("小黑", 3) dog1.bark() # 输出:小黑在汪汪叫;因为dog1调用的该方法,所以self就表示dog1 dog2 = Dog("小白", 3) dog2.bark() # 输出:小白在汪汪叫;因为dog2调用的该方法,所以self就表示dog2 # 当你对一个对象执行print() 操作时,Python 会自动查找并调用该对象的 `__str__` 方法 print(dog1) # 输出:小黑今年3岁了 print(dog2) # 输出:小白今年3岁了 # 1. 自动执行__str__魔术方法 2. return执行完方法后会返回一个值 3. 打印返回值 # 单独解释参数和返回值 # 目的:求两个数的和 # 传递额外信息 def sum(a,b): num=a+b #加法运算 return num #返回运算后的结果 n=sum(2,3) #用一个变量,接收函数执行后的返回值 print(n) #输出变量的值 Python中的魔术方法,也被称为双下划线方法或特殊方法,这些方法的名称前后都带有两个下划线,例如__init__、__str__等
- 主要作用是为Python中的对象提供内置的、特殊的行为
- 构造函数: 固定命名为 init(可以将类中需要外部赋值的放入到其中)
- self: 必须是所有实例方法和构造函数的第一个参数,代表当前对象
PHP与Python核心区别

Python模块
Python模块:是包含Python代码的文件,其扩展名通常为.py
- 模块是Python程序的基本组成部分,它们提供了封装代码的方式,使得代码更加组织化、易于重用和维护
- 模块可以包含函数、类和变量,也可以包含可执行的代码
- 常见模块类型:系统内置模块、自定义模块、
第三方模块
1.系统内置模块
系统内置模块:是Python自带的标准库,它们提供了丰富的功能和工具,用于执行各种常见的任务。系统内置模块包括:os模块、sys模块、random模块、time模块
如:
#导入math模块 import math #求平方根 num=math.sqrt(4) num2=math.pow(2,3) print(num)#输出:2.0 print(num2)#输出:8.0 
指定使用模块中的某一个函数(只能使用你指定导入的函数)
2.自定义模块
自定义模块:开发者自己编写的模块,用于封装特定的功能或逻辑。自定义模块可以是任何有效的Python文件(以“.py”为后缀名),里面可以包含全局变量、函数、类等
第一步:自定义模块(注意:不与系统内置模块重名)

第二步:导入并使用自定义模块

3.第三方模块
第三方模块:是由其他开发者或组织编写的,并发布到Python包索引等公共仓库中的模块
- pip 是 Python 中的标准库管理器。它允许你安装和管理不属于 Python标准库的其它软件包
在线安装:pip命令- 注意:可以不更新pip

Python模块下载:
pip install 库名
pip install 库名 -i 镜像源
-i 更换安装源 (默认是使用国外的源,下载速度慢)

requests库:
requests 是Python常⽤的⽹络请求库,核⼼功能是模拟浏览器向⽹站发送请求、获取数据
第一步:pip install requests
下载的模块保存路径存在:Python\Python310\Lib\site-packages

第二步:导入第三方模块并使用

python模块
总结:

oneforall
OneForAll 是一款基于 Python 开发的、功能全面的子域名信息收集与爆破工具
下载网址:oneforall
- 可高效枚举目标域名的子域名、获取相关解析记录与资产信息
常用于网络安全渗透测试
安装:pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/


使用:python oneforall.py --target 域名 run
