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

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. 判断年龄是否满足 183. 如果年龄大于等于(满足)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. 判断年龄是否满足 183. 如果年龄大于等于(满足)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站公开教学视频&#xff0c;仅做个人总结、学习、复习使用&#xff0c;任何对此文章的引用&#xff0c;应当说明源出处为尚硅谷&#xff0c;不得用于商业用途。 如有侵权、联系速删 视频教程链接&#xff1a;【尚硅谷】Kafka3.x教程&#xff08;从入门到调优…...

聊聊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平台&#xff0c;可提供流畅的视频直播、点播、视频推拉流、转码、管理、分发、录像、检索、时移回看等功能&#xff0c;可兼容多操作系统&#xff0c;还能支持CDN转推&#xff0c;具备较强的可拓展性与灵活性&#xff0c;在直播点播领域具有广泛…...

LVGL——按钮部件

目录 一、组成部分 二、按钮部件操作 1、创建 2、设置样式 3、添加事件 4、代码例程 三、按钮部件案例 一、组成部分 主体&#xff08;LV_PART_MAIN&#xff09; 二、按钮部件操作 1、创建 lv_obj_t *btn lv_btn_create( parent );2、设置样式 lv_obj_set_siz…...

RE2文本匹配调优实战

引言 在RE2文本匹配实战的最后&#xff0c;博主说过会结合词向量以及其他技巧来对效果进行调优&#xff0c;本篇文章对整个过程进行详细记录。其他文本匹配系列实战后续也会进行类似的调优&#xff0c;方法是一样的&#xff0c;不再赘述。 本文所用到的词向量可以在Gensim训练…...

Java - 线程间的通信方式

线程通信的方式 线程中通信是指多个线程之间通过某种机制进行协调和交互 线程通信主要可以分为三种方式&#xff0c;分别为共享内存、消息传递和管道流。每种方式有不同的方法来实现 共享内存&#xff1a;线程之间共享程序的公共状态&#xff0c;线程之间通过读-写内存中的公…...

【计算机网络】HTTP响应报文Cookie原理

目录 HTTP响应报文格式 一. 状态行 状态码与状态码描述 二. 响应头 Cookie原理 一. 前因 二. Cookie的状态管理 结束语 HTTP响应报文格式 HTTP响应报文分为四部分 状态行&#xff1a;包含三部分&#xff1a;协议版本&#xff0c;状态码&#xff0c;状态码描述响应头&a…...

2023年度盘点:智能汽车、自动驾驶、车联网必读书单

【文末送书】今天推荐几本自动驾驶领域优质书籍 前言 2023年&#xff0c;智能驾驶和新能源汽车行业仍然有着肉眼可见的新进展。自动驾驶技术继续尝试从辅助驾驶向自动驾驶的过渡&#xff0c;更重要的是相关技术成本的下降。根据《全球电动汽车展望2023》等行业报告&#xff0c…...

一文讲解如何从 Clickhouse 迁移数据至 DolphinDB

ClickHouse 是 Yandex 公司于2016年开源的 OLAP 列式数据库管理系统&#xff0c;主要用于 WEB 流量分析。凭借面向列式存储、支持数据压缩、完备的 DBMS 功能、多核心并行处理的特点&#xff0c;ClickHouse 被广泛应用于广告流量、移动分析、网站分析等领域。 DolphinDB 是一款…...

[足式机器人]Part2 Dr. CAN学习笔记-数学基础Ch0-5Laplace Transform of Convolution卷积的拉普拉斯变换

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;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报错&#xff1a;remote couldn‘t create file: Is a directory 出现这个问题可能是电脑本地目录中包含中文或者是目录地址中多包含了一个/ 比如说以下两种路径 1. test/测试音频文件1/a.mp3 2.test/test_audio/ 这两种都是不可以的&#xff08;我是在as中执行的…...

GitLab 服务更换了机器,IP 地址或域名没有变化时,可能会出现无法拉取或提交代码的情况。

当 GitLab 服务更换了机器&#xff0c;但 IP 地址或域名没有变化时&#xff0c;可能会出现无法拉取或提交代码的情况。 这可能是由于 SSH 密钥或 SSL 证书发生了变化。以下是一些可能的解决步骤&#xff1a; 这可能是由于 SSH 密钥或 SSL 证书发生了变化。以下是一些可能的解决…...

【华为OD题库-076】执行时长/GPU算力-Java

题目 为了充分发挥GPU算力&#xff0c;需要尽可能多的将任务交给GPU执行&#xff0c;现在有一个任务数组&#xff0c;数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。 假设GPU最多一次执行n个任务&#xff0c;一次执行耗时1秒&#xff0c;在保证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采用的一切皆文件的思想&#xff0c;将硬件设备、软件等所有数据信息都以文件的形式呈现在用户面前&#xff0c;这就使得我们对计算机的管理更加方便。所以本篇文章会对Linux操作系统的文件结构和文件权限进行讲解。 首先…...

CentOS上安装和配置Apache HTTP服务器

在CentOS系统上安装和配置Apache HTTP服务器可以为您的网站提供可靠的托管环境。Apache是开源的Web服务器软件&#xff0c;具有广泛的支持和强大的功能。下面是在CentOS上安装和配置Apache HTTP服务器的步骤&#xff1a; 步骤一&#xff1a;安装Apache HTTP服务器 打开终端&am…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...