1.Python 引入(字面量、注释、变量、数据类型、数据类型转换、标识符、运算符、字符串扩展)
一、字面量
1、基本介绍
- 在代码中,被写直接下来的、不需要通过变量存储的值,称之为字面量
2、常用值类型
类型 | 说明 |
---|---|
数字(Number) | 整数(int),例如:10、-10 浮点数(float),例如: 12.34、-12.34 复数(complex),例如: 4 + 3j ,以 j 结尾表示复数布尔(bool),True 表示真,数字记作 1,False 表示假,数字记作 0 |
字符串(String) | 描述文本的一种数据类型,由任意数量的字符组成,例如,中文、英文、符号、数字等 注:在 Python 中,字符串需要用双引号 "" 包围起来,即被双引号包围起来的,都是字符串 |
列表(List) | 有序的可变序列,Python 中使用最频繁的数据类型,可以有序记录一堆数据 |
元组(Tuple) | 有序的不可变序列,可以有序记录一堆不可变的数据 |
集合(Set) | 无序不重复集合,可以无序记录一堆不重复的数据 |
字典(Dictionary) | 无序 Key - Value 集合,可以无序记录一堆 Key - Value 型数据 |
3、基本使用
类型 | 程序中编写 | 说明 |
---|---|---|
整数 | 10,-10 | 和现实中的写法一致 |
浮点数 | 12.34、-12.34 | 和现实中的写法一致 |
字符串 | "Hello World" | 程需要加上双引号 |
10
12.34
"Hello World"print(10)
print(12.34)
print("Hello World")
- 输出结果
10
12.34
Hello World
二、注释
1、基本介绍
-
注释是在程序代码中对程序代码进行解释说明的文字
-
注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用,能够大大增强程序的可读性
2、注释的分类
- 单行注释:以井号
#
开头
# 我是单行注释
- 多行注释:以一对三个双引号
"""
引起来,也可以以一对三个单引号'''
引起来
"""我是多行注释我是多行注释
"""
'''我是多行注释我是多行注释
'''
- 注:多行注释一般对 Python 文件、类或方法进行解释
3、基本使用
"""1.演示各类字面量的写法2.通过 print 语句输出各类字面量
"""# 编写一个整数字面量
10# 编写一个浮点数字面量
12.34# 编写一个字符串字面量
"Hello World"# 通过 print 语句输出各类字面量
print(10)
print(12.34)
print("Hello World")
4、注释问题
编号 | 问题 | 回答 |
---|---|---|
1 | 单行注释中能否使用多行注释? | 不能 |
2 | 多行注释中能否使用单行注释? | 能 |
3 | 多行注释中能否使用多行注释? | 不能 |
三、变量
1、基本介绍
-
变量是在程序中用于存储数据,且变量的值可以发生改变
-
变量的值可以发生改变
2、变量定义
【变量名称】 = 【变量值】
3、基本使用
# 定义一个变量,用来记录钱包的余额
money = 60# 输出变量记录的内容
# print 语句通过使用逗号(,)分隔来输出多份内容
print("钱包余额:", money)# 买了一个冰淇淋,花费 10 元
money = money - 10# 输出变量记录的内容
print("买了一个冰淇淋,花费 10 元,钱包余额:", money)
- 输出结果
钱包余额: 60
买了一个冰淇淋,花费 10 元,钱包余额: 50
四、数据类型
1、基本介绍
- 在入门阶段,主要接触如下三类数据类型
类型 | 描述 | 说明 |
---|---|---|
string | 字符串类型 | 用引号引起来的数据都是字符串 |
int | 整型(有符号),数字类型 | 存放整数,如 -1,10,0 等 |
float | 浮点型(有符号),数字类型 | 存放小数,如 -2.33, 6.66 等 |
2、type() 语句
(1)基本介绍
- 可以通过 type() 语句来得到数据的类型
type(【数据】)
(2)基本使用
- 在 print 语句中,直接输出类型信息
print(type(10)) # <class 'int'>
print(type(1.23)) # <class 'float'>
print(type("Hello World")) # <class 'str'>
- 用变量存储 type() 的结果
int_type = type(10)
float_type = type(1.23)
string_type = type("Hello World")print(int_type) # <class 'int'>
print(float_type) # <class 'float'>
print(string_type) # <class 'str'>
- 查看变量存储的数据的类型
name = "jack"
age = 20
score = 95.5print(type(name)) # <class 'str'>
print(type(age)) # <class 'int'>
print(type(score)) # <class 'float'>
- 数据类型的判断
data1 = 10
data2 = "Hello"print(type(data1) == int) # True
print(type(data1) == str) # False
print(type(data2) == int) # False
print(type(data2) == str) # True
- 注:变量没有类型,它存储的数据有类型
五、数据类型转换
1、为什么要类型转换
-
数据类型之间,在特定的场景下,是可以相互转换的,如字符串转数字、数字转字符串等
-
数据类型转换,将会是以后经常使用的功能,如:
-
从文件中读取的数字,默认是字符串,需要转换成数字类型
-
input() 语句,默认结果是字符串,若需要数字也需要转换
-
将数字转换成字符串用以写出到外部系统
2、常见的转换语句
语句(函数) | 说明 |
---|---|
int(x) | 将 x 转换为一个整数 |
float(x) | 将 x 转换为一个浮点数 |
str(x) | 将对象 x 转换为字符串 |
- 注:字符串不可以随意转换成数字,字符串内必须只有数字才可以
3、基本使用
# 将字符串类型转换为数字
int_num = int("10")
print(type(int_num), int_num)float_num = float("1.23")
print(type(float_num), float_num)print("------------------------------")# 将数字类型转换为字符串
int_str = str(123)
print(type(int_str), int_str)float_str = str(123.456)
print(type(float_str), float_str)print("------------------------------")# 整数转换为浮点数
num1 = float(20)
print(type(num1), num1)print("------------------------------")# 浮点数转转换为
num2 = int(6.66)
print(type(num2), num2)
- 输出结果
<class 'int'> 10
<class 'float'> 1.23
------------------------------
<class 'str'> 123
<class 'str'> 123.456
------------------------------
<class 'float'> 20.0
------------------------------
<class 'int'> 6
六、标识符
1、什么是标识符
-
在 Python 中,我们可以给很多东西起名字,比如:变量的名字、方法的名字、类的名字等等,这些名字,我们把它统一的称之为标识符,用来做内容的标识
-
所以,标识符是在编程的时候所使用的一系列名字,用于给变量、类、方法等命名
2、标识符命名规则
(1)内容限定
-
标识符命名中,只允许出现:英文、中文、数字和下划线(_)这四类元素,其余任何内容都不被允许
-
不推荐使用中文
-
数字不可以开头
(2)大小写敏感
- 大写和小写,是完全能够区分的
name = "jack"
Name = "smith"print(name) # jack
print(Name) # smith
(3)不可使用关键字
- Python 中有一系列单词,称之为关键字,关键字在 Python 中都有特定用途,不可以使用它们作为标识符

3、标识符命名规范
- 目前只接触到了变量,所以,目前介绍变量的命名规范
(1)见名知意
-
明了:尽量做到,看到名字,就知道是什么意思
-
简洁:尽量在确保“明了”的前提下,减少名字的长度
(2)下划线命名法
- 多个单词组合变量名,要使用下划线做分隔,如 student_nickname
(3)英文字母全小写
- 命名变量中的英文字母,应全部小写
七、运算符
1、算术运算符
(1)基本介绍
运算符 | 描述 | 实例 |
---|---|---|
+ | 两数相加 | 10 + 20 输出结果为 30 |
- | 得到负数或两数相减 | 10 - 20 输出结果为 -10 |
* | 两数相乘或是返回一个被重复若干次的字符串 | 10 * 20 输出结果为 200 |
/ | 两数相除 | 10 / 20 输出结果为 0.5 |
// | 两数相除并返回商的整数部分 | 9 // 2 输出结果为 4 |
% | 两数相除并余数 | 10 % 5 输出结果为 0 |
** | 幂运算 | 10 ** 2 表示 10 的 2 次方, 输出结果为 100 |
(2)基本使用
print("10 + 20 输出结果为", 10 + 20)
print("10 - 20 输出结果为", 10 - 20)
print("10 * 20 输出结果为", 10 * 20)
print("10 / 20 输出结果为", 10 / 20)
print("9 // 2 输出结果为", 9 // 2)
print("10 % 5 输出结果为", 10 % 2)
print("10 ** 2 输出结果为", 10 ** 2)
- 输出结果
10 + 20 输出结果为 30
10 - 20 输出结果为 -10
10 * 20 输出结果为 200
10 / 20 输出结果为 0.5
9 // 2 输出结果为 4
10 % 5 输出结果为 0
10 ** 2 输出结果为 100
2、赋值运算符
(1)基本介绍
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值运算符,把等号右边的结果赋给左边的变量 | num = 1 + 2 * 3,num = 7 |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
(2)基本使用
num = 10
num += 5
print("num += 1 输出结果为", num)num = 10
num -= 5
print("num -= 5 输出结果为", num)num = 10
num *= 5
print("num *= 5 输出结果为", num)num = 10
num /= 5
print("num /= 5 输出结果为", num)num = 10
num %= 4
print("num %= 4 输出结果为", num)num = 10
num //= 3
print("num //= 3 输出结果为", num)num = 10
num **= 2
print("num **= 2 输出结果为", num)
- 输出结果
num += 1 输出结果为 15
num -= 5 输出结果为 5
num *= 5 输出结果为 50
num /= 5 输出结果为 2.0
num %= 4 输出结果为 2
num //= 3 输出结果为 3
num **= 2 输出结果为 100
八、字符串扩展
1、字符串定义
(1)定义格式
- 双引号定义法
"【字符串】"
- 单引号定义法
'【字符串】'
- 三个双引号定义法
"""【字符串】"""
- 注:三个双引号定义法,在三个双引号范围内,均是字符串
text = """【字符串】【字符串】
"""
- 三个单引号定义法
'''【字符串】'''
- 注:三个单引号定义法,在三个双引号范围内,均是字符串
text = '''【字符串】【字符串】
'''
(2)基本使用
text1 = "Hello World1"
text2 = 'Hello World2'
text3 = """Hello World3-1Hello World3-2
"""
text4 = '''Hello World4-1Hello World4-2
'''print(text1)
print(text2)
print(text3)
print(text4)
- 输出结果
Hello World1
Hello World2
Hello World3-1Hello World3-2Hello World4-1Hello World4-2
2、字符串的引号嵌套
(1)基本介绍
-
单引号定义法,可以内含双引号
-
双引号定义法,可以内含单引号
-
可以使用转移字符(\)来将引号解除效用,变成普通字符串
(2)基本使用
# 在字符串内包含双引号
str1 = '"Hello World1"'
print(str1)# 在字符串内包含单引号
str2 = "'Hello World2'"
print(str2)# 使用转移字符(\)来将引号解除效用
str3 = "\"Hello World3\""
print(str3)str4 = '\'Hello World4\''
print(str4)
- 输出结果
"Hello World1"
'Hello World2'
"Hello World3"
'Hello World4'
3、字符串拼接
- 字符串字面量之间的拼接
print("Hello " + "World") # Hello World
- 字符串字面量和字符串变量的拼接
name = "jack"
print("Hello " + name) # Hello jack
- 注:无法和非字符串类型进行拼接
4、字符串格式化
(1)字符串拼接的缺点
-
变量过多,拼接起来太麻烦
-
字符串无法和数字或其它类型完成拼接
(2)字符串格式化使用
name = "jack"
age = 20
print("我的名字是 %s" % name) # 我的名字是 jack
print("我的名字是 %s,我今年 %s 岁" % (name, age)) # 我的名字是 jack,我今年 20 岁
符号 | 说明 |
---|---|
% | 表示占位 |
s | 表示将变量变成字符串放入占位位置 |
- 注:多个变量占位,变量要用括号括起来,并按照占位的顺序填入,使用逗号分隔
(3)常用数据类型占位
格式符号 | 说明 |
---|---|
%s | 将内容转换成字符串,放入占位位置 |
%d | 将内容转换成整数,放入占位位置 |
%f | 将内容转换成浮点数,放入占位位置 |
- 基本使用
name = "smith"
age = 15
score = 90.5
print("我的名字是 %s,我今年 %d 岁,我的成绩是 %f" % (name, age, score)) # 我的名字是 smith,我今年 15 岁,我的成绩是 90.500000
5、字符串格式化数字精度控制
(1)基本介绍
- 使用辅助符号“m.n”来控制数据的宽度和精度
符号 | 说明 |
---|---|
m | 控制宽度,要求是数字(很少使用),当设置的宽度小于数字自身时,不生效 |
.n | 控制小数点精度,要求是数字,会进行小数的四舍五入 |
示例 | 说明 |
---|---|
%5d | 表示将宽度设置为 5 位 如,对数字 11 设置 %5d,结果是:【空格】【空格】【空格】11,3 个空格补足宽度 |
%5.2f | 表示将宽度设置为 5 位,将小数点精度设置为 2 位,小数点和小数部分也加入宽度计算 如,对数字 11.345 设置 %7.2f,结果是:【空格】【空格】11.35,2 个空格补足宽度,小数部分四舍五入为 .35 |
%.2f | 表示不限制宽度,只将小数点精度设置为 2 位 如,对数字 11.345 设置 %.2f,结果是:11.35 |
(2)基本使用
num1 = 11
num2 = 12.345print("数字 11 宽度设置为 5,结果是:%5d" % num1)
print("数字 11 宽度设置为 1,结果是:%1d" % num1)
print("数字 12.345 宽度设置为 7,小数精度设置为 2,结果是:%7.2f" % num2)
print("数字 12.345 不限制宽度,小数精度设置为 2,结果是:%0.2f" % num2)
- 输出结果
数字 11 宽度设置为 5,结果是: 11
数字 11 宽度设置为 1,结果是:11
数字 12.345 宽度设置为 7,小数精度设置为 2,结果是: 12.35
数字 12.345 不限制宽度,小数精度设置为 2,结果是:12.35
6、字符串快速格式化
(1)基本介绍
f"{【变量】}"
- 注:这种写法不做精度控制,也不理会类型,适用于快速格式化字符串
(2)基本使用
name = "tom"
age = 15
score = 90.5
print(f"我的名字是 {name},我今年 {age} 岁,我的成绩是 {score}")
- 输出结果
我的名字是 tom,我今年 15 岁,我的成绩是 90.5
7、表达式格式化
(1)什么是表达式
-
表达式是一条具有明确执行结果的代码语句
-
如:1 + 1、5 * 2 就是表达式,因为有具体的结果,结果是一个数字
-
又或者,常见的变量定义:name = “张三”、age = 11 + 11,等号右侧的都是表达式,因为它们有具体的结果,结果赋值给了等号左侧的变量
(2)表达式格式化使用
print("2 * 3 的结果是:%d" % (2 * 3))
print(f"3 * 4 的结果是:{3 * 4}")
print("'Hello World' 在 Python 中的类型是:%s" % type('Hello World'))
- 输出结果
2 * 3 的结果是:6
3 * 4 的结果是:12
'Hello World' 在 Python 中的类型是:<class 'str'>
九、键盘输入
1、input() 语句
-
print() 语句可以完成将内容(字面量、变量等)输出到屏幕上,在 Python 中,与之对应的还有一个 input() 语句,用来获取键盘输入
-
使用 input() 语句可以从键盘获取输入,使用一个变量接收 input() 语句获取的键盘输入数据即可
-
可以通过使用 input(【提示信息】) 用以在使用者输入内容之前显示提示信息
-
无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型
2、基本使用
# 输入字符串类型
print("请告诉我你的名字:")
name = input()
print("你的名字是", name)print("------------------------------")# 输入数字类型
age_str = input("请告诉我你的年龄:")
print(f"你输入的年龄是:{age_str},类型是:{type(age_str)}")
age = int(age_str)
print("你的年龄现在类型是:", type(age))
- 输出结果
请告诉我你的名字:
jack
你的名字是 jack
------------------------------
请告诉我你的年龄:20
你输入的年龄是:20,类型是:<class 'str'>
你的年龄现在类型是: <class 'int'>
相关文章:

1.Python 引入(字面量、注释、变量、数据类型、数据类型转换、标识符、运算符、字符串扩展)
一、字面量 1、基本介绍 在代码中,被写直接下来的、不需要通过变量存储的值,称之为字面量 2、常用值类型 类型说明数字(Number)整数(int),例如:10、-10浮点数(float&…...
【AI知识点】梯度消失(Vanishing Gradient)和梯度爆炸(Exploding Gradient)
梯度消失(Vanishing Gradient) 和梯度爆炸(Exploding Gradient) 是神经网络训练中的常见问题,特别是在深层神经网络(DNN)或递归神经网络(RNN)中。这两者主要与反向传播算…...
在 ArkTS 网络请求中,重新封装一下 http 模块
在ArkTS中,重新封装http模块可以提供一个更简洁、更易于使用的API,同时隐藏底层细节,使开发者能够更专注于业务逻辑。以下是一个简单的示例,展示了如何重新封装鸿蒙系统的kit.NetworkKit中的http模块: // 创建一个新的…...

Microsoft 更新 Copilot AI,未來將能使用語音並看到你瀏覽的網頁
不過受到 Recall 事件的影響,更新的推出將更緩慢謹慎。 Microsoft 也同步對其網頁版及行動版的 Copilot AI 進行大改版。這主要是為網頁版換上了一個較為簡單乾淨的介面,並增加了一些新的功能,像是 Copilot Voice 能讓你與 AI 助手進行對話式…...

系统架构设计师-论文题(2021年下半年)
1.试题一 论面向方面的编程技术及其应用针对应用开发所面临的规模不断扩大、复杂度不断提升的问题,面向方面的编程Aspect Oriented Programming,AOP技术提供了一种有效的程序开发方法。为了理解和完成一个复杂的程序,通常要把程序进行功能划分和封装。一…...

selenium的webdriver常用方法和属性介绍(2)
selenium的webdriver介绍 从selenium导入webdriver模块,在pycharm中跳转webdriver模块的__init__.py文件,内容如图所示:从selenium包的子目录中导入了很多模块并做了重命名,用于支持如下 Chrome/Edge/Ie/Firefox/Safari浏览器。 使…...

73.【C语言】C/C++的内存区域划分
目录 1.内存里的几个区域 2.示意图 3.解释 1.内存里的几个区域 除了耳熟能详的栈区,堆区,静态区,还有内核空间,内存映射段,数据段,代码段 2.示意图 3.解释 栈区(stack area):局部变量,函数参数,返回数据,返回地址 内存映射段:将文件映射到内存 映射的含义: 如果看过李忠…...

k8s 中存储之 hostPath 卷
目录 1 hostPath 卷介绍 2 hostPath 卷实际应用操作 2.1 创建 pod 资源类型 2.2 修改清单文件增加 hostPath 对应的参数配置 2.3 查看是否创建 卷 和 pod 2.4 创建发布文件测试是否正常访问 1 hostPath 卷介绍 EmptyDir中数据不会被持久化,它会随着Pod的结束而销…...

Cherno游戏引擎笔记(73~90)
------- scene viewport ---------- 》》》》做了两件事:设置视口和设置相机比例 》》》》为什么要设置 m_ViewportSize 为 glm::vec2 而不是 ImVec2 ? 因为后面需要进行 ! 运算,而 ImVec2 没有这个运算符的定义,只有 glm::vec2 有这个运算…...

helm 测试卸载或删除(redis)
作者:程序那点事儿 日期:2024/02/07 18:30 查看redis 集群实例 kubectl get all -n redis 卸载集群实例 helm uninstall redis -n redis 删除pvc kubectl get pvc -n redis kubectl delete pvc redis-data-redis-master-0 redis-data-redis-replicas…...

关于Qt音乐播放器进度条拖拽无用的问题解决方案
在使用Qt编写音乐播放器的时候,进度条关联播放音乐基本是必须的。那么在设计的过程中你可能会碰到一个奇怪的问题就是拖拽进度条的时候,可能会报错如下: 然后音乐就卡着不动了。。。 connect(ui->volume_toolButton,&VolumeToolBtn::…...

Redis:初识Redis
Redis:初识Redis Redis 介绍分布式架构Redis特性安装Redis Redis 介绍 在官网中,是如下介绍Redis的: in-memory data store used by millions of developers as a cache, vector database, document database, streaming engine, and messag…...
【React】增量传输与渲染
增量传输 增量传输是一种高效的文件传输方式,其核心原理在于只传输文件中发生变化的部分,而不是整个文件。以下是增量传输的详细解析: 定义与原理: 增量传输通过比对原始文件和目标文件,找出两者之间的差异部分&#…...

【回眸】Tessy 单元测试软件使用指南(四)常见报错及解决方案与批量初始化的经验
前言 分析时Tessy的报错 1.fatal error: Tricore/Compilers/Compilers.h: No such file or directory 2.error: #error "Compiler unsupported" 3.warning: invalid suffix on literal;C11 requires a space between literal and string macro 4.error: unknown…...
2024 - 10 :生物药学: 如何获取对应核心靶点基因的激酶
如何获取对应核心靶点基因的激酶 步骤 1:收集蛋白质信息 获取 UniProt ID: 对于每个基因,使用 UniProt 数据库获取其对应的蛋白质信息,包括 UniProt ID、序列和功能注释。UniProt 网站:https://www.uniprot.org/ 示…...

STM32 HAL库UART查询方式实例
本文中介绍USART编程涵盖了三种主要方法,详细介绍STM32F407微控制器结合HAL库,通过UART的查询方式来实现一个实用的密码验证程序。提示用户键入一个字符作为密码。只有当用户精准地输入字符6时,系统才会反馈“密码正确”的确认信息。反之&…...

数据结构--线性表双向链表的实现
目录 思路设计 总体思维导图 插入部分 头插法尾插法 任意位置插入 删除部分 头结点 尾节点 中间节点 只有头结点且删除的就是头结点 编辑 清空链表部分 遍历清空链表的所有节点 不遍历清空 各部分代码 Main部分 MyListedList部分 IndexOutOfException部分 …...

第一个Flutter应用(一)
1、创建项目 1.1 新建 1.2 选择Flutter SDK的位置 1.3 项目名称 英文单词加下划线起名规范,其他默认即可。 1.4 点击运行 发生报错显示我们的JAVA版本不符合 1.5 更改版本设置 1.6 再次启动项目 2、分析页面代码 以下是lib/main.dart的源代码(为了阅…...

批量查询快递单号物流信息:高效掌握最后更新动态
在电商和物流行业蓬勃发展的今天,快递单号的物流信息追踪显得尤为重要。对于商家和客户来说,了解包裹的最后更新物流状态是确保货物安全、及时送达的关键。本文将介绍如何批量查询快递单号的物流信息,帮助您高效掌握每个包裹的最新动态。 1运…...

随着硬件水平的提升,LabVIEW有哪些过去的编程方法被淘汰掉了
随着硬件水平的不断提升,尤其是处理器性能、存储能力、通信速度等方面的飞跃,LabVIEW的一些早期编程方法逐渐被更高效、现代的编程技术所取代。以下是一些随着硬件升级而逐步淘汰的LabVIEW编程方法和技术: 1. 低效的数据流传输方式 过去由于…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...

React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...