【Python】基础语法1(常量与表达式、变量和类型、注释、输入输出、运算符)

news2024/11/27 16:52:59

文章目录

  • 1、常量与表达式
  • 2. 变量和类型
    • 2.1 变量是什么
    • 2.2 变量的语法
    • 2.3 变量的类型
      • 2.3.1整数
      • 2.3.2 浮点数
      • 2.3.3 字符串
      • 2.3.4 布尔
      • 2.3.5 其他
    • 2.4 变量类型的意义
    • 2.5 动态类型特性
  • 3. 注释
    • 3.1 注释的语法
    • 3.2 注释的规范
  • 4. 输入输出
    • 4.1 通过控制台输出
    • 4.2 通过控制台输入
  • 5. 运算符
    • 5.1 算术运算符
    • 5.2 关系运算符
    • 5.3 逻辑运算符
    • 5.4 赋值运算符
    • 5.5 其他运算符

1、常量与表达式

我们可以把Python当成一个计算器,来进行一些算术运算

print(1 + 2 - 3)
print(1 + 2 * 3)
print(1 + 2 / 3)

a

分析:

  • print 是一个 Python 内置的函数,后面会做详细介绍。
  • 可以使用 + - * / ( ) 等运算符进行算术运算. 先算乘除, 后算加减。
  • 运算符和数字之间, 可以没有空格, 也可以有多个空格. 但是一般习惯上写一个空格(比较美观)。

形如 1 + 2 - 3 这样是算式, 在编程语言中称为 表达式, 算式的运算结果, 称为 表达式的返回值
其中 1 , 2 , 3 这种称为 字面值常量, + - * / 这种称为 运算符 或者 操作符

注意: 熟悉 C / Java 的同学可能认为, 2 / 3 结果为 0 (小数部分被截断). 但是在 Python 中得到的结果则是一个小数. 更符合日常使用的直觉

示例
给定四个分数, 67.5, 89.0, 12.9, 32.2 , 编写代码, 求这四个分数的平均数

print( (67.5 + 89.0 + 12.9 + 32.2) / 4 )

在这里插入图片描述

2. 变量和类型

2.1 变量是什么

有的时候, 我们需要进行的计算可能更复杂一些, 需要把一些计算的中间结果保存起来. 这个时候就需要用到 变量
变量可以视为是一块能够容纳数据的空间. 这个空间往往对应到 “内存” 这样的硬件设备上

示例
给定四个分数, 67.5, 89.0, 12.9, 32.2 , 编写代码, 求这四个分数的方差。
方差的计算过程:取每一项,减去平均值,计算平方,再求和,最后除以(项数-1)。

avg = (67.5 + 89.0 + 12.9 + 32.2) / 4
total = (67.5 - avg) ** 2 + (89.0 - avg) ** 2 + (12.9 - avg) ** 2 + (32.2 - avg) ** 2
result = total / 3
print(result)

在这里插入图片描述

分析:

  • 在这个代码中, 就需要先计算这四个数字的平均值, 然后再计算方差. 这就需要把计算的平均值使用变量保存起来。
  • 代码中的 avg,total,result 均为变量。
  • ** 在 Python 中便是乘方运算。**2即为求平方。

2.2 变量的语法

(1)定义变量

代码示例:

a = 10

创建变量的语句非常简单,其中

  • a 为变量名。当我们创建多个变量的时候,就可以用名字来进行区分。
  • = 为赋值运算符,表示把 = 右侧的数据放到 = 左侧的空间中。

变量命名要遵守一定的规则

1. 硬性规则(务必遵守)

  • 变量名必须由数字,字母,下划线构成。不包含特殊字符。
    例:a1是合法变量名 。1a,a*a都是非法变量名
  • 数字不能开头。
  • 变量名和 Python 的“关键字”重复。
    例如:if 这种就是非法变量名
  • Python 中的变量名是大小写敏感的,区分大小写。
    num 和 Num 是两个不同的变量名

2. 软性规则 (建议遵守)

  • 给变量命名的时候,尽量使用描述性的单词来表示,尽量通过名字表示出变量的作用。
  • 当我们使用一个单词描述不清的时候,可以使用多个单词来命名,不怕变量长,就怕变量的含义表示不清。
    ① 驼峰命名:除了第一个首字母之外,后续每个单词的首字母都大写。
    例:personInfo;totalCount
    ② 蛇形命名:单词之间使用下划线_来进行分隔。
    person_info;total_count

(2)变量的使用
代码如下:

#读取变量
a = 10
print(a)

#修改变量
a = 20
print(a)

在这里插入图片描述

注意: 在 Python 中, 修改变量也是使用 = 运算, 看起来和定义变量没有明显区别。
首次使用 = 对 a 进行设置时,这个过程是创建变量(初始化)。
后续对 a 使用 = 操作,则是相当于修改 a 的内容(赋值)。

当然也可以用一个变量赋值给另外一个变量
示例

a = 10
b = 20
a = b
print(a)
print(b)

在这里插入图片描述

2.3 变量的类型

对于不同种类的变量作出区分,Python中的变量类型,不需要在定义变量的时候显示声明,而只是依靠初始化语句,根据初始化的值的类型来进行判断。

2.3.1整数

a = 10
print(type(a))

在这里插入图片描述

注:type 和 print 类似, 也是 python 内置的函数. 可以使用 type 来查看一个变量的类型。
在 Python中 int 能够表示的数据范围是没有上线的(“无穷”的),Python 的 int 是可以根据表示的数据的大小自动扩容的。
因此,Python 这里就没有 long 这样的类型了,像 byte,short 这些类型在 Python 中也是不存在的。

2.3.2 浮点数

a = 0.5
print(type(a))

在这里插入图片描述

注意: 和 C++ / Java 等语言不同, Python 的小数只有 float 一种类型, 没有 double 类型. 但是实际上 Python 的 float 就相当于 C++ / Java 的 double, 表示双精度浮点数。
相比于单精度浮点数, 双精度浮点数占用的内存空间更多, 同时表示的数据精度更高即可(大概精确到小数点后15位)。

2.3.3 字符串

a = 'hello'
print(type(a))

在这里插入图片描述

Python 中使用 ’ ’ 或者 " " 引起来的, 称为 字符串. 可以用来表示文本。
因为Python中只有字符串类型,没有字符类型。所以 ’ ’ 或者 " " 都能表示字符串,‘a’ 这算是长度为1的字符串。

注意: 在 Python 中, 单引号构成的字符串和双引号构成的字符串, 没有区别. ‘hello’ 和 “hello” 是完全等价的。
因此,如果字符串里面包含了 " “,表示字符串就可以用 ’ ’ 引起来;如果字符串里面包含了 ’ ’ ,表示字符串就可以用 " " 引起来。如果字符里面同时包含了 " " 和 ‘ ’,Python中还有一种字符串使用三引号,表示 ‘’’ ‘’’ 或 “”” “”"。

a = 'hello'
print(a)

a = "hello"
print(a)
print('''her 'name' is "mary" ''')

在这里插入图片描述

可以使用 len 函数来获取字符串的长度

a = 'hello'
print(len(a))

在这里插入图片描述

可以使用 + 针对两个字符串进行拼接

a = 'hello'
b = 'world'
print(a + b)

在这里插入图片描述
字符串拼接就是把后面的字符串拼接到前一个字符串的末尾,得到一个更大的字符串(对于原来的字符串a和b是没有影响的)。注意此处是两个字符串相加. 不能拿字符串和整数/浮点数相加

2.3.4 布尔

布尔类型是一个特殊的类型, 取值只有两种, True (真) 和 False (假),因此,布尔类型主要用于逻辑判断。

a = True
print(type(a))
b = False
print(type(b))

在这里插入图片描述

2.3.5 其他

除了上述类型之外, Python 中还有 list, tuple, dict, 自定义类型 等等. 我们后续再介绍

2.4 变量类型的意义

1. 不同的类型,占用的内存空间是不同的,占几个字节(byte)

  • int 类型在内存中默认4字节,在Python中可动态扩容
  • float 类型在内存中固定是8字节
  • bool 类型在内存中是2字节

2. 不同的类型,对应能进行的操作也是不用的
例如:int / float 类型的变量,可以进行 + - * / 等操作。
而 str 类型的变量,只能进行 + (并且行为是字符串拼接),不能进行 - * / ,但是还能使用 len 操作。

2.5 动态类型特性

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

a = 10
print(type(a))
a = 'hello'
print(type(a))

在这里插入图片描述

  • 在程序执行过程中, a 的类型刚开始是 int,后面变成了 str。
  • C++/Java这样的语言则不允许这样的操作,一个变量定义后类型就是固定的,这种特性称为“静态类型”。
  • 一个编程语言,是否是动态类型,知识取决于运行时,类型是否发生改变,不却决于变量定义的时候是否声明类型。
    Python 作为动态类型的语言,在定义变量的时候,也是可以写类型的。
a:int=10
print(type(a))

在这里插入图片描述

动态内存是一把双刃剑

  • 对于中小程序,可以大大的约代码量简约代码量(比如写一段代码就可以同时支持多种类型)。
  • 对于大型程序,则提高了模块之间的交互成本(程序员A提供的代码难以被程序员B理解)。

3. 注释

注释是什么?
注释是一种特殊的代码,他不会影响程序的执行,但是能够起到解释说明的作用,能过帮到程序员理解程序代码的执行逻辑。

# 计算 4 个数字 67.5, 89.0, 12.9, 32.2 的方差
avg = (67.5 + 89.0 + 12.9 + 32.2) / 4
total = (67.5 - avg) ** 2 + (89.0 - avg) ** 2 + (12.9 - avg) ** 2 + (32.2 - avg)** 2
result = total / 3
print(result)

形如上述代码, 如果没有注释, 直接阅读, 是不容易 get 到代码的含义是计算方差. 但是通过加了一行注释解释一下, 就让人一目了然了。

3.1 注释的语法

在 Python 中注释有两种风格

(1)注释行
使用 # 开头的是行注释
如有需要多行注释则可以选中代码然后按 Ctr l+ /,取消注释也是按 Ctrl + /

#这是一行注释

(2)文档字符串
使用三引号引起来的就称为”文档字符串“,也可以视为是一种注释。

  • 可以包含多行的内容
  • 一般放在文件/函数/类 的开头
  • “”" 或者 ‘’’ 均可(等价)
"""
这是文档字符串
这是文档字符串
这是文档字符串
"""

3.2 注释的规范

  1. 内容准确: 注释内容要和代码一致, 匹配, 并在代码修改时及时更新.
  2. 篇幅合理: 注释既不应该太精简, 也不应该长篇大论.
  3. 使用中文:
  4. 积极向上: 注释中不要包含负能量

4. 输入输出

程序需要和用户进行交互

  • 用户把信息传递给程序的过程,称为 “输入”。
  • 程序把结果展示给用户的过程,称为 “输出”。
    输入输出的最基本的方法就是控制台
    用户通过控制台输入一些字符串, 程序再通过控制台打印出一些字符串。

PyCharm 运行程序,下方弹出的窗口就可以视为是控制台
在这里插入图片描述

4.1 通过控制台输出

Python 使用 print 函数输出到控制台

print('hello')

a = 10
print(a)

b = True
print(b)

在这里插入图片描述
我们可以看到 print 函数不仅能输出一个字符串,还可以输出一个其他类型的变量,但更多的时候,我们希望能够输出的内容是混合了字符串和变量的。

示例:输出 num = 10

num = 10
print(f'num = {num}')

在这里插入图片描述
注意:

  • print(f’num = {num}') 这个语法是叫做 ”格式化字符串“,使用 f 作为前缀的字符串,称为 f -string,此处的 f 表示 format 。
  • 里面可以使用 { } 来内嵌一个其他的变量/表达式。

4.2 通过控制台输入

python 使用 input 函数, 从控制台读取用户的输入

num = 0
num = input('请输入一个整数: ')
print(f'你输入的整数是 {num}')

在这里插入图片描述

注意:

  • input 的参数相当于一个 “提示信息”, 也可以没有。
  • input 的返回值就是用户输入的内容. 是字符串类型

示例:输入两个整数,输出两个整数的和。

错误示范

a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')
print(f'a + b = {a + b}')

在这里插入图片描述

分析:
此处的结果是字符串拼接, 不是算术运算. 如果要想进行算术运算, 需要先转换类型。

正确示范:

a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')
a = int(a)
b = int(b)
print(f'a + b = {a + b}')

在这里插入图片描述

分析:

  • 如果只是但需的拿到用户的输入,然后打印,此时就按照 str 打印即可。
  • 如果需要根据用户输入的内容进行算术计算,此时就需要把读到的 str 转换成 int
    通过 int( ) 把变量转成了 int 类型.
    类似的, 使用 float( ), bool( ), str( ) 等可以完成对应的类型转换。

5. 运算符

5.1 算术运算符

像 + - * / % ** // 这种进行算术运算的运算符, 称为 算术运算符

+(加) -(减) *(乘) /(除) %(取余数)  **(乘方)  //(取整除法)

运算规则:
先算乘方,然后是乘除,最后算加减
如果想要改变运算规则,则需加()

注意1:/ 中不能用 0 作为除数. 否则会 抛出异常

print(10 / 0)

在这里插入图片描述
异常 是编程语言中的一种常见机制, 表示程序运行过程中, 出现了一些 “意外情况”, 导致程序不能继续往下执行了。

注意2: 整数 / 整数 结果可能是小数. 而不会截断

print(1 / 2)

在这里插入图片描述

注意3: % 不是 “百分数”, 而是求余数

print(7 % 2)

在这里插入图片描述
注意4: ** 是求乘方. 不光能算整数次方, 还能算小数次方

print(4 ** 2)
print(4 ** 0.5)

在这里插入图片描述

注意5: // 是取整除法(也叫地板除)。整数除以整数, 结果还是整数(舍弃小数部分, 并向下取整. 不是四舍五入)

print(7 // 2)
print(-7 // 2)

在这里插入图片描述

5.2 关系运算符

像 < <= > >= == != 这一系列的运算符称为 关系运算符, 它们是在比较操作数之间的关系.
其中

  • <= 是 “小于等于”
  • >= 是 “大于等于”
  • == 是 “等于”
  • != 是 "不等于

(1) 如果关系符合, 则表达式返回 True. 如果关系不符合, 则表达式返回 False

a = 10
b = 20
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

在这里插入图片描述
(2) 关系运算符不光针对整数/浮点数进行比较, 还能针对字符串进行比较

a = 'hello'
b = 'world'
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

在这里插入图片描述

注意:

  • 直接使用 == 或者 != 即可对字符串内容判定相等. (这一点和 C / Java 不同).
  • 字符串比较大小, 规则是 “字典序”

关于字典序:
想象一个英文词典, 上面的单词都是按照字母顺序排列. 如果首个字母相同, 就比较第二个字母. (就比如著名单词 abandon).
我们认为一个单词在词典上越靠前, 就越小. 越靠后, 就越大。

(3)对于浮点数来说,使用 == 比较相等,存在一定的风险,最好不要使用 == 比较相等

print(0.1 + 0.2 == 0.3)

在这里插入图片描述
注意:
因为 浮点数在内存中的存储和表示,并不是精确的是可能存在误差的,这样的误差在进行算术运算符运算的时候就可能被放大,从而导致误判。

print(0.1)
print(0.2)
print(0.3)
print(0.1 + 0.2)

在这里插入图片描述

我们可以看到,0.1 + 0.2 的结果并不是 0.3,虽然这两个数字已经非常接近了,但是如果直接使用 == 进行比较,仍然会出现 False 的情况。

正确的浮点数比较相等
不再严格比较相等了, 而是作差,判定差值是否小于允许的误差范围

a = 0.1 + 0.2
b = 0.3
print(-0.000001 < (a - b) < 0.000001)

在这里插入图片描述

注:在 Python中是支持连续小写的写法
判定 a - b 既是小于 000001 又是大于 -000001

5.3 逻辑运算符

像 and or not 这一系列的运算符称为 逻辑运算符

  • and 并且. 两侧操作数均为 True, 最终结果为 True. 否则为 False. (一假则假)
  • or 或者. 两侧操作数均为 False, 最终结果为 False. 否则为 True. (一真则真)
  • not 逻辑取反. 操作数本身为 True, 则返回 False. 本身为 False, 则返回 True
a = 10
b = 20
c = 30

print(a < b and b < c)
print(a < b and b > c)

print(a > b or b > c)
print(a < b or b > c)

print(not a < b)
print(not a > b)

在这里插入图片描述

一种特殊写法
a < b and b < c 这个操作等价于 a < b < c . 这个设定和大部分编程语言都不相同

关于短路求值
和其他编程语言类似, Python 也存在短路求值的规则.

  • 对于 and, 如果左侧表达式为 False, 则整体一定为 False, 右侧表达式不再执行。
  • 对于 or, 如果左侧表达式为 True, 则整体一定为 True, 右侧表达式不再执行。
print(10 > 20 and 10 / 0 == 1)
print(10 < 20 or 10 / 0 == 1)

在这里插入图片描述
上述代码没有抛出异常, 说明右侧的除以 0 操作没有真正执行。

5.4 赋值运算符

(1) = 的使用

  • = 表示赋值. 这个我们已经用过很多次了. 注意和 == 区分.
  • = 除了基本的用法之外, 还可以同时针对多个变量进行赋值

链式赋值

a = b = 10

多元赋值

a,b = 10,20

代码示例:交换两个变量

# 交换两个变量的值
a = 10
b = 20

# 基础写法
tmp = a
a = b
b = tmp

#基于多元赋值
a,b = 10,20

(2) 复合赋值运算符
Python 还有一些 复合赋值运算符. 例如 += -= *= /= %=
其中 a += 1 等价于 a = a + 1 . 其他复合赋值运算符也是同理。

a = 10
a = a + 1
print(a)

b = 10
b += 1
print(b)

在这里插入图片描述

注意: 像 C++ / Java 中, 存在 ++ – 这样的自增/自减运算符. Python 中则不支持这种运算. 如果需要使用,则直接使用 += 1 或者 -= 1。

5.5 其他运算符

除了上述之外, Python 中还有一些运算符, 比如 身份运算符 (is, is not), 成员运算符 (in, not in), 位运算符( & | ~ ^ << >>) 等.此处暂时不介绍。

本章到这里就结束啦,如果有哪里写的不好的地方,请指正。
如果觉得不错并且对你有帮助的话请给个三连支持一下吧!
Fighting!!!✊

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/51589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java - 数据结构,时间复杂度和空间复杂度

一、算法效率 算法效率分析分为两种&#xff1a;第一种是时间效率&#xff0c;第二种是空间效率。 时间效率被称为时间复杂度&#xff0c;而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度&#xff0c;而空间复杂度主要衡量一个算法所需要的额外空间&am…

子不语发生工商变更:注册资本增至3000万元,预计全年净利润下滑

近日&#xff0c;浙江子不语电子商务有限公司&#xff08;下称“子不语”&#xff09;发生工商变更&#xff0c;其中注册资本由2600万元增至3000万元。据天眼查信息显示&#xff0c;子不语的全资股东为ZIBUYU INTERNATIONAL LIMITED&#xff0c;法定代表人为华丙如。 据了解&am…

【前端验证】验证自动化脚本的最后一块拼图补全——gen_tb

我们的目标是┏ (゜ω゜)=☞芯片前端全栈工程师~喵! 前言 在完成了 【芯片前端】可能是定向验证的巅峰之作——auto_testbench_尼德兰的喵的博客-CSDN博客 【python脚本】用于生成简单握手接口与自测环境的gen_uvm_agent脚本_尼德兰的喵的博客-CSDN博客 两个工具之后,对于…

[附源码]计算机毕业设计springboot体育器材及场地管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Unity数字孪生UI设计——导入视频

Unity导入mp4或URL链接 1、准备视频 Uinty3D常用视频格式: mov、.mpg、.mpeg、.mp4、.avi .asf 如果都不识别,试试转换成ogv格式 转换完成之后,将视频素材文件拖入Uinty Assets文件夹内 2、创建UI及添加组件 1、右键Assets文件夹或任意文件夹→Create→Render Texture纹理渲…

七、Sleuth分布式链路请求跟踪

SpringCloud Sleuth分布式链路请求跟踪 概述 为什么会出现这个技术&#xff1f;需要解决哪些问题&#xff1f; 问题 在微服务框架中&#xff0c;一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果&#xff0c;每一个前端请求都会形…

[附源码]计算机毕业设计springboot面向高校活动聚App

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

半正定Toeplitz矩阵的范德蒙德分解

半正定Toeplitz矩阵的范德蒙德分解 Toeplitz矩阵的定义&#xff1a;Matrices whose entries are constant along each diagonal are called Toeplitz matrices. 形如 T[r0r1r2r3r−1r0r1r2r−2r−1r0r1r−3r−2r−1r0](1)\boldsymbol{T}\left[ \begin{matrix} r_0& r_1&…

前端开发调试技巧

1、alert弹框调试 正对js代码的调试&#xff0c;我们往往需要获取某些变量的值&#xff0c;于是在早期我们往往通过alert方法将变量的值通过弹窗的形式进行打印。 <script>alert(测试弹框) </script>2、console控制台打印 alert方法对于我们来说或许仍然比较繁琐…

专题·AC自动机

初见安——&#xff01;&#xff01;这里是咕咕咕好久好久的樱狸QvQ 考完初赛了 有一点点的空闲时间 来整理一下博客【因为发现忘性很大……超过一个月没用的东西就记不住了QAQ 前置知识&#xff1a;KMP&#xff0c;tire树。 一、AC自动机 其实AC自动机就是在tire树上KMP。 …

点击化学PEG试剂DBCO-PEG4-NHS,1427004-19-0知识特点总结

一、描述&#xff1a; DBCO-PEG4-NHS酯是一种含有NHS酯的点击化学PEG试剂&#xff0c;能够在中性或稍碱性条件下与伯胺&#xff08;例如赖氨酸残基的侧链或氨基硅烷涂层表面&#xff09;特异有效地反应&#xff0c;形成共价键。亲水性PEG间隔臂提高了水溶性&#xff0c;并提供了…

ConcurrentHashMap

我们说ConcurrentHashMap是用在多并发环境下的HashMap JDK1.7 segment数组HashEntry数组链表&#xff08;即两个数组挂一个链表&#xff09; 上锁的时候锁的是segment数组&#xff0c;采用分段锁&#xff0c;每一把锁只锁一个Segment&#xff0c;默认是这个数组大小为16&…

【D3.js】1.13-动态设置每个 Bar 的坐标

title: 【D3.js】1.13-动态设置每个 Bar 的坐标 date: 2022-12-01 16:33 tags: [JavaScript,CSS,HTML,D3.js,SVG] 虽然创建了多个rect&#xff0c;但是都重叠在一起&#xff0c;如何将他们分列开来呢&#xff1f; 一、学习目标 使用回调函数动态设置坐标 .attr(“x”,(d,i)>…

laravel vue tailwind

下载laravel最新7.x composer create-project --prefer-dist laravel/laravle blog 7.x-dev cd blog valet link blog valet links blog.test 测试通过后&#xff0c;开始安装tailwind npm i npm i tailwindcss autoprefixer postcss7 都是最新版应该也没有什么问题 在根目录下…

UE的Blend Profile

参考&#xff1a;Animation Blend Profile in Unity 参考&#xff1a;Unreal Engine - How to make a Blend Profile 参考&#xff1a;blend-masks-and-blend-profiles-in-unreal-engine 什么是Blend Profile Animation Blend Profile is a UE4 animation system feature that …

aws eks 使用keycloak集成eks oidc访问apiserver

资料 OpenID Connect Tokens Kubernetes 与 OpenID 集成 SSO 登录测试 Introducing OIDC identity provider authentication for Amazon EKS Understanding Amazon Cognito user pool OAuth 2.0 grants 在 Kubernetes 中使用 Keycloak OIDC Provider 对用户进行身份验证 深…

Koa2基础笔记

目录 一、快速入门 二、中间件 链式调用 洋葱圈模型 异步处理 三、路由 koa-router 四、请求参数解析 处理URL参数 处理body参数 五、错误处理 原生的错误处理 使用中间件 一、快速入门 新建文件夹使用VSCode打开&#xff0c;终端运行npm init -y生成package.json…

[附源码]计算机毕业设计springboot水果管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

冬季寒冷,普通空调如何做到智能控制,增温又降耗的?

寒冷的冬日总少不得取暖的工具&#xff0c;空调成为人们的优先选择。但是&#xff0c;在办公大楼、商场等需要长时间空调供暖&#xff0c;空调又多的地方&#xff0c;空调控制让不少人感觉到了困扰。上下班时间空调多&#xff0c;检查慢&#xff0c;如果漏掉其中一个&#xff0…

C++——类和对象讲解

C——类和对象讲解总览 本篇文章的讲解将按照上述的方式&#xff0c;逐层递进&#xff0c;进一步帮你拿捏C类和对象这部分。 类和对象上&#xff08;基础篇&#xff09; 1、初识面向对象编程&#xff1a; 初步了解面向过程和面向对象的区别 举个比较感人的例子用来帮助铁子…