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

Python基础语法(上)

目录

一、print函数及常量表达式

1.print函数

2.常量表达式

二、变量

1.定义变量的规则

2.python的动态类型特性

3.字符串

三、注释

四、input函数

1.input函数

2.变量类型转换

五、运算符

1.算数运算符

2.关系运算符

(1)整形的比较

(2)字符串的比较

(3)浮点数的比较

3.逻辑运算符

(1)逻辑运算符的种类

(2)and和or的短路求值

4.赋值运算符

(1)链式赋值

(2)多元赋值

(3)复合赋值

六、选择语句

1.选择语句的写法

(1)单个if

(2)if与else

(3)if、elif与else

2.python的缩进和代码块

3.空语句pass

七、循环语句

1.while循环

2.for循环

3.break与continue语句


继上篇文章我们准备好python的开发工具后,我们继续在pycharm中书写代码。

注意在pycharm中,按Ctrl+Shift+F10运行代码。

python语言以每一行为一句代码,不需要在最后加上分号。

一、print函数及常量表达式

1.print函数

print()是一个全局的输出函数,可以把内部的内容打印到下面的控制台。

print("hello world")#这是最简单的hello world代码#结果为hello world

python的输出使用fstring类型(function string),在字符串前加f,在需要打印变量值的地方将变量或表达式用{}括起来。

a = 10
print(f"The value of a is {a}")
#输出:The value of a is 10
print(f"The value of a is {a+10}")
#输出:The value of a is 20

2.常量表达式

在print函数中输入加减乘除四则混合运算表达式(+ - * /)打印出表达式的结果,当然同样可以加括号表示先算哪里后算哪里。因此python可以当作简易计算器使用。

print((4+2*2)*(20-2*7))#结果为48

二、变量

1.定义变量的规则

python的变量类型有整形、浮点型、字符串、布尔类型等等。

在之前C语言的学习中,我们定义变量都是:

变量类型 变量 = 值;(int a = 1;)

而对于python而言,变量定义只需要:

变量名 = 值

不需要在前面显示加类型,变量的类型会根据所赋值的类型确定。

python变量名的定义规则与C语言基本相同(只能由数字、字母、下划线组成,数字不能开头……)

value1 = 1
print(value1)# 打印变量,不需要像C语言一样控制输出的类型
print(type(value1))# type()函数可以看到变量的类型为<class 'int'>,也就是intvalue2 = 0.5
print(type(value2))# type()函数可以看到变量的类型为<class 'float'>,也就是double。
#python的浮点数都是C语言中的double类型#python有自己的字符串类型str,字符串可以由单引号和双引号引起
a1 = "hello world"
a2 = 'hello world'
print(type(a1))#输出<class 'str'>,表示类型为str#布尔类型(bool)表示真假,只有True和False两种状态,一般用作函数的返回值
judge1 = True
print(type(judge1))
judge2 = False
print(type(judge2))#打印出<class 'bool'>,即bool类型

2.python的动态类型特性

在python程序中,一个变量是什么类型,是可以在 "程序运行" 过程中发生变化的,这个特性称为 "动态类型"。

python变量的类型是可以改变的,我们也可以在变量后面加上类型的声明。

#我先定义一个val变量初始化(定义变量后的第一次赋值叫做初始化)为1,此时类型为int
val = 1
print(val)
#我又改变val变量的内容为字符串,此时类型为str
val = "hello"
print(val)
#我双改变val变量的内容为浮点数,此时类型为double
val = 0.5
print(val)val:int = 2
#val变量的类型建议指定为int,初始化为2
#但这只是个声明,不是说你后面声明了什么类型,该变量此时就是什么类型的
val:int = "string"
print(type(val))
#输出类型为str

#输出类型为str

此时你惊奇地发现,val变量在运行中类型在不断发生变化,这是C语言无法实现的。

3.字符串

python本身就有自己的字符串类型,字符串可以由单引号和双引号引起。

a1 = "hello world"
a2 = 'hello world'
print(type(a1))
#输出<class 'str'>,表示类型为str#如果我们字符串内部包含双引号,就可以用单引号(')引起
print('My name is "bob guo"')
#结果为My name is "bob guo"#如果我们字符串内部包含单引号,就可以用双引号(")引起
print("My name is 'bob guo'")
#结果为My name is 'bob guo'#如果我们字符串内部既包含单引号又包括双引号,就用三引号(''')引起
print('''My 'name' is "bob guo"''')
#结果为My 'name' is "bob guo"#查看字符串的长度可以用函数len()
s1 = "hello"
s2 = " world"
print(len(s1))
#print函数打印字符串s1长度为5
#字符串也可以拼接
print(s1+s2)#表示把s1与s2拼接起来,输出为hello world
#要想使用拼接必须是两个字符串类型,int的10和str的s1就不能拼接

三、注释

注释是一种特殊的代码,它不影响程序的执行,但是能够起到解释说明的作用。

单行注释:

#+内容

多行注释:

'''

print(hello)

print( )

print(world)

'''

在pycharm中鼠标选中代码然后点击Ctrl+/进行批量注释。

四、input函数

1.input函数

与C语言中的scanf函数类似,python中的输入函数为input(),且用一个变量接收返回值。

如果我们不指定接收数据的变量的类型,那么系统默认这个变量的类型为str。

a = input("请输入一个值:")
#""中的字符串为输入的提示,输入数据后用变量a接收
print(type(a))
print(f"a的值为:{a}")#输出:
#请输入一个值:10(10是我自己输入的)
#<class 'str'>
#a的值为:10

2.变量类型转换

通过下面的语句:

变量 = 类型(变量)

可以实现将一个变量转化为该类型的变量。

下面的代码就实现了变量转换并计算数据的平均值。

#输入四个变量的内容,四个变量类型默认为str
a = input("输入第一个数字:")
b = input("输入第一个数字:")
c = input("输入第一个数字:")
d = input("输入第一个数字:")
a = int(a)
b = int(b)
c = int(c)
d = int(d)#这里的就是把abcd四个变量转化为int类型
e = (a + b + c + d) / 4
print(f"The average value of a、b、c、d is {e}")# 这些数字都是我自己输入的
# 输入第一个数字:1
# 输入第一个数字:4
# 输入第一个数字:7
# 输入第一个数字:9
# The average value of a、b、c、d is 5.25

五、运算符

1.算数运算符

python的算数运算符与C语言比较类似,但也有一定的区别。

符号

+

-

*

**

/

//

职能

加法

减法

乘法

乘方

小数除法

整数除法

a = 5 % 2
print(a)
b = 5 / 2
print(b)
c = 5 ** 2#表示计算5的平方
d = 4 ** 0.5#表示计算4的0.5次方,也就是开根号
# 乘方也支持小数
print(c)
print(d)#输出:
# 1
# 2.5
# 25
# 2.0

2.关系运算符

(1)整形的比较

关系运算符用于比较两个变量或表达式的值的大小,与C语言一致,=表示赋值,==表示相等。

符号

>

<

>=

<=

!=

==

职能

大于

小于

大于等于

小于等于

不等于

等于

a = 10
b = 20
print(a > b)
print(a != b)
print(a <= b)
print(a == b)#输出:
#False
#True
#True
#False

(2)字符串的比较

除比较整数以外,这些符号也可以判断字符串的大小,字典序决定了字符串的大小。

在字符串进行比较时,会先比较两个字符串的第一个字符在字典中出现的顺序(abcd直到z,排在前面的小,排在后面的大)。如果两个字符串第一个字符相同,就再比较第二个,直到比出大小。

#例1:
s1 = "hello"
s2 = "world"
print(s1>s2)
#输出:False
#因为s1首个字母是h,s2首个字母是w,在字母表中w在h的后面,所以w更大,对应s2字符串更大#例2:
s1 = "hello"
s2 = "hallo"
print(s1>s2)
#输出True
#s1首个字母是h,s2首个字母也是h,字母相同,比较第二个字母
#s1第二个字母是e,s2第二个字母是a,在字母表中e在a的后面,所以e更大,对应s1字符串更大#例3:
s1 = "hello"
s2 = "hello"
print(s1 == s2)
#输出True
#s1首个字母是h,s2首个字母也是h,字母相同,比较第二个字母也相同,比到最后都是完全一致,相等#例4:
#字符串的比较只有在比较由英文字母组成的字符串才有意义
s1 = "你好"
s2 = "世界"
print(s1 > s2)
#这里虽然也会给出结果,但是这个结果没有意义

(3)浮点数的比较

python的浮点数比较较为特殊,以下列代码为例:

a = 0.1
b = 0.2
c = 0.3
#错误的方式
print(a + b == c)
#正确的方式
print(-0.000001<a + b - c<0.000001)#输出结果为True
#在数学运算中,0.1+0.2==0.3,但第一种判断a+b==c的时候却打印为False
#这是因为计算机中的大部分浮点数都是不能准确储存的,所以浮点数的比较都是考虑精度的。
#正确的比较方法是让两个数据相减,得到的差的范围足够小就可以看作相等

3.逻辑运算符

(1)逻辑运算符的种类

python中的逻辑运算符包括:and、or、not三个。

  • and:左侧和右侧的表达式都为真整体才为真(例:你必须有车并且有房才能结婚,有车和有房缺一不可)
  • or:左侧和右侧的表达式有一个为真整体才为真(例:你要么有车要么有房才能结婚,有车和有房有一个就行)
  • not:右侧的表达式为真,整体为假;右侧的表达式为假,整体为真(例:你的对象必须不是外地人才能结婚,就是对方只要不是外地人就能结婚)

在python中是支持连续比较的,就不需要使用C语言的规则了,而且能用连续比较就不用and。

a = 1
b = 2
c = 3
print(a + b > c and a != b)
#a+b不大于c为假,a不等于b为真,有一个为假整体就为假,整体为假
print(a + b > c or a != b)
#a+b不大于c为假,a不等于b为真,有一个为真整体就为真,整体为假
print(not a != b)
#只要不满足a不等于b的条件这个表达式就为真,但此时a不等于b,整体为假#python的连续比较
print(a < b and b < c)
#可优化为:
print(a < b < c)

(2)and和or的短路求值

与C语言相同,python也具有同样的表达式和与或的处理逻辑。

如果and左侧的表达式已经为假,根据and有一个为假就为假的特点,那么整体表达式一定为假,此时and右侧的表达式不会计算。

如果or左侧的表达式已经为真,根据or有一个为真就为真的特点,那么整体表达式一定为真,此时or右侧的表达式也不会计算。

print(a == b and 10 / 0 == 1)#此时a不等于b,左侧表达式a==b已经为假,整体为假,后面的条件虽然有错误但是不会被判断
#输出:False
print(a != b or 10 / 0 == 1)#此时a不等于b,左侧表达式a!=b已经为真,整体为真,后面的条件虽然有错误但是也不会被判断
#输出:True

4.赋值运算符

python的赋值语句相比C语言更加丰富,包括链式赋值、多元赋值.复合赋值。

(1)链式赋值

#链式赋值
a = b = 10
#相当于下面两行的操作在一行完成了
# a = 10
# b = 10

(2)多元赋值

#多元赋值
a, b = 10, 20
#上面的行代码可替代下面两行代码
# a = 10
# b = 20#多元赋值方便了变量值的交换
#方法一:
s1 = "醋"
s2 = "酱油"
#此时我想把醋倒到酱油瓶里,酱油倒到醋瓶里
s3 = ""#定义一个空瓶
#把酱油倒到空瓶里
s3 = s2
#把醋倒到酱油瓶里
s2 = s1
#把空瓶中的酱油倒到醋瓶里
s1 = s3
print(s1)
print(s2)#通过多元赋值一行就可以搞定
a, b = b, a
#把a的值赋给b,把b的值赋给a

(3)复合赋值

注意python中不支持C语言中的++a和a++

#复合赋值
a = 0
a = a + 1
#表示把a+1的值赋给a
print(a)
#结果为1#上面的代码可以改写为
a = 0
a += 1
#a += 1与a = a + 1效果是相同的
print(a)
#结果也为1

六、选择语句

1.选择语句的写法

python中的选择语句与C语言中的用法是一致的,只是在写法上有所差别。

(1)单个if

满足if后面的条件就执行下面缩进的代码。

格式:

if+条件+冒号

四个空格或Tab键+需要执行的语句

a = 1
if a == 1:print("a的值为1")
a = 0
if a == 1:print("a的值为1")

(2)if与else

满足if后面的条件就执行下面缩进的代码,否则执行else下缩进的代码

格式:

if+条件+冒号

四个空格或Tab键+需要执行的语句

else+冒号

四个空格或Tab键+需要执行的语句

a = 0
if a == 1:print("a的值为1")
else:print("a的值不为1")

(3)if、elif与else

满足if后面或者elif的条件就执行下面缩进的代码,否则执行else下缩进的代码

格式:

if+条件+冒号

四个空格或Tab键+需要执行的语句

elif+条件+冒号

四个空格或Tab键+需要执行的语句

......

else+冒号

四个空格或Tab键+需要执行的语句

a = input("输入1表示好好学python,输入0表示不学:")
#注意默认返回的变量类型为str,得用str类型的字符串“1”比较
if a == "1":print("小伙子有前途")
elif a == "0":print("NND,不学是吧")
else:print("非法操作")

2.python的缩进和代码块

代码块指的是一组放在一起执行的代码,C语言使用{}实现代码块,而python中使用缩进表示代码块。

详见以下代码:

a = 1
if a == 1:print("aaa")print("bbb")
#这个程序满足a==1,会打印aaa和bbb#然后我们除去bbb的缩进,改a的值为0
a = 0
if a == 1:print("aaa")
print("bbb")
#此时不满足a==1,但是bbb也打印出来了
#所以说明python的条件判断语句下面只有缩进的语句才作为当前条件下的会被执行的语句#条件判断语句的下面一行一定要有缩进
a = 0
if a == 1:
print("aaa")
print("bbb")
#上面的if语句找不到该条件下需要执行的代码,所以会报错#这种缩进也可以嵌套
a = 1
b = 1
if a == 1:if b == 2:print("a")else:print("b")
else:print("c")

python的缩进可以嵌套以实现更复杂的控制,相同缩进的语句互相对应,即从上到下画一条线,在一条线上的代码是相互对应的。正是因为这样的语法,所以相比C/C++,python不适合太多的嵌套缩进。

3.空语句pass

pass表示空语句,只负责占位,不会执行任何代码。

#空语句用于补充条件指令下不需要执行代码的位置
a = 1
if a == 1:print(a)# 我想改变逻辑为a!=1时,打印a的值,我还不想改变if语句
a = 1
if a == 1:pass# 用一个空语句占位置,a==1时不会执行任何指令
else:print(a)

七、循环语句

1.while循环

python的算数运算符与C语言比较类似,但也有一定的区别。

格式:

while+条件+冒号

四个空格或Tab键+需要循环执行的语句

#实例
a == 1
while a<=10:print(a)a+=1#写一个死循环
a == 1
while a<=10:print(a)

死循环可以通过按左侧的红色方块停止(最左侧Run下面)

2.for循环

python的算数运算符与C语言比较类似,但也有一定的区别。

格式:

for+变量+in+range(数字,数字,数字)

四个空格或Tab键+需要循环执行的语句

其中,括号内的第一个数字表示变量的初始值,中间的数字表示变量不会超过这个数字,最后的数字表示步长,即每次循环变量的变化值。如果我们没有设置步长,那步长默认为1。

for i in range(1, 11):print(i)for i in range(1, 11, 2):print(i)for i in range(10, 0, -1):print(i)#输出:
#竖向打印12345678910
#竖向打印13579
#竖向打印10987654321

3.break与continue语句

python的break与continue语句与C语言是一致的。

在循环中只要遇到continue那么这次循环就直接中断,代码的执行回到头部,相当于continue以下的代码在本次循环中全部不执行了。

#有六个包子,我吃到第三个,发现里面有一只虫子,我就扔下这个包子接着吃剩下的包子
i = 1
while i <= 6:if i == 3:i += 1continueprint(f"我在吃第{i}个包子")i += 1# 输出:
# 我在吃第1个包子
# 我在吃第2个包子
# 我在吃第4个包子
# 我在吃第5个包子
# 我在吃第6个包子

在循环中遇到break就直接跳出循环了。

#有六个包子,我吃到第三个,发现里面有半只虫子,给我恶心坏了,啥也不想吃了
while i <= 6:if i == 3:breakprint(f"我在吃第{i}个包子")i += 1# 输出:
# 我在吃第1个包子
# 我在吃第2个包子

相关文章:

Python基础语法(上)

目录 一、print函数及常量表达式 1.print函数 2.常量表达式 二、变量 1.定义变量的规则 2.python的动态类型特性 3.字符串 三、注释 四、input函数 1.input函数 2.变量类型转换 五、运算符 1.算数运算符 2.关系运算符 &#xff08;1&#xff09;整形的比较 &am…...

k8s系列--docker拉取镜像导入k8s的containerd中

# 确认一下当前集群中正在运行的 Pod 和命名空间 kubectl get pods -A# 示例一&#xff1a;拉取并导入 CoreDNS 镜像 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.11.1 docker save registry.cn-hangzhou.aliyuncs.com/google_containers/cor…...

深入理解 Android 中的 ComponentInfo

深入理解 Android 中的 ComponentInfo 在 Android 开发中&#xff0c;ComponentInfo 是一个非常重要的类&#xff0c;它用于描述应用程序中的组件信息&#xff0c;包括 Activity、Service、BroadcastReceiver 和 ContentProvider。理解 ComponentInfo 的结构和使用方式&#x…...

阿里云 ECS 服务器绑定多个公网IP

阿里云 ECS 服务器绑定多个公网IP 一、弹性公网IP绑定ECS服务器 单台ECS一般只能直接绑定一个弹性公网IP&#xff0c;但是可以绑定多张弹性网卡&#xff0c;如果把弹性公网IP绑定到弹性网卡上&#xff0c;那么单台ECS就能间接绑定多个弹性公网IP。但有的服务器系统镜像可能不…...

模块化通讯管理机在物联网系统中的应用

安科瑞刘鸿鹏 摘要 随着能源结构转型和智能化电网的推进&#xff0c;电力物联网逐渐成为智能电网的重要组成部分。本文以安科瑞ANet系列智能通信管理机为例&#xff0c;探讨其在电力物联网中的应用&#xff0c;包括数据采集、规约转换、边缘计算、远程控制等技术实践&#…...

Kafka Offset explorer使用

Kafka集群配置好以后以后运维这边先用工具测试一下&#xff0c;便于rd展开后续的工作&#xff0c;本地调试时一般使用Offset explorer工具进行连接 使用SASL(Simple Authentication and Security Layer)验证方式 使用SCRAM-SHA-256(Salted Challenge Response Authentication…...

小程序学习07—— uniapp组件通信props和$emit和插槽语法

目录 一 父组件向子组件传递消息 1.1 props &#xff08;a&#xff09;传递静态或动态的 Prop &#xff08;b&#xff09;单向数据流 二 子组件通知父组件 2.1 $emit &#xff08;a&#xff09;定义自定义事件 &#xff08;b&#xff09;绑定自定义事件 三 插槽语法…...

行为模式1.模板方法模式

行为型模式 模板方法模式&#xff08;Template Method Pattern&#xff09;命令模式&#xff08;Command Pattern&#xff09;迭代器模式&#xff08;Iterator Pattern&#xff09;观察者模式&#xff08;Observer Pattern&#xff09;中介者模式&#xff08;Mediator Pattern…...

【模型】Qwen2-VL 服务端UI

1. 前言 最近在测试VLM模型&#xff0c;发现官方的网页demo&#xff0c;代码中视频与图片分辨率可能由于高并发设置的很小&#xff0c;导致达不到预期效果&#xff0c;于是自己研究了一下&#xff0c;搞了一个简单的前端部署&#xff0c;自己在服务器部署了下UI界面&#xff0…...

ImageNet 2.0?自动驾驶数据集迎来自动标注新时代

引言&#xff1a; 3DGS因其渲染速度快和高质量的新视角合成而备受关注。一些研究人员尝试将3DGS应用于驾驶场景的重建。然而&#xff0c;这些方法通常依赖于多种数据类型&#xff0c;如深度图、3D框和移动物体的轨迹。此外&#xff0c;合成图像缺乏标注也限制了其在下游任务中的…...

京东一面:MySQL 主备延迟有哪些坑?主备切换策略

作为一名开发同学&#xff0c;大家对 MySQL 一定不陌生&#xff0c;像常见的 事务特性、隔离级别 、索引等也都是老生常谈。 今天&#xff0c;我们就来聊个深度话题&#xff0c;关于 MySQL 的 高可用 一、什么是高可用&#xff1f; 维基百科定义&#xff1a; 高可用性&#x…...

Linux(Ubuntu24.04)安装Eigen3库

本次安装Eigen3是在WSL2的Ubuntu24.04环境下进行。 Eigen3是一个C模板库&#xff0c;用于线性代数、矩阵运算和数值计算。它提供了一组高性能的矩阵和向量操作&#xff0c;以及常用的线性代数算法&#xff0c;如矩阵分解、特征值求解和最小二乘解等。 1、安装Eigen3 有两种安…...

ABP框架8——仓储的作用及其基础Demo

一、使用仓储的好处 1.提高CRUD接口复用性2.解耦业务逻辑&#xff08;BLL&#xff09;和增删改查&#xff08;CRUD&#xff09;&#xff0c;换ORM特别方便&#xff0c;不需要改应用层&#xff0c;直接改仓储层3.做复杂查询4.事务支持 二、Demo public class BookRepository …...

【Multisim用74ls92和90做六十进制】2022-6-12

缘由Multisim如何用74ls92和90做六十进制-其他-CSDN问答 74LS92、74LS90参考...

利用KPaaS平台提升企业审批流程的透明度

企业的审批流程不仅影响决策效率&#xff0c;还直接关联到组织的透明度和运营效果。传统的审批流程通常由多个环节和系统构成&#xff0c;每一个环节都可能存在信息不对称的现象。例如&#xff0c;某一审批节点的负责人可能并不清楚当前的审批状态&#xff0c;而在其他环节&…...

Python 数据可视化的完整指南

目录 一、为什么选择 Python 进行数据可视化? 二、常用 Python 可视化库及其特点 三、常用图表类型及其代码示例 折线图:用于展示数据随时间或其他连续变量的变化趋势。 柱状图:用于比较不同类别的数据大小。 散点图:用于展示两个变量之间的关系,并发现数据中的模式…...

ZYNQ初识7(zynq_7010)RAM_IP核

学习汇总正点原子bi站教学视频。但由于目前的学习板PL端缺乏时钟晶振&#xff0c;所以需要从PS端调用时钟供给PL端使用&#xff0c;也就造成顶层文件的设置出现一些问题&#xff0c;在IP核创建调用和例化过程中一些功能会受到限制&#xff0c;所以以下仅作汇总参考。 zynq_7000…...

.e01, ..., .e0n的分卷压缩包怎么解压

用BandiZip&#xff0c;这些分卷压缩中还有一个.exe的文件&#xff0c;这个不是可执行文件&#xff0c;是一个解压缩的开头。 安装好bandiZip后&#xff0c;右键这个.exe文件 点击打开就是开始解压了&#xff1a; 最后解压后是这些。然后一个个再次解压....

linux网络管理

网络配置文件 网卡信息文件 :::color3 /etc/sysconfig/network-scripts ::: 配置描述DEVICE网卡设备名-必填BOOTPROTO必填&#xff1a;none,static(静态 IP),dhcp(动态 IP)HWADDRMAC 地址NM_CONTROLLED是否启用Network Manager图形管理工具&#xff0c;建议 noONBOOT是否默认…...

宽带、光猫、路由器、WiFi、光纤之间的关系

1、宽带&#xff08;Broadband&#xff09; 1.1 宽带的定义宽带指的是一种高速互联网接入技术&#xff0c;通常包括ADSL、光纤、4G/5G等不同类型的接入方式。宽带的关键特点是能够提供较高的数据传输速率&#xff0c;使得用户可以享受到稳定的上网体验。 1.2 宽带的作用宽带是…...

Momentum Contrast for Unsupervised Visual Representation Learning论文笔记

文章目录 论文地址动量队列对比学习的infoNCE loss为什么需要动量编码器对比学习moco方法中的动量Encoder为什么不能与梯度Encoder完全相同为什么动量编码器和梯度编码器不能完全相同&#xff1f;总结&#xff1a; 我理解&#xff0c;正负样本应该经过同一个encoder&#xff0c…...

linux-26 文件管理(四)install

说一个命令&#xff0c;叫install&#xff0c;man install&#xff0c;install是什么意思&#xff1f;安装&#xff0c;install表示安装的意思&#xff0c;那你猜install是用来干什么的&#xff1f;猜一猜干什么的&#xff1f;安装软件&#xff0c;安装第三方软件&#xff0c;错…...

day-104 组合总和 Ⅳ

思路 动态规划 解题过程 假设dfs(target)表示组成target的组合数&#xff0c;可得转换方程dfs(target)dfs(target-nums[0])dfs(target-nums[1])…以此类推 注意&#xff1a;nums[i]需要小于等于当前的target Code class Solution {public int combinationSum4(int[] nums, i…...

Gitlab-runner 修改默认的builds_dir并使用custom_build_dir配置

gitlab-runner 修改默认的builds_dir并使用custom_build_dir配置 1. 说明2. 实操&#xff08;以docker执行器为例&#xff09;2.1 修改默认的builds_dir2.1.1 调整gitlab-runner的配置文件2.1.2 CI文件 2.2 启用custom_build_dir2.2.1 调整gitlab-runner的配置文件2.2.2 CI文件…...

代码随想录算法训练营day21

代码随想录算法训练营 —day21 文章目录 代码随想录算法训练营前言一、669. 修剪二叉搜索树递归法迭代法 二、108.将有序数组转换为二叉搜索树递归法迭代法 三、538.把二叉搜索树转换为累加树递归法 总结 前言 今天是算法营的第21天&#xff0c;希望自己能够坚持下来&#xf…...

苹果系统MacOS下ObjectC建立的App程序访问opencv加载图片程序

前言 苹果系统下使用opencv感觉还是有些不太方便&#xff0c;总是感觉有点受到限制。本博客描述的是在MacOS下建立App程序然后调用opencv显示图片时出现的一些问题并最后解决的一个过程。 一、程序的建立 选择程序的类型&#xff1a; 选择界面模式和编程语言&#xff1a; 其余…...

滴滴工作流引擎Turbo与logicFlow研究

目录 logicFlow turbo 工作流引擎很多,也都提供了前端UI库,但是太过于冗杂了,元数据表都几十个,logincFlow和Turbo的组合提供了轻量化方式,turbo后端代码只有5个元数据表,logicFlow也提供了bpm的相关扩展功能,但缺点是turbo社区不活跃,logicFlow个人认为跟echarts这种…...

快速将索尼手机联系人导出为 HTML 文件

我想将 Sony Xperia 手机上的联系人导出到计算机上进行备份&#xff0c;并在需要时进行编辑。这可以做到吗&#xff1f;如何做到&#xff1f;作为助手我需要下载什么工具吗&#xff1f; 当您的 Android 手机上存储了如此多的重要联系人&#xff0c;而您又不想丢失它们时&#…...

长时间序列预测算法---Informer

目录 一、传统的 Transformer 模型二、Informer原理2.1 Attention计算2.2 “积极”的Q筛选2.2.1 KL散度2.2.2 “懒惰”的q处理 2.3 Encoder结构2.4 Decoder结构2.4.1 Transformer的Decoder操作2.4.2 Informer的Decoder操作 2.5 Informer模型的改进 三、模型应用 时间序列相关参…...

深入理解连接池:从数据库到HTTP的优化之道

在现代应用开发中&#xff0c;高效的资源管理是关键&#xff0c;其中连接池&#xff08;Connection Pool&#xff09;技术起到了至关重要的作用。本文将带你深入了解连接池的概念及其在数据库和HTTP通信中的应用&#xff0c;结合 JDBC 与 Druid 的关系&#xff0c;以及 HttpURL…...

LLM(十二)| DeepSeek-V3 技术报告深度解读——开源模型的巅峰之作

近年来&#xff0c;大型语言模型&#xff08;LLMs&#xff09;的发展突飞猛进&#xff0c;逐步缩小了与通用人工智能&#xff08;AGI&#xff09;的差距。DeepSeek-AI 团队最新发布的 DeepSeek-V3&#xff0c;作为一款强大的混合专家模型&#xff08;Mixture-of-Experts, MoE&a…...

IIS设置IP+端口号外网无法访问的解决方案

在IIS将站点设置为IP端口访问&#xff0c;假设端口为8080&#xff0c;设好后&#xff0c;服务器上可以访问&#xff0c;外网无法访问。 通常是端口8080没有加入【入站规则】的缘故&#xff0c;将8080端口加入【入站规则】即可&#xff0c;操作如下&#xff1a; 一、ctrlr 输入 …...

Leetcode 最大正方形

java 实现 class Solution {public int maximalSquare(char[][] matrix) {//处理特殊情况if(matrix null || matrix.length 0 || matrix[0].length 0) return 0;int rows matrix.length;int cols matrix[0].length;int[][] dp new int[rows][cols]; //dp[i][j]的含义是以…...

数据结构与算法之动态规划: LeetCode 3105. 最长的严格递增或递减子数组 (Ts版)

最长的严格递增或递减子数组 https://leetcode.cn/problems/longest-strictly-increasing-or-strictly-decreasing-subarray/description/ 描述 给你一个整数数组 nums返回数组 nums 中 严格递增 或 严格递减的最长非空子数组的长度 示例 1 输入&#xff1a;nums [1,4,3,…...

【书籍连载】《软件测试架构实践与精准测试》| 有关软件测试模型的调查结果

各位软件领域的精英们&#xff0c;今天小编邀请你继续深入学习《软件测试架构实践与精准测试》。 《软件测试架构实践与精准测试》是作者李龙&#xff08;安畅检测首席技术专家&#xff09;基于软件测试“川模型”的著作。本书结合作者首次提出的软件测试新的模型“川模型”测试…...

我的博客年度之旅:感恩、成长与展望

目录 感恩有你 技能满点 新年新征程 嘿&#xff0c;各位技术大佬、数码潮咖还有屏幕前超爱学习的小伙伴们&#xff01;当新年的钟声即将敲响&#xff0c;我们站在时光的交汇点上&#xff0c;回首过往&#xff0c;满心感慨&#xff1b;展望未来&#xff0c;豪情满怀。过去的这…...

【RTD MCAL 篇3】 K312 MCU时钟系统配置

【RTD MCAL 篇3】 K312 MCU时钟系统配置 一&#xff0c;文档简介二&#xff0c; 时钟系统理论与配置2.1 K312 时钟系统2.1.1 PLL2.1.2 MUX_0系统2.1.3 MUX_6 时钟输出2.1.4 option B推荐方案 2.2 EB 配置2.2.1 General 配置2.2.2 McuClockSettingConfig配置2.2.2.1 McuFIRC配置…...

力扣28找出字符串中第一个匹配项的下标

class Solution:def strStr(self, haystack: str, needle: str) -> int:# 特殊情况处理if not needle:return 0# 获取 haystack 和 needle 的长度a len(needle)b len(haystack)# 遍历 haystack&#xff0c;检查每个子字符串是否与 needle 匹配for i in range(b - a 1):if…...

[C#]C# random.Next(0,1)包含0和1吗

在C#中&#xff0c;Random.Next(minValue, maxValue) 方法生成的随机数是一个在 minValue&#xff08;包含&#xff09;和 maxValue&#xff08;不包含&#xff09;之间的整数。因此&#xff0c;当你调用 Random.Next(0, 1) 时&#xff0c;它只会生成一个整数&#xff0c;这个整…...

【设计模式】 基本原则、设计模式分类

设计模式 设计模式是软件工程中的一种通用术语&#xff0c;指的是针对特定问题的经过实践验证的解决方案。设计模式并不是最终的代码实现&#xff0c;而是描述了如何解决某一类问题的思路和方法。 如果熟悉了设计模式&#xff0c;当遇到类似的场景&#xff0c;我们可以快速地…...

Swift White Hawkstrider

Swift White Hawkstrider 迅捷白色陆行鸟 Swift White Hawkstrider - Item - 魔兽世界怀旧服TBC数据库_WOW2.43数据库_70级《燃烧的远征》数据库 Kaelthas Sunstrider (1) <Lord of the Blood Elves> 凯尔萨斯逐日者. 掉落 [80圣骑士][Alonsus-加丁][诺森德冒险补给品…...

node.js下载、安装、设置国内镜像源(永久)(Windows11)

目录 node-v20.18.0-x64 工具下载安装设置国内镜像源&#xff08;永久&#xff09; node-v20.18.0-x64 工具 系统&#xff1a;Windows 11 下载 官网https://nodejs.org/zh-cn/download/package-manager 版本我是跟着老师选的node-v20.18.0-x64如图选择 Windows、x64、v2…...

「Mac畅玩鸿蒙与硬件48」UI互动应用篇25 - 简易购物车功能实现

本篇教程将带你实现一个简易购物车功能。通过使用接口定义商品结构&#xff0c;我们将创建一个动态购物车&#xff0c;支持商品的添加、移除以及实时总价计算。 关键词 UI互动应用接口定义购物车功能动态计算商品管理列表操作 一、功能说明 简易购物车功能包含以下交互&#…...

df.groupby(pd.Grouper(level=1)).sum()

df.groupby(pd.Grouper(level1)).sum() 在 Python 中的作用是根据 DataFrame 的某一索引级别进行分组&#xff0c;并计算每个分组的总和。具体来说&#xff1a; df.groupby(...)&#xff1a;这是 pandas 的分组操作&#xff0c;按照指定的规则将 DataFrame 分组。 pd.Grouper(…...

【网络安全 | 漏洞挖掘】绕过电子邮件确认实现预账户接管

未经许可,不得转载。 文章目录 正文漏洞步骤赏金正文 我测试的应用程序有多个子域名: 1、account.example.com:处理用户账户管理。 2、project.example.com:管理用户拥有或被邀请的项目。 3、org.example.com:一个新的子域,用于管理多个项目的组织。 4、collaborator.ex…...

【SpringBoot教程】SpringBoot整合Mybatis - 前后端分离项目 - vue3

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 今天毛毛张将通过一个完整的前后端分离的任务来介绍SpringBoot整合Mybatis过程&#xff01; 文章目录 1.前言1.1 任务描述1.2 SpringBoot整合Mybatis概述1.3 完整项目…...

node.js之---事件驱动编程

详解事件驱动 事件驱动是基于什么实现的 事件驱动和I/O操作的关系 I/O操作和事件循环的关系 详解事件驱动 事件驱动编程&#xff08;Event-driven Programming&#xff09;是一种编程范式&#xff0c;其中程序的控制流是由“事件”驱动的。事件通常指的是用户操作、网络请…...

RK3588+FPGA全国产异步LED显示屏控制卡/屏幕拼接解决方案

RK3588FPGA核心板采用Rockchip RK3588新一代旗舰 级八核64位处理器&#xff0c;支持8K视频编解码&#xff0c;多屏4K输出&#xff0c;可实现12屏联屏拼接、同显、异显&#xff0c;适配多种操作系统&#xff0c;广泛适用于展览展示、广告内容投放、新零售、商超等领域实现各种媒…...

Postman测试big-event

报错500。看弹幕&#xff0c;知道可能是yml或sql有问题。 所以检查idea工作台&#xff0c; 直接找UserMapper检查&#xff0c;发现完全OK。 顺着这个error发现可能是sql有问题。因为提示是sql问题&#xff0c;而且是有now()的那个sql。 之后通过给的课件&#xff0c;复制课件…...

38. 考古学家

题目描述 有一个考古学家发现一个石碑&#xff0c;但是很可惜&#xff0c;发现时其已经断成多段&#xff0c;原地发现n个断口整齐的石碑碎片。为了破解石碑内容&#xff0c;考古学家希望有程序能帮忙计算复原后的石碑文字组合数&#xff0c;你能帮忙吗&#xff1f; 输入描述 第…...