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

【爆肝34万字】从零开始学Python第2天: 判断语句【入门到放弃】

目录

  • 前言
  • 判断语句
      • `True`、`False`
          • 简单使用
          • 作用
      • 比较运算符
          • 引入
          • 比较运算符的分类
          • 比较运算符的结果
          • 示例代码
          • 总结
      • 逻辑运算符
          • 引入
          • 逻辑运算符的简单使用
          • 逻辑运算符与比较运算符一起使用
          • 特殊情况下的逻辑运算符
      • if 判断语句
          • 引入
          • 基本使用
          • 案例演示
          • 案例补充
          • 随堂练习
      • else 判断子句
          • 引入
          • else 与 if 配合使用
          • 随堂练习
      • elif 判断子句
          • elif 使用
          • 示例代码
          • 注意点
          • 总结
      • if 嵌套
          • 引入
          • if 嵌套的格式
          • 示例代码
          • 随堂练习
      • if 代码案例
          • 参考代码
  • 总结
      • 1.条件分支
      • 2.逻辑控制
      • 3.代码复用
      • 4.错误处理
      • 5.优化性能
      • 6.可读性增强

前言

昨天我们写下了第一个程序,今天我们开始来肝一波判断语句!
在Python中,判断语句(也称为条件语句或控制流语句)用于根据某个条件(或一组条件)的真假来决定程序的执行流程。这些语句允许你编写可以根据不同条件执行不同操作的程序,从而实现更复杂和灵活的逻辑。
博主特意爆肝34万字,后续会跟大家一起重走一遍Python路~
要是等不及我发布的可以在底下找到博主名片
我把我个人博客地址及访问密码给到你
在这里插入图片描述

判断语句

TrueFalse

Python中的常见数据类型像整型浮点型字符串型之前我们都见过了,除了这些类型之外还有一些,本节课我们来看布尔类型

布尔类型只有两种结果

  • True
  • False

Ture:表示 ‘真’ ,通俗的说表示 ‘成立’

False:表示 ‘假’,通俗的说表示 ‘不成立’

简单使用

示例如下:

have_money = True  # 定义一个变量存储布尔类型数据True
have_friends = False  # 定义了一个变量存储布尔类型数据False
作用

因为布尔类型的数据只有2种结果,所以这种数据类型往往用在"判断"的场景。

简单示例如下:

have_money = True
if have_money:print("你有钱啊,是否有才华就不一定哦...")
else:print("是否有才华不一定,但一定没有钱,^_^...")

运行效果:

你有钱啊,是否有才华就不一定哦...

提示:具体的应用会在学习if时会讲解

比较运算符

引入

如果定义一个变量直接赋值为True或者False这种场景有,但有时我们需要让程序自己计算某个表达式,这个式子的结果是True或者False这样,在配合上if或者while等应用就会显得更加灵活

比较运算符的分类
比较运算符描述示例
==检查两个操作数的值是否相等,如果是则条件变为真。a=3,b=3,则a == b True
!=检查两个操作数的值是否相等,如果值不相等,则条件变为真。a=1,b=3,则a != b True
>检查左操作数的值是否大于右操作数的值,如果是,则条件成立。a=7,b=3,则a > b True
<检查左操作数的值是否小于右操作数的值,如果是,则条件成立。a=7,b=3,则a < bFalse
>=检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。a=3,b=3,则a >= bTrue
<=检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。a=3,b=3,则a <= bTrue
比较运算符的结果

比较运算符的结果一定是True或者False

例如:

100 > 50  # 结果就是True
100 < 50  # 结果就是False
示例代码

用Python交互模式的示例代码如下:

>>> ## 比较运算符
... 
>>> # == 等于:表示左右两个操作数是否相等,如果相等则整个表达式的值为 True;不相等则为False
... num1 = 15
>>> num2 = 20
>>> 
>>> print(num1 == num2)
False
>>> 
>>> # != 不等于
... print(num1 != num2)
True
>>> 
>>> # > 大于
... print(num1 > num2)
False
>>> 
>>> # < 小于
... print(num1 < num2)
True
>>> 
>>> # >= 大于等于: num1 大于 或者 等于 num2 ,条件都成立
... print(num1 >= num2)
False
>>> 
>>> # <= 小于等于: num1 小于 或者 等于 num2 ,条件都成立
... print(num1 <= num2)
True
>>> 
>>> if num1 >= num2:
...     print("条件成立!")
... 
>>> 
总结
  • 把生活中的大于、小于、等于、不等于、大于或者等于、小于或者等于用><==!=>=<=来表示
  • >=表示的意思是:小于或者等于 只要满足那么结果就是True否则为False
  • <=表示的意思是:小于或者等于 只要满足那么结果就是True否则为False
  • 注意等于用==表示,而不是=

逻辑运算符

引入

通过比较运算符我们知道,当比较数据大小、是否相等时,可以直接用><==!=>=<=来操作

但是,有很多时候不仅仅是简单的对比大小还有:并且或者

举个例子:

  • 成年并且女性
  • 本科生或者研究生
  • 是18周岁以下学生

为了能够实现并且或者Python提供了逻辑运算符

  • and实现并且的功能
  • or实现或者的功能
  • not实现的功能
'并且'、'或者'、'不': 是为了大家好理解,我给它们起的名字,但是专业术语中把它们称之为:与、或、非
逻辑运算符的简单使用

and

实现的功能,通俗的说就是并且

一般的用法:两边都为True,结果才为True

例如:

100 > 50 and 90 < 200  # 100 > 50结果为True  90 < 200结果为True,就相当于 True and True 所以最后结果是True

or

实现的功能,通俗的说就是或者

一般的用法:两边只要有一个True,结果就为True

例如:

100 > 50 or 90 > 200  # 100 > 50结果为True  90 > 200结果为False,就相当于 True or False 所以最后结果是True

not

实现的功能,通俗的说就是

一般的用法:之前结果为True,那么not True就是False,如果之前是False,那么not False就是True

例如:

not (100 > 50)  # 结果为False,本来100>50的结果是True,但前面加了not就相当于反义,所以最后结果为False
not (100 < 50)  # 结果为True, 本来100<50的结果是False, 但前面加了not其反义的作用,所以最后结果是True
逻辑运算符与比较运算符一起使用

示例一:

  • 需求:怎样判断用户名与密码同时都相同呢?

参考代码如下:

name = input("请输入用户名:")  # 获取用户名
password = input("请输入密码:")  # 获取密码print("用户名和密码能校验通过吗?")
print(name == "顾安" and password == "123456")  # 输出用户名与密码是否相同

示例二:

  • 需求:怎样实现老板或者领导就能开门呢?

参考代码如下:

role = "老板"  # 定义角色变量,存储职位print("能开门吗?")
print(role == "老板" or role == "领导")  # 输出结果

示例三:

  • 需求:怎样实现不小于18岁的判断呢?

参考代码如下:

age = 20print("大于18岁吗?")
print(age > 18)  # 方式一:直接用比较运算符
print(not(age <= 18))  # 方式二:用了比较运算符与逻辑运算符

示例四:

  • 需求:年龄在18~50之间的女性

参考代码如下:

age = 20
gender = "女性"print("符合要求吗?")
print(18 <= age <= 50 and gender == "女性")  # 方式1:简单的写法
print(age >= 18 and age <= 50 and gender == "女性")  # 方式2:一般的写法

示例五:

  • 需求:年龄在1860岁之间的男性或者年龄在1850岁之间的女性

参考代码如下:

age = 20
gender = "男性"print("符合要求吗?")
print((18 <= age <=50 and gender == "女性") or (18 <= age <= 60 and gender == "男性"))
特殊情况下的逻辑运算符

我们一般用逻辑运算符时,左右两边的结果是True或者False,最后得到一个True或者False

但,有时逻辑运算符的左右两边不是True或者False,这种情况我们就需要小心一点

and

看下面的示例,猜猜看,结果是多少

print(100 and 200)  # 输出什么呢?
print(100 and 100 > 50)  # 输出什么呢?
print(0 and 200)  # 输出什么呢?
print(0 and 100 > 50)  # 输出什么呢?

运行结果:

200
True
0
0

为什么呢?

答:想要搞懂这个问题,需要有2点

第1点:

Python中是有布尔类型的也就是TrueFalseTrue表示False表示,而在一些其它编程语言中没有,例如C语言中是没有布尔类型的,因此C语言为了能够表示出,就发明了一个规定,只要数字不是0 无论是正数还是负数 统统表示,只要是0就表示

后来,虽然Python发明了TrueFalse,但它依然保留了C语言中的这种开发者都已经习以为常的习惯,所以Python中也用:

  • 非0表示
  • 0表示

第2点:

我们知道and实现的是两边都是True最后结果才是True,否则是False,但是它有个隐藏的功能,

如果左边的表达式不是True那么右边根本不会执行,且将左侧的值当做最后结果

如果左边的表达式是True那么右边才会执行,且将右侧的值当做最后的结果

之所以有这个隐藏的功能是因为:and的功能,既然左侧已经为了,也就没有必要看右边了,结果一定是,只不过此时把左侧的结果当做最后结果而已。

根据上述2点来看:

  • print(100 and 200),因为100不是0 所以and左边为,接下来执行右边,此时将200当做最后的结果

  • print(100 and 100>50),因为100不是0 所以为,执行右边 100>50且将它的结果当做最后的结果,所以最后为True

  • print(0 and 200),因为and左侧为0 所以为,不会执行右边,且将左边的结果当做最后结果,所以最后为0

  • print(0 and 100>50),原因与上一条一样,结果为0

or

有了前面and的额外经验,我们再看or时就简单多了

or的特殊规则如下:

  • 如果左边为,那么就把左边的值当做最后的结果
  • 如果左右为,那么就把右边的值当做最后的结果

or之所以有这样功能是因为:or的功能,既然左侧已经为了,也就没有必要看右边了,结果一定是,只不过此时把左侧的结果当做最后结果而已

代码示例:

print(100 or 200)  # 输出什么呢?
print(100 or 100>50)  # 输出什么呢?
print(0 or 200)  # 输出什么呢?
print(0 or 100>50)  # 输出什么呢?

运行结果:

100
100
200
True

总结

逻辑运算符表达式描述实例
andx and y布尔"与":如果 x Falsex and y 返回 False,否则它返回 y 的值True and False, 返回 False
orx or y布尔"或":如果 x True,它返回 True,否则它返回 y 的值False or True, 返回 True
notnot x布尔"非":如果 xTrue,返回 False 。如果 xFalse,它返回 Truenot True 返回 False, not False 返回 True

if 判断语句

引入

很多时候当我们打开某个App,需要输入用户名和密码,如果正确那么就可以登录,否则不让使用

在我们身边这样场景有很多很多,想要实现这样的功能那我们就需要学习if判断

基本使用

if是用来进行判断的,其使用格式如下:

if 要判断的条件:条件成立时,要做的事情

示例代码如下:

age = 30
print('----if判断开始----')
if age >= 18:print('已经成年了')  # 当前代码处有缩进 缩进为4个空格 一个Tab键
print('----if判断结束----')

注意:

  • if判断总体来说:当条件满足后就要做某些事情,这些事情以及if它们是一个整体
  • 如果if条件成立后,要做的事情有很多,那么都需要在行首缩进4个空格(只需要敲一个tab键,Pycharm就会自动换行为4个空格)

示例代码如下:

age = 30
print('----if判断开始----')
if age >= 18:# 如果当前条件不成立则以下三句print都不会打印print('我已经成年了')print('我该懂事了')print('尽快学完python开发出去赚钱了')
print('----if判断结束----')  # 此处代码没有缩进 表示当前打印语句不在if语句控制范围之内,无论if条件是否成立都会执行
案例演示

代码:

age = 30
print("------if判断开始------")
if age >= 18:print("我已经成年了")print("我该懂事了")print("尽快学完python开发出去赚钱了")
print("------if判断结束------")

结果:

------if判断开始------
我已经成年了
我该懂事了
尽快学完python开发出去赚钱了
------if判断结束------

说明:

  • age的值是30,所以age >= 18的结果是True,所以就会执行3个print

代码:

age = 16
print("------if判断开始------")
if age >= 18:print("我已经成年了")
print("------if判断结束------")

结果:

------if判断开始------
------if判断结束------

说明:

  • age的值是16,所以age >= 18的结果是False,所以不会执行print("我已经成年了")
案例补充

示例一:

cool = True
money = 2000000
height = 178if cool == True and money >= 1000000 and height >= 176:# 如果3个条件头满足,那么就是 高富帅print("恭喜你,你是高富帅")

示例二:

name = input("请输入用户名:")
password = input("请输入密码:")if name == "顾安" and password == "123456":print("登录成功...")
随堂练习

要求:从键盘获取自己的年龄,判断是否大于或者等于18岁,如果满足就输出“哥,已成年,网吧可以去了”

  1. 使用input从键盘中获取数据,并且存入到一个变量中
  2. 使用if语句,来判断 age >= 18是否成立

else 判断子句

引入

想一想:在使用if的时候,它只能做到满足条件时要做的事情。那需要在不满足条件的时候做某些事,该怎么办呢?

答:使用 else

else 与 if 配合使用

格式如下:

if 条件:满足条件时要做的事情1满足条件时要做的事情2满足条件时要做的事情3...(省略)...
else:不满足条件时要做的事情1不满足条件时要做的事情2不满足条件时要做的事情3...(省略)...

示例一:

ticket = True   # 用True代表有车票,False代表没有车票
if ticket == True:print("有车票,可以上火车")print("终于可以见到Ta了,美滋滋~~~")
else:print("没有车票,不能上车")print("亲爱的,那就下次见了"

结果一:

有车票,可以上火车
终于可以见到Ta了,美滋滋~~~

结果二:

没有车票,不能上车
亲爱的,那就下次见了

注意:

  • 无论是在if语句还是在else子句控制的代码之下都需要进行代码缩进!
随堂练习

要求:从键盘输入身高,如果身高没有超过150cm,则进动物园不用买票,否则需要买票。

提示:input获取的数据不是整数类型,需要用int()转换,例如int("100")结果就是整数100

参考代码:

height = input("请输入身高:")  # 获取身高
height = int(height)  # 类型转换为整数,只有整数才能比较大小
if height <= 150:print("可以直接入园,无需购票")
else:print("请先购票,再入园")

elif 判断子句

if能完成条件满足时做可以执行某些代码

if-else能完成条件满足时执行某些代码,不满足时执行另外一些代码

如果有这样一种情况:当条件1满足时做事情1;条件2满足时做事情2;条件3满足时做事情3,那该怎么实现呢?

答:elif

elif 使用

elif的使用格式如下:

if 条件1:事情1
elif 条件2:事情2
elif 条件3:事情3
# ...省略N个条件...
elif 条件n:事情n
else:以上条件都满足时执行的代码

说明一:执行流程

  • 当条件1满足时,执行事情1,然后整个if结束
  • 当条件1不满足条件2满足时,则执行事情2,然后整个if结束
  • 当条件1、条件2不满足条件3满足时,则执行事情3,然后整个if结束
  • 依次类推,如果条件1、条件2、条件3.。。。。条件n-1都不满足且条件n满足,则执行事情n,然后整个if结束
  • 如果没有任何条件满足,那么就执行else中的事情

说明二:else

  • else不是必须的,根据实际情况决定是否添加,如果所有条件满足时做的事情很明确,且没有全部都不满足的时候,此时就不用写
  • 如果当前能考虑的条件都有对应的代码,但不能保证所有条件都考虑到了,此时建议写上else
示例代码
score = 77  # 定义变量存储分数if score >= 90 and score <= 100:  # 如果分数在90~100print('本次考试,等级为A')
elif score >= 80 and score < 90:  # 如果分数在80~90print('本次考试,等级为B')
elif score >= 70 and score < 80:  # 如果分数在70~80print('本次考试,等级为C')
elif score >= 60 and score < 70:  # 如果分数在60~70print('本次考试,等级为D')
elif score >= 0 and score < 60:  # 如果分数在60以下print('本次考试,等级为E')
else:  # 如果分数不在0~100之间,就认为错误print("分数有误...")
注意点

if判断中,最多只能有1个else,但可以有N个elif,必须有1个if

下面的写法是错误的

错误示范1:一个if最多有1个else

if 100 > 60:print("哈哈哈1")
else:print("哈哈哈2")
else:print("哈哈哈3")

错误示范2:一个if判断必须有1个if

else:print("哈哈哈2")
总结

到现在为止,if总体来说学习了3种

  • 第1种:只判断一个条件,我们用if来实现
  • 第2种:可判断2个条件(满足、不满足),我们用if...else...来实现
  • 第3种:可以判断N个条件,我们用if...elif...elif...else...来实现

if 嵌套

引入

想一想:

坐火车或者地铁的实际情况是:先进行安检如果安检通过才会判断是否有车票,或者是先检查是否有车票之后才会进行安检,即实际的情况先对某个条件进行判断然后再判断另外一个条件的,这样的情况该怎样解决呢?

答:

if嵌套

if 嵌套的格式
if 条件1:满足条件1时可以做的事情满足条件1时可以做的事情...if 条件2:满足条件2时可以做的事情满足条件2时可以做的事情...

说明

  • 外层if与内层if至于是3种if判断的哪一种都是可以的,根据实际情况来决定
示例代码

外层是if...else...内层也是if...else...

ticket = True # 用True代表有车票,False代表没有车票
knife_length = 9  # 刀子的长度,单位为cmif ticket == 1:print("有车票,可以进站")if knife_lenght < 10:print("通过安检")print("终于可以见到Ta了,美滋滋~~~")else:print("没有通过安检")print("刀子的长度超过规定,等待警察处理...")
else:print("没有车票,不能进站")print("亲爱的,那就下次见了")

结果一:ticket = True knife_lenght = 9

有车票,可以进站
通过安检
终于可以见到Ta了,美滋滋~~~

结果二:ticket = True knife_lenght = 20

有车票,可以进站
没有通过安检
刀子的长度超过规定,等待警察处理...

结果三:ticket = False knife_lenght = 9

没有车票,不能进站
亲爱的,那就下次见了

结果四:ticket = False knife_lenght = 20

没有车票,不能进站
亲爱的,那就下次见了

想一想:

为什么结果三结果四相同???

随堂练习

情节描述:上公交车,并且可以有座位坐下

要求:输入公交卡当前的余额,只要超过2元,就可以上公交车;如果车上有空座位,就可以坐下

请编写代码实现上述要求

if 代码案例

参考代码
import randomplayer = input('请输入:剪刀(0)  石头(1)  布(2):')
player = int(player)# 生成一个随机整数:0、1、2 中的某一个
computer = random.randint(0,2)# 用来进行测试
# print('player=%d,computer=%d' % (player,computer))if ((player == 0) and (computer == 2)) or ((player == 1) and (computer == 0)) or ((player == 2) and (computer == 1)):print('获胜,哈哈,你太厉害了')
elif player == computer:print('平局,要不再来一局')
else:print('输了,不要走,洗洗手接着来,决战到天亮')

总结

Python中的判断语句作用如下:

1.条件分支

判断语句允许程序根据一个或多个条件的真假来选择不同的执行路径。这使得程序能够处理多种不同的情况,而不仅仅是按照预定的顺序执行。

2.逻辑控制

通过逻辑操作符(如and、or、not)和比较操作符(如==、<、>等),判断语句可以构建复杂的逻辑表达式,实现精细的逻辑控制。

3.代码复用

通过将公共的代码块放在if、elif或else的分支中,可以避免在多个地方重复编写相同的代码,提高代码复用性。

4.错误处理

判断语句可以用于检查输入的有效性、处理异常情况或避免潜在的错误。例如,可以在读取用户输入之前检查其是否为空或是否符合预期的格式。

5.优化性能

在某些情况下,通过判断语句可以避免不必要的计算或操作,从而提高程序的性能。例如,可以根据条件选择性地执行某些耗时的操作。

6.可读性增强

通过明确的条件分支和逻辑控制,判断语句可以使代码更加清晰、易于理解和维护。这对于团队合作和长期项目尤为重要。
总之,Python中的判断语句是编写高效、健壮和可维护代码的重要工具。它们通过条件分支和逻辑控制来指导程序的执行流程,使得程序能够灵活地应对各种情况。

相关文章:

【爆肝34万字】从零开始学Python第2天: 判断语句【入门到放弃】

目录 前言判断语句True、False简单使用作用 比较运算符引入比较运算符的分类比较运算符的结果示例代码总结 逻辑运算符引入逻辑运算符的简单使用逻辑运算符与比较运算符一起使用特殊情况下的逻辑运算符 if 判断语句引入基本使用案例演示案例补充随堂练习 else 判断子句引入else…...

React 19 新特性集合

前言&#xff1a;https://juejin.cn/post/7337207433868197915 新 React 版本信息 伴随 React v19 Beta 的发布&#xff0c;React v18.3 也一并发布。 React v18.3相比最后一个 React v18 的版本 v18.2 &#xff0c;v18.3 添加了一些警告提示&#xff0c;便于尽早发现问题&a…...

耐高温水位传感器有哪些

耐高温水位传感器在现代液位检测技术中扮演着重要角色&#xff0c;特别适用于需要高温环境下稳定工作的应用场合。这类传感器的设计和材质选择对其性能和可靠性至关重要。 一种典型的耐高温水位传感器是FS-IR2016D&#xff0c;它采用了PPSU作为主要材质。PPSU具有优良的耐高温…...

Symfony国际化与本地化:打造多语言应用的秘诀

标题&#xff1a;Symfony国际化与本地化&#xff1a;打造多语言应用的秘诀 摘要 Symfony是一个高度灵活的PHP框架&#xff0c;用于创建Web应用程序。它提供了强大的国际化&#xff08;i18n&#xff09;和本地化&#xff08;l10n&#xff09;功能&#xff0c;允许开发者轻松创…...

ApolloClient GraphQL 与 ReactNative

要在 React Native 应用程序中设置使用 GraphQL 的简单示例&#xff0c;您需要遵循以下步骤&#xff1a; 设置一个 React Native 项目。安装 GraphQL 必要的依赖项。创建一个基本的 GraphQL 服务器&#xff08;或使用公共 GraphQL 端点&#xff09;。从 React Native 应用中的…...

【贡献法】2262. 字符串的总引力

本文涉及知识点 贡献法 LeetCode2262. 字符串的总引力 字符串的 引力 定义为&#xff1a;字符串中 不同 字符的数量。 例如&#xff0c;“abbca” 的引力为 3 &#xff0c;因为其中有 3 个不同字符 ‘a’、‘b’ 和 ‘c’ 。 给你一个字符串 s &#xff0c;返回 其所有子字符…...

C#基于SkiaSharp实现印章管理(3)

本系列第一篇文章中创建的基本框架限定了印章形状为矩形&#xff0c;但常用的印章有方形、圆形等多种形状&#xff0c;本文调整程序以支持定义并显示矩形、圆角矩形、圆形、椭圆等4种形式的印章背景形状。   定义印章背景形状枚举类型&#xff0c;矩形、圆形、椭圆相关的尺寸…...

如何理解泛型的编译期检查

既然说类型变量会在编译的时候擦除掉&#xff0c;那为什么我们往 ArrayList 创建的对象中添加整数会报错呢&#xff1f;不是说泛型变量String会在编译的时候变为Object类型吗&#xff1f;为什么不能存别的类型呢&#xff1f;既然类型擦除了&#xff0c;如何保证我们只能使用泛型…...

计算机组成原理:海明校验

在上图中&#xff0c;对绿色的7比特数据进行海明校验&#xff0c;需要添加紫色的4比特校验位&#xff0c;总共是蓝色的11比特。紫色的校验位pi分布于蓝色的hi的1, 2, 4, 8, 16, 32, 64位&#xff0c;是2i-1位。绿色的数据位bi分布于剩下的位。 在下图中&#xff0c;b1位于h3&a…...

信息学奥赛初赛天天练-39-CSP-J2021基础题-哈夫曼树、哈夫曼编码、贪心算法、满二叉树、完全二叉树、前中后缀表达式转换

PDF文档公众号回复关键字:20240629 2022 CSP-J 选择题 单项选择题&#xff08;共15题&#xff0c;每题2分&#xff0c;共计30分&#xff1a;每题有且仅有一个正确选项&#xff09; 5.对于入栈顺序为a,b,c,d,e的序列&#xff0c;下列( )不合法的出栈序列 A. a&#xff0c;b&a…...

第11章 规划过程组(收集需求)

第11章 规划过程组&#xff08;一&#xff09;11.3收集需求&#xff0c;在第三版教材第377~378页&#xff1b; 文字图片音频方式 第一个知识点&#xff1a;主要输出 1、需求跟踪矩阵 内容 业务需要、机会、目的和目标 项目目标 项目范围和 WBS 可…...

探索WebKit的守护神:深入Web安全策略

探索WebKit的守护神&#xff1a;深入Web安全策略 在数字化时代&#xff0c;网络已成为我们生活的一部分&#xff0c;而网页浏览器作为我们探索网络世界的窗口&#xff0c;其安全性至关重要。WebKit作为众多流行浏览器的内核&#xff0c;例如Safari&#xff0c;其安全性策略是保…...

unity ScrollRect裁剪ParticleSystem粒子

搜了下大概有这几种方法 通过模板缓存通过shader裁剪区域&#xff1a;案例一&#xff0c;案例二&#xff0c;案例三&#xff0c;三个案例都是类似的方法&#xff0c;需要在c#传入数据到shader通过插件 某乎上的模板缓存方法link&#xff0c;&#xff08;没有登录看不到全文&a…...

凤仪亭 | 第7集 | 大丈夫生居天地之间,岂能郁郁久居人下 | 司徒一言,令我拨云见日,茅塞顿开 | 三国演义 | 逐鹿群雄

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f4cc;这篇博客分享的是《三国演义》文学剧本第Ⅰ部分《群雄逐鹿》的第7️⃣集《凤仪亭》的经典语句和文学剧本全集台词 文章目录 1.经典语句2.文学剧本台词 …...

React实战学习(一)_棋盘设计

需求&#xff1a; 左上侧&#xff1a;状态左下侧&#xff1a;棋盘&#xff0c;保证胜利就结束 和 下过来的不能在下右侧&#xff1a;“时光机”,保证可以回顾&#xff0c;索引 语法&#xff1a; 父子之间属性传递&#xff08;props&#xff09;子父组件传递&#xff08;写法上&…...

【LeetCode】每日一题:三数之和

解题思路 最开始是打算沿着二数之和的思路做&#xff0c;即固定了最大的&#xff0c;然后小的开始遍历&#xff0c;因为这种遍历方式只需要遍历一轮就能完成&#xff0c;所以复杂度应该是O&#xff08;n2&#xff09;&#xff0c;但是最后几个示例还是超时了&#xff0c;可能进…...

逆风而行:提升逆商,让困难成为你前进的动力

一、引言 生活&#xff0c;总是充满了未知与变数。有时&#xff0c;我们会遇到阳光明媚的日子&#xff0c;享受着宁静与和谐&#xff1b;但更多时候&#xff0c;我们却不得不面对那些突如其来的坏事件&#xff0c;如工作的挫折、人际关系的困扰、健康的挑战等。这些事件如同突…...

新能源汽车CAN总线故障定位与干扰排除的几个方法

CAN总线是目前最受欢迎的现场总线之一,在新能源车中有广泛应用。新能源车的CAN总线故障和隐患将影响驾驶体验甚至行车安全,如何进行CAN总线故障定位及干扰排除呢? 目前,国内机动车保有量已经突破三亿大关。由于大量的燃油车带来严峻的环境问题,因此全面禁售燃油车的日程在…...

【涵子来信】——社交宝典:克服你心中的内向,世界总有缺陷

内向&#xff0c;你是内向的吗&#xff1f;想必每个人不同&#xff0c;面对的情形也是不同的。 暑假是一个很好的机会&#xff0c;我是可以去多社交社交。但是&#xff0c;面对着CSDN上这么多技术人er&#xff0c;那么&#xff0c;我的宝典&#xff0c;对于大家&#xff0c;有…...

LabVIEW项目外协时选择公司与个人兼职的比较

​在选择LabVIEW项目外协合作伙伴时&#xff0c;外协公司和个人兼职各有优劣。个人兼职成本较低且灵活&#xff0c;但在可靠性、技术覆盖面、资源和风险管理上存在不足。而外协公司拥有专业团队、丰富资源、完善的项目管理和风险控制&#xff0c;尽管成本较高&#xff0c;但能提…...

汽车电子工程师入门系列——CAN 规范系列通读

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…...

泽众云真机-平台华为机型HarmonyOS NEXT系统已上线!

泽众云真机平台华为机型HarmonyOS NEXT系统已上线&#xff01; 之前文章《泽众云真机-平台即将升级支持华为机型HarmonyOS NEXT系统泽众云真机-平台即将升级支持华为机型HarmonyOS NEXT系统》&#xff0c;为什么要升级HarmonyOS NEXT系统&#xff1f;我们之前有说过&#xff0c…...

AI基础:从线性回归到梯度下降

一个简单的问题&#xff1a; 如果此时你正站在迷路缭绕的山坡上&#xff0c;能见度不高&#xff0c;但是你又想去往最低的山谷的位置&#xff0c;怎么走&#xff1f; 很简单&#xff0c;哪里陡那就往那里走呗——而这就是梯度下降算法的思想。 古话说&#xff1a;“先发制于人…...

AI产品经理面试

把优秀当习惯把优秀当习惯肯定不是口头说说&#xff0c;那有什么判断标准吗&#xff1f; 当我做完一件事儿的时候&#xff0c;我会看它有没有突破我的舒适圈、能不能惊艳到我自己。这就是我的判断标准。 在自我介绍和经历介绍时&#xff0c;面试者应该注重以下几个方面&#xf…...

二进制方式部署consul单机版

1.consul的下载 mkdir -p /root/consul/data && cd /root/consul wget https://releases.hashicorp.com/consul/1.18.0/consul_1.18.0_linux_amd64.zip unzip consul_1.18.0_linux_amd64.zip mv consul /usr/local/bin/ 2.配置文件 // 配置文件路径&#xff1a; /roo…...

SpringBoot整合Quartz实现动态定时任务

目录 1、Quartz简介1.1 Quartz的三大核心组件1.2 CronTrigger配置格式 2、SpringBoot整合Quartz框架2.1 创建项目2.2 实现定时任务 1、Quartz简介 Quartz是一个开源的任务调度服务&#xff0c;它可以独立使用&#xff0c;也可与其它的Java EE&#xff0c;Java SE应用整合使用。…...

qt 用宏控制静态接口的统一

1.概要 /** * 单件宏实验 * 创建一个可以生成单件的宏 * 起因&#xff1a;想让有些控件单件&#xff0c;但是c不支持静态的继承&#xff08;c#支持&#xff09; * 那么如果保证这些接口的统一呢&#xff0c;用宏 */ 2.代码 2.1 a.h #ifndef A_H #define A_H#include &…...

pdf怎么转换成jpg,本地转换还是在线转换?

PDF&#xff08;Portable Document Format&#xff09;和JPG&#xff08;Joint Photographic Experts Group&#xff09;这两种文件格式在我们的日常生活和工作中扮演着举足轻重的角色。PDF因其跨平台、保持原样性强的特点&#xff0c;被广泛应用于文件传输和存储&#xff1b;而…...

【物联网】802.15.4简介

目录 一、概述 二、802.15.4主要特点 2.1 工作频段和数据速率 2.2 支持简单器件 2.3 信标方式和超帧结构 2.4 数据传输和低功耗 三、低功耗 一、概述 802.15.4包括用于低速无线个人域网(LR-WPAN)的物理层和媒体接入控制层两个规范。它能支持消耗功率最少&#xff0c;一般…...

C++基础语法:复制构造函数,赋值构造函数及浅复制,深复制

前言 "打牢基础,万事不愁" .C的基础语法的学习 引入 前一篇帖子C基础语法:类构造函数之普通构造函数-CSDN博客讲了普通构造函数,还有 复制构造函数,赋值运算符以及延伸出来的浅复制和深复制问题,做个补充. 内容主要参考自<<C Prime Plus>> 6th Edition …...

架构是怎样练成的-楼宇监控系统案例

目录 概要 项目背景 原系统设计方案 改进后的设计方案 小结 概要 绝大多数人掌握的架构都是直接学习&#xff0c;慢慢地才能体会到一个架构的好处。架构是一种抽象&#xff0c;是为了复用目的而对代码做的抽象。通过一个项目的改造&#xff0c;理解架构是如何产生的&…...

valgrind使用浅谈

1、Valgrind 简介 Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具&#xff0c;它可在以下平台上运行&#xff1a; X86/Linux、AMD64/Linux、ARM/Linux、ARM64/Linux、PPC32/Linux、PPC64/Linux、PPC64LE/Linu x、S390X/Linux、MIPS32/Linux、MIPS64/Li…...

强化学习专题:强化学习知识梳理(一)

2024/6/23&#xff1a; 前段时间有幸完成了大学期间的第一篇论文。在面试之前复盘一下关于自己论文中DQN的一些相关点。 浅谈主要区别&#xff08;在线 or 离线&#xff09; 首先&#xff0c;一切的开始是强化学习中时序差分方程&#xff0c;这体现了强化学习方法的优化策略。在…...

深入JVM:详解JIT即时编译器

文章目录 深入JVM&#xff1a;详解JIT即时编译器一、序言二、基础概念1、何为JIT即时编译2、热点代码 三、HotSpot内置的即时编译器1、C1编译器2、C2编译器3、分层编译3.1 协作流程 四、常见JIT优化技术1、方法内联2、逃逸分析&#xff08;1&#xff09;同步锁消除&#xff08;…...

ORBSLAM3_ROS_Ubuntu18_04环境搭建安装

orbslam3安装 ORB-SLAM3配置及安装教程&#xff08;2023.3&#xff09;_orbslam3安装-CSDN博客 换源&#xff0c;换成国内的 搜索software 安装工具 sudo apt install git sudo apt update sudo apt install gcc g cmake安装 cmake安装新版本 ubuntu20.04安装cmake详细…...

【opencv - C++ - Ubuntu】putText 显示中文最快方法

话不多说&#xff0c;直接上代码 #include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/freetype.hpp>using namespace std; using namespace cv;int main(void) {Mat image(1000, 1800, CV_8UC3, Scalar(200,162,33));Ptr<freetype::F…...

百度网盘下载速度慢的解决办法

目录 一、背景 二、解决办法 1、点击三个竖点&#xff0c;再点设置 2、点击传输&#xff0c;再点击去开启该功能 3、点击同意&#xff0c;开启优化速率 三、结果 四、备注 一、背景 当你不是百度网盘会员时&#xff0c;你在使用百度网盘下载时&#xff0c;是否下载速度太…...

Python api接口 异步

Python API接口异步编程简介 在现代的软件开发中&#xff0c;大多数应用都需要通过API接口与其他系统进行交互。Python是一种非常流行的编程语言&#xff0c;因此许多开发者选择使用Python来构建他们的API接口。在一些情况下&#xff0c;API接口需要进行异步编程&#xff0c;以…...

Java 和 Kotlin 单例模式写法对比

目录 1、饿汉模式 Java 写法&#xff1a; Kotlin 写法&#xff1a; Kotlin 这段代码反编译&简化后如下&#xff1a; 2、懒汉模式&#xff0c;静态同步方法 Java 写法&#xff1a; Kotlin 写法&#xff1a; Kotlin 这段代码反编译&简化后如下&#xff1a; 3、懒…...

解析connectionReset异常的原因与解决方案

解析connectionReset异常的原因与解决方案 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨Java中connectionReset异常的原因及其解决方案。这…...

mindspore打卡第9天 transformer的encoder和decoder部分

mindspore打卡第9天 transformer的encoder和decoder部分 import mindspore from mindspore import nn from mindspore import ops from mindspore import Tensor from mindspore import dtype as mstypeclass ScaledDotProductAttention(nn.Cell):def __init__(self, dropout_…...

Python实现IPv4地址和16进制互相转换

Python实现IPv4地址和16进制互相转换 import socketdef ip_to_hex16(ipaddr):# 使用 socket 库中的方法将IP地址转换为网络字节序的二进制表示hex_bytes socket.inet_aton(ipaddr)# 将二进制数据转换为整数, 其中byteorderbig 表示使用大端字节序&#xff08;从高位到低位&…...

计算机视觉 | 基于图像处理和边缘检测算法的黄豆计数实验

目录 一、实验原理二、实验步骤1. 图像读取与预处理2. 边缘检测3. 轮廓检测4. 标记轮廓序号 三、实验结果四、完整代码 Hi&#xff0c;大家好&#xff0c;我是半亩花海。 本实验旨在利用 Python 和 OpenCV 库&#xff0c;通过图像处理和边缘检测算法实现黄豆图像的自动识别和计…...

深入分析 Android BroadcastReceiver (七)

文章目录 深入分析 Android BroadcastReceiver (七)1. 高级应用场景1.1 示例&#xff1a;动态权限请求1.2 示例&#xff1a;应用内通知更新 2. 安全性与性能优化2.1 示例&#xff1a;设置权限防止广播攻击2.2 示例&#xff1a;使用 LocalBroadcastManager2.3 示例&#xff1a;在…...

C++中的数据结构

一.STL标准库 结构:STL中有六大组件&#xff0c;分别是&#xff1a;容器&#xff0c;算法&#xff0c;迭代器&#xff0c;仿函数&#xff0c;配接器&#xff0c;配置器&#xff1b;以下分别介绍这六大组件中的最主要的三个。 1.容器 容器来配置存储空间&#xff0c;算法通过…...

武汉星起航:一站式服务,助力亚马逊卖家高效运营,实现收益飞跃

在跨境电商的浪潮中&#xff0c;武汉星起航电子商务有限公司以其独特的一站式跨境电商服务&#xff0c;为众多亚马逊卖家提供了强有力的支持&#xff0c;助力他们在不断发展的市场中脱颖而出&#xff0c;实现收益的大幅提升。 武汉星起航的一站式跨境电商服务&#xff0c;以其…...

从灵感到实践:Kimi辅助完成学术论文选题的文艺之旅

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 昨天我们为大家介绍了ChatGPT辅助完成实现设计&#xff08;AI与学术的交响&#xff1a;ChatGPT辅助下的实验设计新篇章&#xff09;。今天我们再来看看Kimi对于论文选题都能提供哪些帮助…...

华为od-C卷200分题目4 -电脑病毒感染

华为od-C卷200分题目4 -电脑病毒感染 一个局域网内有很多台电脑&#xff0c;分别标注为0 - N-1的数字。相连接的电脑距离不一样&#xff0c;所以感染时间不一样&#xff0c;感染时间用t表示。其中网络内一个电脑被病毒感染&#xff0c;其感染网络内所有的电脑需要最少需要多长…...

show-overflow-tooltip 解决elementui el-table标签自动换行的问题

elementui中 el-table中某一行的高度不想因为宽度不够而撑开换行展示的解决方法。可通过show-overflow-tooltip属性解决&#xff0c;如下 代码是这样的 <el-table-column width"80" prop"id" label"ID"></el-table-column> <el…...

数字社交的领航者:解析Facebook的引领作用

在当今数字化社会中&#xff0c;社交网络已经成为了人们日常生活不可或缺的一部分。而在众多社交平台中&#xff0c;Facebook凭借其巨大的用户基础和创新的技术应用&#xff0c;被公认为数字社交领域的领航者之一。本文将深入解析Facebook在数字社交中的引领作用&#xff0c;探…...

如何用简单的html,css,js写出一个带有背景层的删除弹出框

虽然每次项目都是主要写后端&#xff0c;但是有时候前端的样式太丑了&#xff0c;也有点看不下去。弹出框是项目中用的比较多的&#xff0c;比如删除&#xff0c;修改或者添加什么的&#xff0c;都需要一个弹出框。 所以这里简单记录一下&#xff0c;应该如何实现。实现效果如…...

ASPICE培训:推动汽车行业软件质量的新高度

在当今日新月异的汽车行业中&#xff0c;软件技术已经成为推动行业发展的核心动力。随着智能化、网联化、电动化等趋势的加速&#xff0c;汽车软件的质量和性能要求也越来越高。为了满足这一需求&#xff0c;ASPICE&#xff08;Automotive SPICE&#xff09;标准应运而生&#…...

Python应对反爬虫的策略

Python应对反爬虫的策略 概述User-Agent 伪造应对302重定向IP限制与代理使用Cookies和Session管理动态内容加载数据加密与混淆请求频率限制爬虫检测算法法律与道德考量结语 概述 在数字化时代&#xff0c;网络数据采集已成为获取信息的重要手段之一。然而&#xff0c;随着技术…...

优化Docker部署:解决Java应用ExcelGenerateException并提速镜像构建

在开发和部署应用时&#xff0c;经常会遇到在本地环境运行正常&#xff0c;但迁移到Docker容器后出现特定错误的情况。本篇博客将聚焦于解决一个具体问题&#xff1a;当使用Docker部署包含Excel生成功能的Java应用程序时&#xff0c;遇到ExcelGenerateException的排查与解决方法…...

Linux系统中交叉编译opencv库

目标&#xff1a;将opencv进行交叉编译&#xff0c;使其能在rk3326板子上运行使用。 环境&#xff1a; ubuntu&#xff1a;18.04 opencv:4.5.4 opencv源码从挂网下载&#xff1a;opencv源码下载地址 交叉编译链&#xff1a;gcc-arm-10.3-linux-gun 一.环境准备 1.交叉编译链我…...

【第三版 系统集成项目管理工程师】第5 章 软件工程

持续更新。。。。。。。。。。。。。。。 【第三版】第五章 软件工程 5.1软件工程定义练习 5.2软件需求5.2.1雾求的层次1.业务需求-P2032.用户需求-P2033.系统需求-P203 5.2.2质量功能部署 P2035.2.3需求获取 P2045.2.4需求分析1.结构化分析-P2042.面向对象分析-P207 5.2.5号求…...

优惠升级、流量加码、全生命周期运营指导亚马逊日本站启动“赢在日亚”卖家赋

亚马逊日本站23日宣布正式启动“赢在日亚”卖家赋能计划,将通过优惠升级、流量加码、全生命周期运营指导三大举措,助力中国卖家在亚马逊日本站实现业务增长,把握日本电商发展机遇。赋能计划包含销售佣率下调、新卖家入驻优惠、新品入仓补贴、站内外流量支持、客户经理定制化…...

极氪007开卷了,007新增后驱增强版

极氪开卷了,007新增后驱增强版,价格和原本入门版一样,但是加赠了需要额外选装的舒适套装和科技全感套装,相当于后续智驾版去掉一颗激光雷达和一块NVIDIA DRIVE Orin驾驶辅助芯片,然后减了2万车价。这下极氪007的入门版就很香了,舒适配置齐平高配,仅智驾部分稍弱一些。很…...

2024 年 5 个 GO REST API 框架

什么是API&#xff1f; API是一个软件解决方案&#xff0c;作为中介&#xff0c;使两个应用程序能够相互交互。以下一些特征让API变得更加有用和有价值&#xff1a; 遵守REST和HTTP等易于访问、广泛理解和开发人员友好的标准。API不仅仅是几行代码&#xff1b;这些是为移动开…...

huggingface的self.state与self.control来源(TrainerState与TrainerControl)

文章目录 前言一、huggingface的trainer的self.state与self.control初始化调用二、TrainerState源码解读(self.state)1、huggingface中self.state初始化参数2、TrainerState类的Demo 三、TrainerControl源码解读(self.control)总结 前言 在 Hugging Face 中&#xff0c;self.s…...

使用NuScenes数据集生成ROS Bag文件:深度学习与机器人操作的桥梁

在自动驾驶、机器人导航及环境感知的研究中&#xff0c;高质量的数据集是推动算法发展的关键。NuScenes数据集作为一项开源的多模态自动驾驶数据集&#xff0c;提供了丰富的雷达、激光雷达&#xff08;LiDAR&#xff09;、摄像头等多种传感器数据&#xff0c;是进行多传感器融合…...

C++STL容器系列(三)list的详细用法和底层实现

目录 一&#xff1a;介绍二&#xff1a;list的创建和方法创建list方法 三&#xff1a;list的具体用法3.1 push_back、pop_back、push_front、pop_front3.2 insert() 和 erase()3.3 splice 函数 四&#xff1a;list容器底层实现4.1 list 容器节点结构5.2 list容器迭代器的底层实…...