10天玩转Python第2天:python判断语句基础示例全面详解与代码练习
目录
- 1.课程之前
- 1.1 复习和反馈
- 1.2 作业
- 1.3 今日内容
- 1.4 字符串格式化的补充
- 1.5 运算符
- 1.5.1 逻辑运算符
- 1.5.2 赋值运算符
- 1.5.3 运算符优先
- 2.判断
- 2.1 if 的基本结构
- 2.1.1 基本语法
- 2.1.2 代码案例
- 2.1.3 练习
- 2.2 if else 结构
- 2.2.1 基本语法
- 2.2.2 代码案例
- 2.2.3 练习
- 2.3 if 和逻辑运算符结合使用
- 2.3.1 案例一
- 2.3.2 案例二
- 2.4 if elif else 结构
- 2.4.1 语法
- 2.4.2 案例
- 2.4.2.1 elif 实现
- 2.4.2.2 多个if实现
- 2.5 Debug 调试代码
- 2.5.1 打断点
- 2.6 if 嵌套
- 2.6.1 代码案例
- 2.6.2 练习
- 2.6.3 案例: 猜拳游戏
- 2.6.3.1案例的步骤:
- 2.6.3.2 随机出拳
- 2.6.3.3 代码

1.课程之前
1.1 复习和反馈
数据类型转换: 数据本来的类型不是我们计算使用想要的类型
int() 将其他类型转换为 int 类型(小数, 整数类型的字符串)
float() 将其他类型转换为 float 类型(整数, 数字类型的字符串)
str() 将其他类型转换为 str 类型(任意类型)
函数: 作用 语法
type(变量) 可以获取变量的数据类型
input() 获取键盘的输入
变量 = input(‘提示性信息’) # 提示性信息可以随便写,目的是让别人知道要做什么事
1.2 作业
# 书写代码
# 获取用户输入的数字,类型是 str
num1 = input('请输入第一个数字:')
num2 = input('请输入第二个数字:')
# 求和, 需要将 str类型转换为数字类型
num = int(num1) + int(num2)
# 打印求和的结果
print(num)
1.3 今日内容
- 字符串格式化的补充
- 运算符
- 判断语句 if elif else
- 循环语句基础while
1.4 字符串格式化的补充
字符串.format() 可以在任意版本中使用
1. 在需要使用 变量的地方使用 {} 占位
2. '{}, {}, ...'.format(变量, 变量, ...)
# 定义变量 姓名 年龄 身高
name = '小明' # 可以使用 input 输入
age = 18 # 可以使用 input 输入
height = 1.71 # 可以使用 input 输入
stu_num = 1 # 学号
num = 90 # 及格率# print('我的名字是 xx, 年龄是 xx, 身高是 xx m, 学号 xx, 本次考试的及格率为 xx%')
print(f'我的名字是 {name}, 年龄是 {age}, 身高是 {height} m, 学号 {stu_num}, 本次考试的及格率为 {num}%')
# 一般不会有这样的需求
print(f'我的名字是 {name}, 年龄是 {age}, 身高是 {height:.3f} m, 学号 {stu_num:06d}, 本次考试的及格率为 {num}%')
# 字符串.format()
print('我的名字是 {}, 年龄是 {}, 身高是 {} m, 学号 {}, 本次考试的及格率为 {}%'.format(name, age, height, stu_num, num))
print('我的名字是 {}, 年龄是 {}, 身高是 {:.3f} m, 学号 {:06d}, 本次考试的及格率为 {}%'.format(name, age, height, stu_num, num))
1.5 运算符
1.5.1 逻辑运算符
逻辑运算符 可以连接多个条件, 在判断和循环中使用and 逻辑与 和,并且 and 连接两个条件,都必须为 True, 整体结果才为 True, 即一假为假 (当第一个条件为 False 的时候,第二个条件就不再判
or 逻辑或 或者 or 连接的两个条件, 只要有一个条件为 True , 整体结果就为 True, 即 一真为真 (当第一个条件为 True的时候,第二个条件就不再判断)
not 逻辑非 取反 not 后边的条件, 如果本来是 True,变为 False, 本来是 False,变为 True

1.5.2 赋值运算符
赋值运算符 =, 作用就是将等号右边的值保存到等号左边的变量中
复合赋值运算符(将算术运算符和赋值运算符进行结合)
+= -= *= /= //= %=
a += b ===> a = a + b
1.5.3 运算符优先
不需要刻意去记忆优先级,因为可以使用 () 改变优先级别
2.判断
日常生活中说的 如果 … 否则 … ,这个就是判断,在程序代码中需要使用 if(如果) elif(如果) else(否则) 三个关键字来实现
在代码中有判断语句, 待会不会全部执行, 会有一部分不会执行
2.1 if 的基本结构
即 只有 如果的情况, 如果的条件成立, 会执行的代码,会做的事
2.1.1 基本语法
if 判断条件:书写条件成立(真),执行的代码书写条件成立(真),执行的代码
顶格书写,没有缩进的代码,和 if无关, 不管条件是否成立,都会执行
# 1. if 是一个关键字, 和后续的判断条件之间需要一个空格
# 2. 判断条件后边需要一个冒号,不要少了
# 3. 冒号之后,回车,代码需要缩进, 在 pycharm 中会自动进行缩进, 一般是 4 个空格 或者 一个 tab 键
# 4. 所有在 if 代码下方的缩进中书写的代码,属于 if 语句的代码块, 判断条件为 True 的时候会执行
# 5. if 代码块中的代码,要么都执行,要么都不执行
# 6. if 代码块结束之后, 代码要顶格书写(不再有缩进), 表示是和 if 无关的代码
2.1.2 代码案例
1. 使用 input 获取用户的年龄
2. 判断年龄是否满足 18 岁
3. 如果年龄大于等于(满足)18 岁, 输出 '满 18 岁了,可以进入网吧为所欲为了'
# 1. 使用 input 获取用户的年龄, 类型是 str
age = input('请输入你的年龄:')
# 2. 判断年龄是否满足 18 岁
if int(age) >= 18: # 字符串和 int 类型不能比大小, 先类型转换,再比大小# 3. 如果年龄大于等于(满足)18 岁, 输出 '满 18 岁了,可以进入网吧为所欲为了'print('满 18 岁了,可以进入网吧为所欲为了')
print('我和 if 判断没有关系,不管怎样,都会执行')
2.1.3 练习
1. 获取用户输入的用户名信息
2. 如果用户名信息是 admin, 就在控制台输出出来
# 1. 获取用户输入的用户名信息
name = input('请输入你的用户名:')
# 2. 如果用户名信息是 admin, 就在控制台输出出来
if name == 'admin':print('欢迎 admin')
if else 结构
2.2 if else 结构
如果 条件成立 做什么事 否则(条件不成立) 做另一件事
2.2.1 基本语法
if 判断条件:书写条件成立(真),执行的代码书写条件成立(真),执行的代码
else:书写条件不成立(假), 执行的代码书写条件不成立(假), 执行的代码
# 1. else 是关键字, 后边需要冒号
# 2. 冒号之后回车,同样需要缩进
# 3. 处于 else 代码下方缩进中的内容,属于 else 的代码块
# 4. if 和 else 的代码块, 只会执行其中的一个
# 5. else 需要结合 if 使用
# 6. if else 之间不能有其他顶格书写的内容(不提 elif)
2.2.2 代码案例
1. 使用 input 获取用户的年龄
2. 判断年龄是否满足 18 岁
3. 如果年龄大于等于(满足)18 岁, 输出 '满 18 岁了,可以进入网吧为所欲为了'
4. 如果不满足, 输出 '不满 18 岁,回去写作业吧'
# 1. 使用 input 获取用户的年龄, 类型是 str
age = input('请输入你的年龄:')
# 2. 判断年龄是否满足 18 岁
if int(age) >= 18: # 字符串和 int 类型不能比大小, 先类型转换,再比大小# 3. 如果年龄大于等于(满足)18 岁, 输出 '满 18 岁了,可以进入网吧为所欲为了'print('满 18 岁了,可以进入网吧为所欲为了')
# 4. 如果不满足, 输出 '不满 18 岁,回去写作业吧'
else:print('不满 18 岁,回去写作业吧')
2.2.3 练习
1. 获取用户输入的用户名信息
2. 如果用户名信息是 admin, 就在控制台输出出来
3. 如果用户名信息不是 admin, 就在控制台输出"用户名错误!"
# 1. 获取用户输入的用户名信息
name = input('请输入你的用户名:')
# 2. 如果用户名信息是 admin, 就在控制台输出出来
if name == 'admin':print('欢迎 admin')
# 3. 如果用户名信息不是 admin, 就在控制台输出"用户名错误!"
else:print('用户名错误!')
2.3 if 和逻辑运算符结合使用
2.3.1 案例一
1. 获取用户输入的用户名和密码
2. 判断用户名是 admin 并且密码是 123456 时, 在控制台输出: 登录成功!
3. 否则在控制台输出: 登录信息错误!
# 1. 获取用户输入的用户名和密码
name = input('请输入用户名:')
pwd = input('请输入密码:')
# 2. 判断用户名是 admin 并且密码是 123456 时, 在控制台输出: 登录成功!
if name == 'admin' and pwd == '123456':print('登录成功!')
# 3. 否则在控制台输出: 登录信息错误!
else:print('登录信息错误!')
2.3.2 案例二
1. 获取用户输入的用户名
2. 判断用户名是 admin 时, 在控制台输出: 欢迎 admin 登录!
3. 用户名是 test 时, 在控制台输出: 欢迎 test 登录!
4. 如果是其他信息, 在控制台输出: 查无此人!
# 1. 获取用户输入的用户名
username = input('请输入用户名:')
# 2. 判断用户名是 admin 时, 在控制台输出: 欢迎 admin 登录!
# 3. 用户名是 test 时, 在控制台输出: 欢迎 test 登录!
if username == 'admin' or username == 'test':print(f'欢迎 {username} 登录!')
# 4. 如果是其他信息, 在控制台输出: 查无此人!
else:print('查无此人!')
# username == 'admin' 或者 'test'(一直 True, 空字符串是 False)
if username == 'admin' or 'test': pass # pass 关键字, 占位,
2.4 if elif else 结构
如果某个判断条件有多个, 此时建议使用 if elif else 结构来实现
2.4.1 语法
if 判断条件1:判断条件1成立,执行的代码
elif 判断条件2: # 只有判断条件1不成立,才会判断 判断条件2判断条件2成立执行的代码
else:以上条件都不成立,执行的代码
# 1. elif 也是关键字,后边和判断条件之间需要一个空格,判断条件之后需要冒号
# 2. 冒号之后回车需要缩进, 处在这个缩进中的的代码表示是 elif 的代码块
# 3. 在一个 if判断中,可以有很多个 elif
# 4. 只有 if 的条件不成立,才会去判断 elif 的条件
# 5. 在一个if 中, 如果有多个 elif , 只要有一个条件成立,后续的所有都不再判断
# 6. if elif else 结构, 和 if 的缩进相同的只能是 elif 和 else,如果是其他的,就表示 这个判断结构结束了
if 判断条件1:执行的代码
if 判断条件2:执行的代码
if 判断条件3:执行的代码 # 多个 if 的结构, 每个 if 都会进行判断,之间没有关联系
2.4.2 案例
1. 定义 score 变量记录考试分数
2. 如果分数是大于等于90分应该显示优
3. 如果分数是大于等于80分并且小于90分应该显示良
4. 如果分数是大于等于70分并且小于80分应该显示中
5. 如果分数是大于等于60分并且小于70分应该显示差
6. 其它分数显示不及格

2.4.2.1 elif 实现
# 1. 定义 score 变量记录考试分数
score = int(input('请输入你的分数')) # int float
# 2. 如果分数是大于等于90分应该显示优
if score >= 90:print('优')
# 3. 如果分数是大于等于80分并且小于90分应该显示良
elif (score >= 80) and score < 90:print('良')
# 4. 如果分数是大于等于70分并且小于80分应该显示中
# and score < 80 可以不写的, 原因只有上边一个判断条件不成立(一定满足 score<80),才会执行这个
elif score >= 70:print('中')
# 5. 如果分数是大于等于60分并且小于70分应该显示差
elif score >= 60:print('差')
# 6. 其它分数显示不及格
else:print('不及格')
2.4.2.2 多个if实现
# 1. 定义 score 变量记录考试分数
score = int(input('请输入你的分数')) # int float
# 2. 如果分数是大于等于90分应该显示优
if score >= 90:print('优')
# 3. 如果分数是大于等于80分并且小于90分应该显示良
if (score >= 80) and score < 90:print('良')
# 4. 如果分数是大于等于70分并且小于80分应该显示中
if (score >= 70) and score < 80:print('中')
# 5. 如果分数是大于等于60分并且小于70分应该显示差
if (score >= 60) and score < 70:print('差')
# 6. 其它分数显示不及格
if score < 60:print('不及格')
2.5 Debug 调试代码
debug 在代码中出现问题错误(bug), 可以使用 debug 来调试代码,查找错误.
我们使用 debug 主要用来 查看代码的执行步骤
2.5.1 打断点
在 pycharm 中, 代码和行号之间进行点击, 出现小红点即打断点, 再次点击小红点会取消断点
断点的位置,一般来说会在代码的第一行(在程序运行的时候,想要在什么地方停下来)
注意点: 可能会出现的 bug(pycharm 软件的问题): 代码中只有一个断点的时候不能 debug 调试查看代码执行过程, 解决方案,在代码其他任意地方多加一个断点

右键 debug 运行代码

单步执行代码

2.6 if 嵌套
if 嵌套, 是指在一个 if(elif else) 中嵌套另一个 if.
使用场景: 判断条件存在递进关系(只有第一个条件满足了,才会判断第二个条件)
if 判断条件1:判断条件1成立,执行的代码if 判断条件2:判断条件2成立,执行的代码else:判断条件2不成立,执行的代码
else:判断条件1不成立,执行的代码
2.6.1 代码案例
取款机取钱的过程, 假定 你的密码是: 123456, 账户余额为 1000
1. 提示用户输入密码
2. 判断密码是否正确
3. 密码正确后,提示输入取款的金额,
4. 判断取款的金额和余额的关系
# 取款机取钱的过程, 假定 你的密码是: 123456, 账户余额为 1000
pwd = '123456' # 可以预先定义变量,也可以在判断的时候直接使用
money = 1000 # 可以预先定义变量,也可以在判断的时候直接使用
# 1. 提示用户输入密码
password = input('请输入密码:')
# 2. 判断密码是否正确
if password == pwd:print('密码正确,登录成功')# 3. 密码正确后,提示输入取款的金额,get_money = int(input('请输入要取款的金额:'))# 4. 判断取款的金额和余额的关系if money >= get_money:print('取款成功')else:print('余额不足')
else:print('密码有误,请再次尝试')
2.6.2 练习
假定某网站用户名固定为 'admin', 密码固定为'123456', 验证码 固定为 '8888'
1. 获取用户输入的用户名,密码和验证码
2. 先判断验证码是否正确,如果正确打印输出验证码正确,再判断用户名和密码是否正确
3. 如果验证吗不正确,直接输出 验证码不正确,请重新输入
# 假定某网站用户名固定为 'admin', 密码固定为'123456', 验证码 固定为 '8888'
# 1. 获取用户输入的用户名,密码和验证码
username = input('请输入用户名:')
pwd = input('请输入密码:')
code = input('请输入验证码:')
# 2. 先判断验证码是否正确,如果正确打印输出验证码正确,再判断用户名和密码是否正确
if code == '8888':print('验证码正确')# 再判断用户名和密码是否正确if username == 'admin' and pwd == '123456':print('用户名密码正确,登录成功')else:print('用户名或者密码错误,请再次尝试')
# 3. 如果验证吗不正确,直接输出 验证码不正确,请重新输入
else:print('验证码不正确')
2.6.3 案例: 猜拳游戏
剪刀 石头 布
剪刀 赢 布
石头 赢 剪刀
布 赢 石头
2.6.3.1案例的步骤:
1. 自己出拳(石头(1)/剪刀(2)/布(3)) input (player)
2. 电脑随机出拳 (使用随机数模块(工具)完成) (computer)
3. 判断输赢
3.1 玩家胜利
3.1.1 player==1 and computer == 2
or
3.1.2 player==2 and computer == 3
or
3.1.3 player==3 and computer == 1
3.2 平局 player == computer
3.3 玩家输了 else
2.6.3.2 随机出拳
案例中需要电脑随机出拳,即随机出 1 2 3
在 Python 中想要随机获得整数数字可以使用如下方法
# 1. 导入随机数工具包
import random
# 2. 使用工具包中的工具产生指定范围内的数字
random.randint(a, b) # 产生[a, b] 之间的随机整数,包含 a b 的
import random # 这行代码习惯性的放在第一行
num = random.randint(1, 3)
print(num)
2.6.3.3 代码
import random
# 1. 自己出拳(石头(1)/剪刀(2)/布(3)) input (player)
player = int(input('请出拳石头(1)/剪刀(2)/布(3):')) # 不要忘了类型转换
# 2. 电脑随机出拳 (使用随机数模块(工具)完成) (computer)
computer = random.randint(1, 3)
# 3. 判断输赢
# 3.1 玩家胜利
if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):print('恭喜你获得胜利')
# 3.2 平局 player == computer
elif player == computer:print('平局')
# 3.3 玩家输了 else
else:print('输了, 不要放弃, 再来一局')
相关文章:
10天玩转Python第2天:python判断语句基础示例全面详解与代码练习
目录 1.课程之前1.1 复习和反馈1.2 作业1.3 今日内容1.4 字符串格式化的补充1.5 运算符1.5.1 逻辑运算符1.5.2 赋值运算符1.5.3 运算符优先 2.判断2.1 if 的基本结构2.1.1 基本语法2.1.2 代码案例2.1.3 练习 2.2 if else 结构2.2.1 基本语法2.2.2 代码案例2.2.3 练习 2.3 if 和…...
2024年网络安全竞赛-网站渗透
网站渗透 (一)拓扑图 1.使用渗透机对服务器信息收集,并将服务器中网站服务端口号作为flag提交; 使用nmap工具对靶机进行信息收集 2.使用渗透机对服务器信息收集,将网站的名称作为flag提交; 访问页面即可 3.使用渗透机对服务器渗透,将可渗透页面的名称作为flag提交…...
kafka学习笔记--基础知识概述
本文内容来自尚硅谷B站公开教学视频,仅做个人总结、学习、复习使用,任何对此文章的引用,应当说明源出处为尚硅谷,不得用于商业用途。 如有侵权、联系速删 视频教程链接:【尚硅谷】Kafka3.x教程(从入门到调优…...
聊聊AsyncHttpClient的KeepAliveStrategy
序 本文主要研究一下AsyncHttpClient的KeepAliveStrategy KeepAliveStrategy org/asynchttpclient/channel/KeepAliveStrategy.java public interface KeepAliveStrategy {/*** Determines whether the connection should be kept alive after this HTTP message exchange.…...
视频推拉流直播点播EasyDSS平台点播文件加密存储的实现方法
视频推拉流直播点播系统EasyDSS平台,可提供流畅的视频直播、点播、视频推拉流、转码、管理、分发、录像、检索、时移回看等功能,可兼容多操作系统,还能支持CDN转推,具备较强的可拓展性与灵活性,在直播点播领域具有广泛…...
LVGL——按钮部件
目录 一、组成部分 二、按钮部件操作 1、创建 2、设置样式 3、添加事件 4、代码例程 三、按钮部件案例 一、组成部分 主体(LV_PART_MAIN) 二、按钮部件操作 1、创建 lv_obj_t *btn lv_btn_create( parent );2、设置样式 lv_obj_set_siz…...
RE2文本匹配调优实战
引言 在RE2文本匹配实战的最后,博主说过会结合词向量以及其他技巧来对效果进行调优,本篇文章对整个过程进行详细记录。其他文本匹配系列实战后续也会进行类似的调优,方法是一样的,不再赘述。 本文所用到的词向量可以在Gensim训练…...
Java - 线程间的通信方式
线程通信的方式 线程中通信是指多个线程之间通过某种机制进行协调和交互 线程通信主要可以分为三种方式,分别为共享内存、消息传递和管道流。每种方式有不同的方法来实现 共享内存:线程之间共享程序的公共状态,线程之间通过读-写内存中的公…...
【计算机网络】HTTP响应报文Cookie原理
目录 HTTP响应报文格式 一. 状态行 状态码与状态码描述 二. 响应头 Cookie原理 一. 前因 二. Cookie的状态管理 结束语 HTTP响应报文格式 HTTP响应报文分为四部分 状态行:包含三部分:协议版本,状态码,状态码描述响应头&a…...
2023年度盘点:智能汽车、自动驾驶、车联网必读书单
【文末送书】今天推荐几本自动驾驶领域优质书籍 前言 2023年,智能驾驶和新能源汽车行业仍然有着肉眼可见的新进展。自动驾驶技术继续尝试从辅助驾驶向自动驾驶的过渡,更重要的是相关技术成本的下降。根据《全球电动汽车展望2023》等行业报告,…...
一文讲解如何从 Clickhouse 迁移数据至 DolphinDB
ClickHouse 是 Yandex 公司于2016年开源的 OLAP 列式数据库管理系统,主要用于 WEB 流量分析。凭借面向列式存储、支持数据压缩、完备的 DBMS 功能、多核心并行处理的特点,ClickHouse 被广泛应用于广告流量、移动分析、网站分析等领域。 DolphinDB 是一款…...
[足式机器人]Part2 Dr. CAN学习笔记-数学基础Ch0-5Laplace Transform of Convolution卷积的拉普拉斯变换
本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-数学基础Ch0-5Laplace Transform of Convolution卷积的拉普拉斯变换 Laplace Transform : X ( s ) L [ x ( t ) ] ∫ 0 ∞ x ( t ) e − s t d t X\left( s \right) \mathcal{L} \left[ x\lef…...
生产问题: 利用线程Thread预加载数据缓存,其它类全局变量获取缓存偶发加载不到
生产问题: 利用线程Thread预加载数据缓存偶发加载不到 先上代码 public class ThreadTest {//本地缓存Map<String, Object> map new HashMap<String, Object>();class ThreadA implements Runnable{Overridepublic void run() {System.out.println("Thread…...
Elasticsearch mapping 之 性能相关配置
ES 常见类型 通用类型: 二进制: binary 布尔型: boolean 字符串: keyword, constant_keyword, wildcard, text 别名: alias 对象: object, flattened, nested, join 结构化数据类型: Range, ip, version, murmur3 空间数据类型: geo_point, geo_shape, point, shape 性…...
adb push报错:remote couldn‘t create file: Is a directory
adb push报错:remote couldn‘t create file: Is a directory 出现这个问题可能是电脑本地目录中包含中文或者是目录地址中多包含了一个/ 比如说以下两种路径 1. test/测试音频文件1/a.mp3 2.test/test_audio/ 这两种都是不可以的(我是在as中执行的…...
GitLab 服务更换了机器,IP 地址或域名没有变化时,可能会出现无法拉取或提交代码的情况。
当 GitLab 服务更换了机器,但 IP 地址或域名没有变化时,可能会出现无法拉取或提交代码的情况。 这可能是由于 SSH 密钥或 SSL 证书发生了变化。以下是一些可能的解决步骤: 这可能是由于 SSH 密钥或 SSL 证书发生了变化。以下是一些可能的解决…...
【华为OD题库-076】执行时长/GPU算力-Java
题目 为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。 假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下&…...
持续集成交付CICD:Jenkins使用GitLab共享库实现前后端项目Sonarqube
目录 一、实验 1.Jenkins使用GitLab共享库实现后端项目Sonarqube 2.优化GitLab共享库 3.Jenkins使用GitLab共享库实现前端项目Sonarqube 4.Jenkins通过插件方式进行优化 二、问题 1.sonar-scanner 未找到命令 2.npm 未找到命令 一、实验 1.Jenkins使用GitLab共享库实现…...
Linux文件结构与文件权限
基于centos了解Linux文件结构 了解一下文件类型 Linux采用的一切皆文件的思想,将硬件设备、软件等所有数据信息都以文件的形式呈现在用户面前,这就使得我们对计算机的管理更加方便。所以本篇文章会对Linux操作系统的文件结构和文件权限进行讲解。 首先…...
CentOS上安装和配置Apache HTTP服务器
在CentOS系统上安装和配置Apache HTTP服务器可以为您的网站提供可靠的托管环境。Apache是开源的Web服务器软件,具有广泛的支持和强大的功能。下面是在CentOS上安装和配置Apache HTTP服务器的步骤: 步骤一:安装Apache HTTP服务器 打开终端&am…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
