python19-if和match的美
课程:B站大学
记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化
分支语句那些事儿
- if 条件判断
- if...else 判断语句
- if...elif...else 多重条件
- 分支嵌套
- 也能在 else 语句中嵌套
- 还能在 elif 语句中嵌套
- 猜拳游戏
- 成绩判断
- 计算器
- 模拟乘车过程
- 匹配语句
- match 语法的基本结构如下:
- | 组合多个匹配值
- 匹配模式绑定变量
- 实践是检验真理的唯一标准
# 分支语句 ## 什么是分支语句 在生活中,总是要做出许多选择。
比如在学习的时候有文科和理科区分,对应的学生们就有擅长、喜欢文科和擅长、喜欢理科的。
针对于不同的擅长、喜欢的方向在将来也有不同的职业发展,擅长、喜欢文科可能以后的择业就会偏向历史、地理等。
而擅长、欢理科的可能以后的择业方向就有数学、生物、编程(软件)等等方向;
在大方向的选择之后还有更细粒度的选择方向,拿大家学习的软件从业来讲,还有软件测试、软件开发、产品和项目经理等方向可供选择。
程序也是一样。下面给出几个常见的例子:
- 如果购买商品成功,用户余额减少,用户积分增多。
- 如果输入的用户名和密码正确,提示登录成功,进入网站,否则,提示登录失败。
- 如果用户使用微信登录,则使用微信扫一扫;如果使用 QQ 登录,则输入 QQ 号和密码;
如果使用微博登录,则输入微博账号和密码;如果使用手机号登录,则输入手机号和验证码。
以上不同场景下做出的不同行为,就是程序中的选择语句,也称为条件语句,即按照条件选择执行不同 的代码片段。
Python 中选择语句主要有 3 种形式,分别为 if 语句、if…else 语句和 if…elif…else 多分支语句。
if 条件判断
Python 中使用 if 关键字实现选择语句,其最简单的语法形式如下:
if 表达式: 语句块
其中,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例如, 是否是测试工程师)。
如果表达式的值为真,则执行 测试工程师 的打印;如果表达式的值为假,就跳过 语句块,继续执行后面的语句。这种形式的 if 语句相当于汉语里的 如果……就……,其流 程图如下所示。
把以上流程转换成为Python代码
student = "测试工程师"if student == "测试工程师":print("测试工程师")print("学测试\n认准霍格沃兹测试开发")
if…else 判断语句
如果遇到只能二选一的条件,Python 中提供了 if…else 语句解决类似问题,其语法格式如下:
if 表达式: 语句块1
else:语句块2
使用 if…else 语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例如判断 school 是否为 hogwarts)。
如果满足条件,则执行 if 后面的语句块(打印霍格沃兹测试开发),否则,执行 else 后面的语句块(打印测试开发)。
这种形式的选择语句相当于汉语里的 如果……否则……,其流程图如图所示。
把以上流程转换成为 Python 代码
student = "测试工程师"
school = "hogwarts"if school == "hogwarts":print("霍格沃兹测试开发")
else:print("测试开发")
if…elif…else 多重条件
网上购物时,通常都有多种付款方式以供选择,比如支付宝支付、银联支付、微信支付等等。这时用户就需要从多个选项中选择一个。
在开发程序时,如果遇到多选一的情况,则可以使用 if…elif…else 语句。
该语句是一个多分支选择语句,通常表现为 如果满足某种条件,进行某种处理,否则,如果满足另一种条件,则执行另一种处理……。
if…elif…else 语句的语法格式如下:
if 表达式: 语句块1
elif 表达式: 语句块2
...
else:语句块n
使用 if…elif…else 语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例如判断 food 是否为 apple)。
如果满足条件,则执行 if 后面的语句块(打印苹果),如果表达式为假,就跳过第一个语句块,进行第二个表达式的执行(例如判断 food 是否为 banana)。
如果第二个表达式满足条件,则执行 elif 后面的语句块(打印香蕉),如果第二个表达式为假,就跳过第二个语句块,进行第三个表达式的执行(例如判断 food 是否为 orange)。
如果三个表达式满足条件,则执行 elif 后面的语句块(打印橘子),如果三个表达式为假,就跳过第三个语句块,执行 else 后面的语句块。
只有在所有表达式都为假的情况下,才会执行 else 中的语句。
这种形式的选择语句相当于汉语里的 如果……如果……否则……,其流程图如图所示。
把以上流程转换成为 Python 代码
food = input("请输入水果的类型:\n")if food == "apple":print("你输入的是苹果")
elif food == "banana":print("你输入的是香蕉")
elif food == "orange":print("你输入的是橘子")
else:print("你触及了我翻译的盲区了:(")
分支嵌套
前面介绍了 3 种形式的 if 选择语句,这 3 种形式的选择语句之间都可以进行互相嵌套。例如,在最简单的 if 语句中嵌套 if…else 语句,形式如下:
if 表达式 1: if 表达式 2: 语句块 1 else: 语句块 2
也能在 else 语句中嵌套
if 表达式 1: if 表达式 2: 语句块 1 else: 语句块 2
else: if 表达式 3: 语句块 3 else: 语句块 4
还能在 elif 语句中嵌套
if 表达式 1: if 表达式 2: 语句块 1 else: 语句块 2
elif 表达式 3: if 表达式 4: 语句块 3 else: 语句块 4
else: if 表达式 5: 语句块 5 else: 语句块 6
if 选择语句可以有多种嵌套方式,在开发程序时,可以根据自身需要选择在合适的分支基础上进行嵌套,但一定要严格控制好不同级别代码块的缩进量。
课程开始的例子转换成 Python 代码:
name = input("请输入你的名字:\n")
hobby = int(input("请选择你擅长/喜欢的科目,文科选1,理科选2:\n"))
if hobby == 1:orientation_choose = int(input("请选择你想要的职业,历史选1,地理选2:\n"))if orientation_choose == 1:orientation = "历史"else:orientation = "地理"
else:orientation_choose = int(input("请选择你想从业的方向:数学选1,生物选2,编程选3\n"))if orientation_choose == 1:orientation = "数学"elif orientation_choose == 2:orientation = "生物"else:coder_choose = int(input("请选择你想从事的软件职业方向:测试选1,开发选2,产品选3,项目经理选4\n"))if coder_choose == 1:orientation = "测试"elif coder_choose == 2:orientation = "开发"elif coder_choose == 3:orientation = "产品"else:orientation = "项目经理"
print(f"{name} 同学,你意向的职业为: {orientation}")
通过转换出来的代码,就能使用条件语句 if 实现学生的求职意向调查的简单逻辑了。
猜拳游戏
编写一个Python程序,实现一个简单的猜拳游戏。玩家和电脑各自选择石头、剪刀或布,根据规则判断胜负关系,并输出比赛结果。
import randomprint("猜拳游戏开始!")
player = input("请出拳(石头/剪刀/布):")
computer = random.choice(["石头", "剪刀", "布"])print(f"电脑出拳:{computer}")if player == computer:print("平局!")
elif (player == "石头" and computer == "剪刀") or \(player == "剪刀" and computer == "布") or \(player == "布" and computer == "石头"):print("玩家胜利!")
else:print("电脑胜利!")
成绩判断
编写一个 Python 程序,用户输入一个分数,程序将根据分数判断并输出相应的等级。分数在 90 分及以上为 A 等级,60 -89 分为 B 等级,否则为 C 等级。
# 用户输入分数
score = int(input('输入分数:\n'))# 根据分数判断等级
if score >= 90:grade = 'A'
elif score >= 60:grade = 'B'
else:grade = 'C'# 输出等级和分数
print(f"{score} 属于 {grade} 等级")
计算器
编写一个简单的Python程序,实现一个简易的计算器。用户可以输入两个数字和一个运算符(+、-、*、/),程序将根据运算符执行相应的计算操作,并输出结果。
num1 = float(input("请输入第一个数字:"))
num2 = float(input("请输入第二个数字:"))
operator = input("请输入运算符(+、-、*、/):")# 根据运算符执行相应的计算操作
if operator == '+':result = num1 + num2
elif operator == '-':result = num1 - num2
elif operator == '*':result = num1 * num2
elif operator == '/':if num2 != 0:result = num1 / num2else:result = "除数不能为零"
else:result = "无效运算符"# 输出计算结果
print("计算结果:", result)
模拟乘车过程
编写一个 Python 程序,模拟乘坐公交车过程,并且可以有座位坐下。要求:输入公交卡当前的余额,只要不低于2元,就可以上公交车;如果车上有空座位,就可以坐下。
CardCash = int(input('请输入您的公交卡余额:'))
if CardCash >= 2:print('余额足够,您可以上车了')isSeat = input('车上是否有空座位(有/没有)?')if isSeat == '有':print('您可以坐下')else:print('没有座位,只能站着')
else:print('余额不够,您不能上车')
匹配语句
在 Python 中,match 是 Python3.10 版本引入的一种模式匹配语法。
它提供了一种简洁而强大的方式来匹配和处理不同模式的逻辑,当成功匹配一个模式时,就执行该模式后的代码块。
match 语句适用于有限的精准值的匹配,不适用于范围值的判断。
基本语法结构
match 语法的基本结构如下:
match value:case pattern1:# 处理 pattern1 匹配成功的情况case pattern2:# 处理 pattern2 匹配成功的情况...case patternN:# 处理 patternN 匹配成功的情况case _:# 处理所有其他情况的匹配(相当于默认情况)
- match 表示匹配模式的开始
- value 表示需要进行匹配的目标值
- case 表示提供一个匹配模式
- pattern 表示被匹配的值,该值一般为一个字面量值。
- 表示当所有模式都未匹配成功,则执行该模式下的代码块,本质上-是一个变量,用来匹配任意值。
示例: 根据输入 httpCode 值不同,输出对应的描述
httpCode = int(input("请输入一个HTTP状态码:"))match httpCode:case 101:print("临时响应")case 200:print("请求成功")case 301:print("重定向")case 404:print("页面找不到")case 500:print("服务器内部错误")case _:print("无效的状态码")
| 组合多个匹配值
match 可以在一个匹配模式中,提供多个匹配值,使用 | 组合,在匹配时,只要成功匹配其中一个值即可。
示例: 改进 HTTPCode 示例,可以匹配不同级别中的更多状态码
httpCode = int(input("请输入一个HTTP状态码:"))match httpCode:case 100 | 101:print("临时响应")case 200 | 201 | 203 | 204 | 205:print("请求成功")case 301 | 304 | 307:print("重定向")case 401 | 403| 404 | 405:print("页面找不到")case 500 | 502 | 503:print("服务器内部错误")case _:print("无效的状态码")
匹配模式绑定变量
在提供匹配值时,除可以提供字面值外,还可以提供变量,用来匹配任意值,如 _,但是在一个匹配语句中,只能出现一个独立的匹配变量。
在编写程序过程中,如果需要动态匹配部分数据,比如一个元组中的部分值,此时可以通过绑定变量的方式,提供一个字面值和变量的混合匹配模式,字面值用来精确匹配,变量用来模糊匹配。
示例:输入一个坐标,输出该坐标点的位置。
# point is an (x, y) tuple
x = int(input("x:"))
y = int(input("y:"))
point = (x, y)
match point:case (0, 0):print("坐标在原点上")case (0, y):print(f"坐标在Y轴上")case (x, 0):print(f"坐标在X轴上")case (x, y):print(f"X={x}, Y={y}")case _:raise ValueError("没有这个坐标点")
上面代码中:
- 第一个模式有两个字面值,这两个字面值都能精确匹配者能成功匹配当前模式。
- 第二,三两个模式结合了一个字面值和一个变量,而变量绑定了一个来自目标的值
point,此时,字面值需要精确匹配,而绑定的变量可以匹配该位置的任意值。 - 第四个模式捕获了两个值,此时,目标值中的任意值都会被成功匹配。
- 这使得它在概念上类似于解包赋值 (x, y) = point。
-
实践是检验真理的唯一标准
相关文章:
python19-if和match的美
课程:B站大学 记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化 分支语句那些事儿 if 条件判断if...else 判断语句if...elif...else 多重条件分支嵌套也能在 e…...
期权有哪些用处?期权和期货比优势在哪?
期权如同金融市场的“瑞士军刀”,既能防御风险,又能主动出击。相较于期货的“刚性对决”,期权更像“柔性博弈”——通过策略组合在不确定性中捕捉确定性收益。 期权有哪些用处? 期权的核心价值在于其非对称性——买方风险有限&am…...
【html期末作业网页设计】
html期末作业网页设计 作者有话说项目功能介绍 网站结构完整代码网站样图 作者有话说 目前,我们的项目已经搭建了各页面的基本框架,但内容填充还不完善,各页面之间的跳转逻辑也还需要进一步优化。 我们深知,一个好的项目需要不断…...
ComfyUI AnimeDiff动画参数总结
ComfyUI AnimeDiff动画参数总结 一、动画生成核心参数 参数名称建议值/范围作用说明备注步数(Steps)15-25控制AI计算迭代次数,越高细节越精细,但耗时更长推荐20步,显存不足可降至15步CFG值7.0-8.5提示词对画面的控制…...
基于Three.js的多视图3D Tiles同步可视化技术解析
文章目录 基于Three.js的多视图3D Tiles同步可视化技术解析一、技术背景与价值二、核心实现原理2.1 视口分割算法2.2 视角同步机制三、关键代码解析3.1 渲染管线优化3.2 3D Tiles加载四、交互系统实现4.1 多视图事件分发4.2 射线拾取优化五、性能优化方案5.1 渲染性能指标5.2 W…...
7、什么是死锁,如何避免死锁?【高频】
(1)什么是死锁: 死锁 是指在两个或多个进程的执行时,每个进程都持有资源,并都在等待其他进程 释放 它所需的资源,如果此时所有的进程一直占有资源而不释放,就导致了死锁。 死锁只有同时满足 四…...
自动化学习-使用git进行版本管理
目录 一、为什么要学习git 二、git是什么 三、git如何使用 1、git的下载安装和配置 2、git常用的命令 3、gitee远程仓库的使用 (1)注册 (2)创建仓库 (3)配置公钥(建立电脑和git…...
前端大文件上传
一、切片上传技术原理 切片上传是把大文件分割成多个较小的切片,分别上传这些切片,最后在服务器端将它们合并成完整文件。这种方式能有效应对网络不稳定导致的上传失败问题,还可利用多线程并行上传,提升上传效率。 二、前端实现…...
【网络】实现电脑与笔记本电脑之间的直接网络连接
要实现电脑与笔记本电脑之间的直接网络连接,可以通过有线或无线两种方式。以下是详细的步骤指南: 一、有线直连(通过网线) 1. 准备工具 网线:使用交叉网线(适用于旧设备)或普通直连网线&#…...
“深入浅出”系列之音视频开发:(12)使用FFmpeg实现倍速播放:技术细节与优化思路
一、前言 在音视频处理领域,倍速播放是一个常见的需求,尤其是在视频播放器、在线教育平台等场景中,用户常常需要以不同的速度播放视频内容。然而,实现一个高质量的倍速播放功能并不容易,尤其是在处理音频时࿰…...
qt作业day2
1:在注册登录的练习里面,追加一个QListWidget 项目列表 要求:点击注册之后,将账号显示到 listWidget上面去 以及,在listWidget中双击某个账号的时候,将该账号删除 .h #ifndef WIDGET_H #define WIDGET_H …...
Qt:day1
一、作业 写1个Widget窗口,窗口里面放1个按钮,按钮随便叫什么; 创建2个Widget对象: Widget w1, w2; w1.show(); w2不管; 要求: 点击 w1.btn,w1隐藏,w2显示; 点击 w2.btn&…...
基于微信小程序的停车场管理系统的设计与实现
第1章 绪论 1.1 课题背景 随着移动互联形式的不断发展,各行各业都在摸索移动互联对本行业的改变,不断的尝试开发出适合于本行业或者本公司的APP。但是这样一来用户的手机上就需要安装各种软件,但是APP作为一个只为某个公司服务的一个软件&a…...
详细Linux基础知识(不断完善)
终端类型分类 1. 物理终端 直接连接到计算机的硬件设备2. 虚拟终端 通过快捷键切换的文本模式界面: Ctrl + Alt + F1 # 登录窗口 Ctrl + Alt + F2 # 当前图形界面 Ctrl + Alt + F3 # 虚拟命令终端 Ctrl + Alt + F4-F6 # 备用虚拟终端3. 图形终端 模拟终端:图形环境中的…...
类和对象-继承-C++
1.定义 面向对象的三大特征之一,为了减少重复的代码 2.语法 class 子类 :继承方式 父类 (子类也叫派生类,父类也称为基类) 例:class age:public person; #include<iostrea…...
初阶数据结构(C语言实现)——3顺序表和链表(1)
目录 【本节目标】1. 线性表2.顺序表2.1概念及结构2.2 接口实现2.2.0 动态顺序表2.2.1 顺序表初始化SLInit()2.2.2 销毁和打印2.2.3 尾插SLPushBack()2.2.4 尾删SLPopBack()2.2.5 头插2.2.6 头删2.2.7 插入…...
nuxt常用组件库html-validator、@nuxtjs/i18n、@nuxt/image、@unocss/nuxt使用解析
html-validator 主要用于自动验证nuxt服务器呈现的HTML(SSR和SSG),以检测可能导致水合错误的HTML常见问题,有助于减少水合错误,检测常见的可访问性错误。 安装 npx nuxilatest module add html-validator配置 若自动更新nuxt.config.ts配置文…...
4G工业路由器在公交充电桩中的应用与优势
随着电动公交车的普及,公交充电桩的稳定运行和高效管理是交通营运部门最关心的问题。4G工业路由器凭借其卓越的数据采集和通讯能力,成为实现充电桩智能化管理的关键。 公交充电桩运维管理需求概述: 1.实时性:实时监控充电状态、剩…...
matlab 四维数据可视化(已解决)
虽然这不是传统意义上的“4维可视化”,但你可以通过在三维空间中表示两个维度来间接展示4维数据。例如,你可以使用颜色来表示第四个维度。 clc clear close all% 假设X, Y, Z为你的三维数据,C为第四维数据 X rand(100, 1); Y rand(100, 1);…...
歌曲分类和流行度预测
1. 项目介绍 本项目从kaggle平台上下载了数据集,该数据集包含了3万多首来自Spotify API 的歌曲,共有23个特征。首先对数据集进行预处理,如重复行、缺失值、标准化处理等。再对预处理后的数据进行探索性分析,观察各变量的分布情况&…...
经验分享:用一张表解决并发冲突!数据库事务锁的核心实现逻辑
背景 对于一些内部使用的管理系统来说,可能没有引入Redis,又想基于现有的基础设施处理并发问题,而数据库是每个应用都避不开的基础设施之一,因此分享个我曾经维护过的一个系统中,使用数据库表来实现事务锁的方式。 之…...
oracle decode
1. 基本语法 DECODE(expression, search1, result1, search2, result2, ..., default_result) expression :需要比较的表达式或列。search1, search2, ... :要匹配的值。result1, result2, ... :当 expression 等于 search 时返回的结果。def…...
让后台界面布局更灵活:在GrapesJS中复刻Java的五区式布局
当你想要在可视化编辑器中做一个类似Java BorderLayout 的五区布局,却发现市面上大多只能“简单拼接”而难以自由扩展时,你或许就需要一个更灵活的布局管理器来帮忙。本篇文章就从这个痛点开始,带你一步步揭秘如何用 GrapesJS 自定义并实现一…...
【网络安全 | 漏洞挖掘】分享21个基础漏洞案例
未经许可,不得转载。 文章目录 案例1:绕过500状态码案例2:修改前端实现任意文件上传案例3:Nmap扫描端口命令案例4:绕过限制实现任意文件读取案例5:删除任意目录文件案例6:锁定任意账户案例7:重置任意用户密码案例8:接管任意账户方法一方法二案例9:功能校验机制绕过案…...
期权适合什么类型的投资者交易?
财顺小编本文主要介绍期权适合什么类型的投资者交易?期权适合的投资者类型需结合其风险偏好、投资目标及市场判断能力综合评估。 期权适合什么类型的投资者交易? 1. 风险管理型投资者(稳健型) 适用场景:持有股票、大…...
浅谈C++/C命名冲突
前言 在这里我会简要地介绍产生命名冲突的原因,和C中处理命名冲突的方法,同时和C语言的解决办法进行比较。 相信你在阅读完之后一定会有收获。对于我们来说,了解编译器的编译链接过程才能更好的理解编译器是如何报错的,更能让我们…...
【星云 Orbit • STM32F4】08. 用判断数据头来接收据的串口通用程序框架
【星云 Orbit • STM32F4】08. 用判断数据头来接收据的串口通用程序框架 1. 引言 本教程旨在帮助嵌入式开发小白从零开始,学习如何在STM32F407微控制器上实现一个基于串口的数据接收程序。该程序能够通过判断数据头来接收一串数据,并将其存储到缓冲区中…...
C# OnnxRuntime部署DAMO-YOLO香烟检测
目录 说明 效果 模型信息 项目 代码 下载 参考 说明 效果 模型信息 Model Properties ------------------------- --------------------------------------------------------------- Inputs ------------------------- name:input tensor:Floa…...
探索Elasticsearch:索引的CRUD
在企业环境中,Elasticsearch的索引CRUD(创建Create、读取Read、更新Update、删除Delete)操作是非常基础且频繁使用的功能。这些操作对于管理和维护数据至关重要,尤其是在处理大规模数据集和需要实时搜索与分析的应用场景中。 目录…...
C++:多态与虚函数
1.虚函数,在函数前加virtual即可。有虚函数时,父类指针指向父类对象时就会使用父类的成员,指向子类对象时就可以使用子类成员,进而我们引入了多态的概念。 2.多态:父类指针指向子类的对象,通过父类指针调用…...
【Python 数据结构 2.时间复杂度和空间复杂度】
Life is a journey —— 25.2.28 一、引例:穷举法 1.单层循环 所谓穷举法,就是我们通常所说的枚举,就是把所有情况都遍历了的意思。 例:给定n(n ≤ 1000)个元素ai,求其中奇数有多少个 判断一…...
【Qt QML】QML鼠标事件(MouseArea)
QML鼠标事件全面解析 一、MouseArea基础概念 在 QML 中,鼠标事件是处理用户与界面元素交互的重要部分。QML 提供了多种方式来处理鼠标事件,MouseArea 是 QML 中用于处理鼠标事件的核心元素,它可以覆盖在其他元素之上,捕获鼠标操作并触发相应的信号。 1、基本用法 import …...
医脉云枢:中医药典籍知识图谱与非遗传承多维可视化系统
核心优势: "医脉"直击主题,"云枢"体现技术前瞻性 "非遗传承"呼应二十大文化政策 "多维"涵盖3D模型、时间轴、地图等多种可视化形式 技术栈:Vue Flask Element UI ECharts MySQL 同时参考了…...
vue 和 react 底层采用的 diff 算法的区别
Vue 3 和 React 在底层 Diff 算法上的实现确实有一些区别,主要体现在设计理念、性能优化策略以及具体实现方式上。以下是对两者 Diff 算法差异的详细分析: 1. 总体设计理念 Vue 3 的 Diff 算法 Vue 3 的虚拟 DOM Diff 算法基于“双端比较”思想ÿ…...
养老小程序方案详解居家养老小程序系统
养老小程序,上门居家养老小程序,用户端护工端小程序,管理后台。php开发语言,可源码搭建,二次开发或者定制开发。 一 用户端:小程序 核心功能模块:用户完善个人健康档案,在线选择服…...
Tauri跨平台开发问题及解决方案深度解析(React版)
Tauri跨平台开发问题及解决方案深度解析(React版) 一、环境配置与项目初始化难题(React适配) 1.1 React项目初始化 推荐模板: # 使用ReactTypeScript模板 npm create tauri-applatest -- --template react-ts# 项目…...
【OMCI实践】omci.lua脚本文件(独家分享)
引言 omci.lua文件是Wireshark的OMCI协议解析插件的核心组件。它配合BinDecHex.lua,可以解析OMCI协议的数据包,提取出消息类型、受管实体标识、受管实体属性等关键信息,并以人类可读的形式显示在Wireshark的解码视图中,方便研发人…...
React高级内容探索
flushSync确保了DOM立即更新 flushSync让你强制React同步刷新提供回调中的任何更新,这确保了DOM立即更新 flushSync是DOM更新之后的,像vue中的nextTick: import { useState,useRef} from "react" import { flushSync} from &quo…...
前端水印实现方式
一、简介 简单来说,前端水印就是在网页或应用程序的前端界面上添加的一种标记,通常是文本、图标或图案等形式。它就像给你的数字内容贴上了一个独特的 “标签”,用于标识内容的归属、防止未经授权的使用和传播。比如,一些在线图片…...
【新手入门】SQL注入之getshell(木马)
木马介绍 木马其实就是一段程序,这个程序运行到目标主机上时,主要可以对目标进行远程控制、盗取信息等功能,一般不会破坏目标主机,当然,这也看黑客是否想要搞破坏。 按照功能分类:远控型、破坏型、流氓软件型、盗取信…...
Git操作指南:分支合并、回退及其他重要操作
在软件开发的协作过程中,Git 作为一款强大的版本控制系统,能帮助开发者高效管理代码的各个版本和分支。本文将详细介绍 Git 中常见的分支合并、取消本地修改、回退操作等,并提供通俗易懂的解释和步骤指南。 一、分支合并 分支合并是 Git 工…...
Vue 3 引入全局状态管理 pinia
什么是全局状态管理? 所有页面全局共享的变量,而不是局限在某一个页面中。适合作为全局状态的数据: 已登录用户信息 (每个页面几乎都要用) Pinia 是一个主流的状态管理库,相比于 Vuex 来说使用更简单,可参考 入门文档 开始 | Pinia 进行引…...
SQL 中为什么参数多了not in 比 in 慢多了,怎么优化
开发工作中,我发现一个现象,比喻下面的两个语句: select * from shangpin where spdm in (1,2,3,...); select * from shangpin where spdm not in (1,2,3,...); 当参数比较少的时候还看不出来什么,但是遇到参数上了几百几千&am…...
[密码学实战]Java生成SM2根证书及用户证书
前言 在国密算法体系中,SM2是基于椭圆曲线密码(ECC)的非对称加密算法,广泛应用于数字证书、签名验签等场景。本文将结合代码实现,详细讲解如何通过Java生成SM2根证书及用户证书,并深入分析其核心原理。 一、证书验证 1.代码运行结果 2.根证书验证 3.用户证书验证 二、…...
API接口:企业名称、注册号、统一社会信用代码、企业类型、成立日期和法定代表人等数据 API 接口使用指南
API接口:企业名称、注册号、统一社会信用代码、企业类型、成立日期和法定代表人等数据 API 接口使用指南 本文详细介绍一种基于 Web 搜索方式实现的企业信息查询接口,适用于数据补全、企业资质验证、信息查询等场景。文章内容涵盖接口功能、请求参数、返…...
版图自动化连接算法开发 00004 ------ 给定一个点,添加一个中间点实现 Manhattan 方式连接两个给定的坐标点
版图自动化连接算法开发 00004 ------ 给定一个点,添加一个中间点实现 Manhattan 方式连接两个给定的坐标点 引言正文引言 必读文章 ------ 版图自动化连接算法开发 00001 ------ 直接连接两个给定的坐标点。 此处,我们对给定点的坐标进行一下限制,因为是只添加一个点,因…...
医疗行业电脑终端如何防病毒——火绒企业版杀毒软件
医疗物联网技术广泛应用,使得医院网络空间中增加了诸多新型终端设备。这些设备类型多样、型号各异,风险暴露面积大。火绒安全对医疗机构终端安全出现的问题、不足、需求等,提出整体解决方案。 医疗行业终端安全防护痛点 系统老旧 医院、区…...
【入门Web安全之前端学习的侧重点和针对性的建议】
入门Web安全之前端学习的侧重点和针对性的建议 一、HTML:理解攻击载荷的载体二、CSS:次要但需警惕点击劫持三、JavaScript:渗透测试的核心重点四、浏览器工具:渗透测试的实战武器五、学习建议与资源六、总结:渗透测试者…...
2024年中国城市统计年鉴(PDF+excel)
2024年中国城市统计年鉴(PDFexcel) 说明:包括地级县级市 格式:PDFEXCEL 《中国城市统计年鉴》是一部全面反映中国城市发展状况的官方统计出版物,包括各级城市的详细统计数据。这部年鉴自1985年开始出版,…...
详解DeepSeek模型底层原理及和ChatGPT区别点
一、DeepSeek大模型原理 架构基础 DeepSeek基于Transformer架构,Transformer架构主要由编码器和解码器组成,在自然语言处理任务中,通常使用的是Transformer的解码器部分。它的核心是自注意力机制(Self - Attention),这个机制允许模型在处理输入序列时,关注序列中不同位…...