当前位置: 首页 > news >正文

Python基础与安全

1. Python 基础认知

1.1 Python 简介

  • 解释型、面向对象、动态数据类型的高级编程语言
  • 可读性强、简洁易学习,支持高效数据结构与面向对象编程
  • 官网:https://www.python.org

1.2 版本选择

  • Python 2:2020 年 1 月 1 日停止官方维护,禁止使用
  • Python 3:推荐使用(3.6 及以上版本),持续更新优化

2. Python 基本语法

2.1 注释

  • 单行注释:# 注释内容
  • 多行注释:''' 注释内容 '''""" 注释内容 """(引号必须成对)

2.2 变量

  • 变量是存储数据的容器,值可修改
  • 语法:变量名 = 数据
    a=10# a 为变量名,10 为变量值

2.3 输入/输出函数

  • 输出:print(内容)打印指定数据
  • 输入:input(提示文字)获取用户输入的字符串
    name=input("请输入姓名:")print("你好:",name)

2.4 缩进规则

  • Python 用缩进替代大括号{}划分代码块
  • 同一代码块缩进量必须一致,否则报IndentationError错误

3. 数据类型

Python 有 6 种标准数据类型:

3.1 数字(Numbers)

  • 不可变类型,用于存储数值
  • 示例:var1 = 1var2 = 3.14

3.2 字符串(String)

  • 用单/双引号包裹,支持索引与切片
    s="Hello World"print(s[0])# 取第一个字符print(s[1:5])# 切片取第2到第5个字符

3.3 列表(List)

  • []标识,元素可修改、有序、可重复
    lst=["Python",123,3.14]print(lst[0])# 取第一个元素

3.4 元组(Tuple)

  • ()标识,不可修改(只读列表)
    tpl=("Java",456,2.23)

3.5 集合(Set)

  • 无序、不重复,用于去重与集合运算

3.6 字典(Dictionary)

  • {}标识,键值对存储,查找速度快
    dic={"name":"张三","age":20}print(dic["name"])

3.7、补充:「不可变」和「可变」

类型特点例子
不可变(immutable)对象本身不能改,修改会新建对象数字int/float、字符串str、元组tuple
可变(mutable)对象本身可以改,修改不新建对象列表list、字典dict、集合set

「不可变类」例:

  1. 数字数据类型用于存储数值
    Python 里的「数字类型」(比如整数int、小数float、复数complex),就是专门用来存数字的,比如1103.14这些。

  2. 他们是不可改变的数据类型(immutable)
    「不可变」不是说变量不能改值,而是说数字对象本身不能被修改
    比如你创建了一个值为1的整数对象,这个对象本身永远就是1,没法把它改成2

  3. 改变数字数据类型会分配一个新的对象
    当你给变量重新赋值时(比如var1 = 2),Python 不会去修改原来的1这个对象,而是新建一个值为2的整数对象,再让变量var1指向这个新对象。

var1=1print(id(var1))# 打印对象的内存地址,比如 140703260883296var1=2print(id(var1))# 打印新的内存地址,比如 140703260883328

你会发现两次id不一样,说明:

  • 第一次var1指向的是值为1的对象
  • 第二次赋值后,var1指向了全新的、值为2的对象,原来的1对象没有被修改,只是不再被var1引用了。

「可变」例:

lst=[1,2,3]print(id(lst))# 地址Alst.append(4)print(id(lst))# 还是地址A,同一个对象被修改了

为什么要设计成「不可变」?
这是 Python 的核心设计之一,好处非常多:

  1. 性能优化:Python 会缓存小整数(比如-5256),重复使用同一个对象,节省内存
  2. 线程安全:不可变对象不会被多线程同时修改,避免数据混乱
  3. 可哈希性:不可变对象可以作为字典的键、集合的元素(可变对象比如列表就不行)

4. 流程控制语句

4.1 条件语句

if-else
a=3ifa>1:print("满足条件")else:print("不满足条件")
if-elif-else
num=5ifnum==1:print(1)elifnum==2:print(2)else:print("other")

4.2 循环语句

while 循环
count=0whilecount<5:print(count)count+=1
for 循环
  • 遍历容器/可迭代对象
    # 遍历字符串foriin"Python":print(i)# 遍历列表forfruitin["苹果","香蕉"]:print(fruit)# 范围循环foriinrange(1,10):print(i)

4.3 循环控制

  • continue:跳过本次循环,执行下一次
  • break:立即终止整个循环

5. 函数

5.1 函数定义

  • def关键字定义,代码块需缩进
  • 语法:
    def函数名(参数):"""函数说明文档"""函数体return返回值

5.2 示例

# 求和函数defsum_num(a,b):total=a+breturntotal# 调用函数res=sum_num(10,20)print(res)

5.3 函数特点

  • 可重复使用、封装单一功能
  • return可返回值,无返回值默认返回None

6. 模块与 pip 使用

6.1 模块概念

  • 模块是.py结尾的 Python 文件,封装函数、类、变量
  • 作用:代码复用、模块化管理、避免命名冲突

6.2 模块分类

  1. 内置模块:Python 自带,无需安装
    • os:系统交互、文件操作
    • sys:解释器环境操作
    • random:随机数
    • time:时间处理
  2. 自定义模块:自己编写的.py文件
  3. 第三方模块:他人编写,需用pip安装

6.3 pip 常用命令

# 查看已安装模块pip list# 安装模块pipinstall模块名# 国内镜像源安装(提速)pipinstall模块名-ihttps://pypi.tuna.tsinghua.edu.cn/simple# 卸载模块pip uninstall 模块名# 批量安装依赖(requirements.txt)pipinstall-rrequirements.txt-i镜像源

6.4 模块导入方式

  1. 完整导入:import 模块名
  2. 精准导入:from 模块名 import 功能

7. 类与对象(面向对象)

7.1 核心概念

  • 类(Class):对象的模板,定义属性与方法
  • 对象(Object):类的实例,具体实体

7.2 类的定义

classPeople:# 构造方法:实例化时自动执行def__init__(self,name):self.name=name# 实例属性# 实例方法defsay_hello(self):print("我是:",self.name)# 实例化对象p1=People("张三")p1.say_hello()

7.3 常用魔术方法

  • __init__:初始化对象
  • __del__:对象销毁时触发,释放资源
  • __str__:打印对象时返回自定义字符串
  • __getstate__/__setstate__:序列化/反序列化控制

8. Web 后端实战:网络请求

8.1 requests 库

  • Python 最常用 HTTP 请求库,模拟浏览器访问网站
  • 安装:pip install requests

8.2 基础请求

importrequests# 请求头(必须加,绕过反爬)headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0 Safari/537.36"}# 发送 GET 请求url="https://movie.douban.com/top250"resp=requests.get(url,headers=headers)resp.encoding="utf-8"# 设置编码

8.3 请求头关键参数

  • User-Agent:标识浏览器/设备,必加
  • Cookie:携带登录状态
  • Referer:标识请求来源

9. 数据解析

9.1 HTML 解析(XPath + lxml)

  • 安装:pip install lxml
  • 适用:网页源码数据提取
fromlxmlimportetree# 解析 HTMLtree=etree.HTML(resp.text)# XPath 提取数据# // 全局匹配;@ 属性匹配;/text() 取文本titles=tree.xpath('//div[@class="item"]//span[@class="title"][1]/text()')fortitleintitles:print(title)
XPath 核心语法
语法作用
//标签全局查找标签
[@属性="值"]按属性筛选
[n]取第 n 个结果
/text()提取标签文本

9.2 JSON 解析

  • 适用:接口返回的 JSON 数据
  • 方法:response.json()转为 Python 字典
# 解析 JSON 接口resp=requests.get(url,headers=headers)data=resp.json()# 转字典username=data["username"]

10. dirsearch

10.1 dirsearch 工具

  • 作用:向⽬标⽹站发送请求,根据响应状态码判断隐藏⽬录/⽂件
  • 典型敏感文件:web.zipbackup.rarconfig.php

10.2 Kali 安装与使用

# 安装apt-getinstalldirsearch# 扫描目标dirsearch-u"http://目标地址"

10.3 原理

本质是 Python 循环遍历字典路径,根据 HTTP 状态码判断路径是否存在:

  • 200:存在可访问
  • 301/302:重定向
  • 403:禁止访问
  • 404:不存在

11. 重要声明

本文为学习笔记整理,如有错误或不足,欢迎大家在评论区指正交流,一起进步!

本文所涉及的网络攻击、渗透测试、漏洞验证、流量分析等技术内容,仅限在合法授权的私有靶场、实验环境、教学平台内进行学习与研究。
严禁将任何攻击手段、工具、思路用于未获得明确书面授权的真实网站、服务器、网络设备及个人设备。未经许可对他人系统、网络、数据进行扫描、入侵、破坏、窃取或干扰,均属于违法行为。
一切测试与学习行为必须严格遵守《中华人民共和国网络安全法》《中华人民共和国刑法》《中华人民共和国数据安全法》等相关法律法规,恪守网络安全职业道德与底线。坚守白帽底线,维护网络空间安全,做合法合规的安全从业者与学习者。

http://www.jsqmd.com/news/650565/

相关文章:

  • 盘点2026年口碑好的氦气检漏设备生产商,哪家性价比高 - 工业品网
  • DeepSeek-R1-Distill-Qwen-7B保姆级教程:3步快速部署推理模型
  • 从微信好友到推荐算法:‘结构洞’理论如何悄悄影响你的信息茧房?
  • 性价比高的订制傢私企业盘点,为你揭秘价格与品质的平衡点 - 工业品牌热点
  • 终极指南:高效部署Proxmox VE虚拟桌面基础设施(VDI)客户端
  • SAP付款条件OBB8配置实战:从“货到付款”到“3/10, 2/20, N/30”的保姆级教程
  • 如何用Fillinger脚本让Illustrator自动完成90%的图案填充工作
  • 什么是P2P内网穿透
  • 高效跨平台m3u8视频下载器:一站式解决视频下载难题
  • 告别抓瞎!用Wireshark实战解析1905协议数据帧(从以太帧到CMDU)
  • 智能汽车竞速赛完全模型组:从裁判视角解析高效执裁要点
  • 材料热力学计算技术革新:pycalphad如何重塑合金设计与相图预测
  • 北京理工大学BIThesis LaTeX模板:3步搞定毕业论文格式难题
  • 基于eNSP的企业级网络规划与仿真:从需求分析到全功能测试的毕业设计实践指南
  • 别人家的调度平台!深圳制造名企用 Apache DolphinScheduler 实现 1 天内数十个工厂部署
  • 从nvidia-smi输出解读GPU健康与性能:Persistence-M、ECC与GPU-Util实战解析
  • 最新 AI 论文盘点(2026-04-16):4 篇新作看长视频压缩、预训练空间强化学习、具身操作分层控制与蒸馏中的关键 token
  • 别再纠结5G覆盖了!手把手教你用DSS技术,让4G基站原地升级5G(附RRU软件升级实战)
  • 如何用GetQzonehistory轻松备份你的QQ空间历史说说
  • OmenSuperHub:惠普游戏本性能完全释放指南,告别官方软件束缚
  • 2026做项目常用的正版视频素材网站,都在这篇里了 - Fzzf_23
  • 【生成式AI可观测性白皮书】:从Prompt注入到推理退化,构建具备因果推断能力的智能告警闭环
  • 2026年PVC厂家权威发布榜,PVC管/PVC管件/PVC排水管/PVC给水管/PVC穿线管 - 品牌策略师
  • 跨域问题解决方案 - record
  • 3分钟学会用GetQzonehistory永久保存QQ空间青春记忆
  • AutoDock-Vina完整指南:快速掌握开源分子对接工具
  • 告别复杂流程!AnythingtoRealCharacters2511动漫转真人超简单
  • 如何用嘎嘎降AI处理医学类论文:医学专业术语保护操作指南 - 还在做实验的师兄
  • 【网络安全】从原理到实战:深入剖析ARP攻击与立体化防御
  • 反射内存交换机使用手册