Python基础--PART1

news2024/11/19 9:19:26

最近闲来无事,学习使用Python也有好几年了,一直没有系统的总结,现在有时间就写一写个人的一些拙见。

PART1. 核心语法(基础语法)

1. 变量

1.1 变量的定义

​ 变量就是可变的量,对于一些有可能会经常变化的数据,我们需要使用一个符号,这样才能计算中使用它,就像我们在小学时学过的一元方程中的"x"一样。比如说,我们在控制台内输入:

x = "world"

​ 这样我们就新定义了一个变量,它的值是"world", 我们稍稍修改一下Hello world的例子,这次我们使用变量x。

print("Hello", x)

​ 运行后输出的结果和我们之前的例子是一样的,在这里,x就相当于"world"。对于变量,我们可以理解为一个带有抓手的容器,我们可以往里任何我们想放的东西,而这个抓手,就是变量名,提着这个抓手,我们可以更方便的使用容器里的东西。

name = "Smith"
print("Mr", name)
print("Mrs", name)

1.2 变量命名规则

在Python中,变量名尽量遵循一下的规则:

​ 变量名由字母、数字和下划线组成,也就是a-z, A-Z, 0-9和_;

​ 变量名不能以数字开头;

​ 变量名是区分大小写的,比如a 和 A就是两个不同的变量。

# 这些都是合法的变量名
a = "hello"
MyJob = "analyst"
player1 = "姚明"
_private_name = "ss"
player1_score = 41
_ = "something"

# 下面这些都是不合法的变量名
1abc # 不能以数字开头
123
abc- # 注意这是横杠符号,不是下划线

另外,在此基础上,我们也约定了一些变量名的命名规范。比如:

​ 普通变量一般用小写字母;

​ 最好不要用单词加数字的方式来命名变量,尤其是没有意义的随机数字;

​ 有两种风格的变量名:单词之间用下划线隔开;每个单词的首字母使用大写字母(也称为驼峰命名法)

注意,上面的规范只是程序员们的一种约定俗成规则,并不是Python语言的硬性要求。但是遵循了这些规范,写出来的变量名可读性更高,更有利于团队合作。

1.3 关键字

​ 以下的这些单词都是Python的关键字,每个编程语言都有各自的关键字,它们组成了编程语言基本的语法规则,在命名的时候避免使用这些名字就行了。

False	 await	 else	 import	 pass
None 	break 	except 	in 	raise
True	 class 	finally 	is 	return
and 	continue	 for	 lambda 	try
as 	def 	from 	nonlocal 	while
assert 	del 	global 	not		with
async	 elif	 if 	or 	yield

​ 如果你一不小心定义了一个与关键字相同的变量,代码会在运行的时候报错

True = 0
# 上面这行代码运行会输出下面的信息,提示不能给关键字赋值。
# File "<stdin>", line 1
# SyntaxError: can't assign to keyword

1.4 变量赋值

​ 变量是可以重复使用,并且是可以修改的,由于Python的变量不需要先声明,所以变量的声明和赋值是在同一行代码完成的,比如我们上面声明的name变量。

def foo():
    pass
name = "Smith"
foo()

​ 在这一行里,我们先定义了一个名为"name"的变量,然后给它赋值为"Smith",这样,我们就有了一个变量"name",它的值是"Smith"。变量必须要先声明,才能使用。如果使用了一个从未定义过的变量xxx,Python解释器会抛给你一个这样的错误:

NameError: name 'xxx' is not defined

​ 在变量定义完成后,我们可以随意读取、修改它的值,比如:

# 定义name变量,赋值为"Smith"
name = "Smith"
print("Mr", name)

# 修改变量的值为"Jones"
name = "Jones"
print("Mr", name)

有时候,我们需要定义好几个变量,以进行计算。比如现在我想要定义三个变量,可以这样写:

#三个相同
a = b = c = 1
#三个不同
a, b, c = 1, 2, 3

1.5 变量的销毁

​ 在Python中,我们一般无需手动的去销毁变量,Python的垃圾回收机制会帮我们处理掉那些不再使用的变量,如果我们想刻意销毁删除某个变量,可以使用del关键字。

# 销毁后,这个变量就像没有定义过一样,再使用它的话就会产生异常。
del name

2. 数据类型

​ 三种基本的数据类型:

​ 数值,包括整数和浮点数;

​ 字符串;

​ 布尔值。

2.1 数值

​ Python中数值有两种类型,整形(int)和浮点型(float),通俗一点的讲,一个是不带小数点的,一个带小数点的。

# 这是一个整形
a = 100

# 这是一个浮点型变量
b = 3.14

# 整形和浮点形数值可以相互运算
# c是一个浮点型变量
c = a + b

​ 这里面变量c还是一个浮点型,它的值是3.0,可以得出一个结论,只要有浮点数参与的运算,它的结果肯定也是浮点数

a = 0.14
b = 3.14
c = b - a # c=3.0

2.2 字符串

​ 我们在定义字符串时使用的都是双引号,其实Python也支持单引号,它们并没有什么区别。

​ 如果说还有更长的字符串,类似一整段话,我们可以使用三引号。

a = "Hello"
b = 'world'
print(a, b)
# 输出的结果仍然是Hello world

cen = """Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense."""
print(cen)

​ 当如果字符串含有特殊字符,比如双引号,我们可以加一个" \ "来进行转义。(反斜杠)

print("Buddha: \"What we think, we become.\"")
# 输出的结果是:Buddha: "What we think, we become."

2.3 布尔值

​ 布尔值只有两个值: True 和 False

a=3
b=4
# false
print(a>b)
# true
print(a<b)

2.4 空值None

​ 空值None是Python中的一个特殊值,它代表空值,表示“什么都没有”,None同时也是关键字。None的用处有很多,比如说你想定义一个变量,但一时还没想好给它赋什么值,甚至连它用什么类型也没决定好,这时可以先用None。

temp = None
print(temp)
# None被输出的时候显示为一个字符串"None"

2.5 类型转换

2.5.1 布尔值转换

​ 要想把其他值转换为布尔值,需要使用一个内置函数bool(),我们在控制台按顺序输入以下的代码。

所有的非零值转换为True, 只有零值才转换为False。

# 以下值都为True
bool(1)
bool(-1)
bool(255)
bool(0.0000001)
bool(-99.99)

# 下面的值为False
bool(0)
bool(0.0)

​ 字符串也可以转换为布尔值。

对于任何非空的字符串,转换为布尔值都是True。

# 这是一个空字符串,转换结果为False
bool("")

# 转换结果为True
bool("abc")

# 这是一个只包含一个空格的字符串,转换结果为为True
bool(" ")

空值转换为布尔值永远都是False

# 结果为False
bool(None)
2.5.2 字符串转换

使用str() 将其他类型转换为字符串

a = 18
print(type(a))
a = str(a)
print(type(a))
2.5.3 数值转换

​ 数值转换是我们在数据分析过程中经常用到的,因为我们从任何文件中读到的数字一开始都是字符串,需要将它们转换为数值才能进行运算。如果想要把一个整数字符串转换为int类型,使用int():

num = "1"
int(num) + 1
# 如果将int()去掉,这段代码则会报错,因为num是个字符串,不能将字符串和数值进行相加。

​ 数值的前后带有空格也可以成功转换,带有符号的数字也可以成功转换

int(" 100 ") # 结果为100
int("-1") # 结果为-1
int("+1") # 结果为1

​ 如果想要把一个带小数点的字符串转换为float类型,使用float():

pi = "3.1415926"
float(pi)

​ int类型和float类型之间也可以相互转换

int(3.14) #结果为3
int(9.9) # 结果为9   9.9并没有转换为10,小数部分精度将被丢弃,只取整数部
float(100) # 结果为100.0

​ 如果想要四舍五入的来转换,可以使用round函数,round函数让我们可以指定要保留小数点后几位:

# 保留小数点后两位,由于第三位是1,所以结果是3.14
round(3.1415926, 2)
# 保留小数点后三位,由于第四位是5,所以结果是3.142
round(3.1415926, 3)

​ 布尔值也可以转换为int或者float

# 恰好是数值类型转换为布尔类型的相反过程
int(True) # 结果是1
int(False) # 结果是0
float(True) # 结果是1.0
float(False)# 结果是0.0

3. 运算符

3.1 算术运算符

​ Python中进行数值运算需要的符号如下

运算符描述实例
+1 + 1; a + b
-10 - 5; a - b -c
*4 * 2 相当 4 × 2
/4 / 2 相当于 4 ÷ 2
//取整除10 // 4 结果是 2
%取模10 % 4 相当于 10 - (10 // 4) × 4,r = a % b = a - [a//b]*b
**指数2 ** 3 相当于 2 * 2 * 2,也就是2的3次方
()小括号提高运算优先级,比如: (2 + 8) * 3

​ 例子:

print(1 + 1)
print(10 - 5)
print(4 * 2)
print(4 / 2) # 结果是2.0,返回值为浮点数
print(10 / 3) # 结果是3.3333333333333335
print(5 / 2) # 结果是2.5,返回值为浮点数
print(5 // 2) # 结果是2,双斜杠来进行运算,返回int
print((2 + 8) * 3) # 结果是30

关于取模运算符:

​ 当两个数能整除时,取模运算的结果为0,比如 8 % 4 的结果是0;

​ 当0<a<b时,a % b = a,比如 3 % 8 的结果是3;

​ 当两个数中有负数时,结果可能会跟我们预料的不同,记住这个公式就行了 :a % b 就相当于a -(a // b) * b;

​ 0不能作为除数,也不能用来取模。

3.2 算术运算符操作字符串

​ 字符串在Python中也可以“运算”,可以理解为拼接。

print("Hello " + "world")
print("apple " + "apple " + "apple ")
print("apple " * 5)

​ 使用加号拼接字符串时需要注意,不能将字符串与数值一起相加

print("您账户积分为:" + 500)  #达咩
print("您账户积分为:" + str(500))  #ok

3.3 赋值运算符

​ 赋值操作其实就是在前面定义变量的时候我们都会使用等于号。

num = 1
name = "Smith"

​ 结合运算符,我们可以做更多的赋值操作:

运算符描述实例
+=加法赋值运算符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 XX a

​ 在日常编程中最常用的是加法赋值和减法赋值,比如设置一个计数器,每次+1

count = 0
count += 1
count += 1 # 值为2

3.4 比较运算符

​ 比较运算符是用来运算布尔值的, 将两个值放在一起比较,最后得到True或者False。

运算符描述实例
==等于100 == 100
!=不等于100 != 99
>大于2 > 1
<小于1 < 2
>=大于等于3 >= 2
<=小于等于2 <= 3

​ 实例:

100 == 100 # True
100 == "abc" # False
1 != 2 # True
2 != 2 # False
3 > 3 # False
3 >= 3 # True
2 < 3 # True
2 <= 3 # True

# 不仅可以判定值,也可用于类型的判断
100 == "100" # False
100 == 50 * 2 # True
str(100) == "100" # True
1.0 != 1 # False
int(1.9) == 1 # True

3.5 逻辑运算符

​ 真实的程序中,常常需要判断的条件是复杂的,所以我们需要逻辑运算符将多个比较运算连接起来。

运算符逻辑表达式描述
andx and y任意一个是False,结果就是False
orx or y任意一个是True,结果就是True
notnot x将条件取反

​ 实例:

# 定义两个变量
a, b = 1, 2
a > 0 and a < b # True
a % 2 == 0 or b % 2 == 0 # True
not a > b # True

# 思考
a = 0 or 100 # a=100
b = 1 or 2 # b=1

4. 流程控制

4.1 条件判断

4.1.1 if…else…

​ 在这里要介绍两个重要的关键字,if 和 else,看它们的字面意思就能猜到它们表示“如果”… “否则”…

注意缩进

num = 3
# 通过取模运算判断num是否能被2整除
if num % 2 == 0:
	print(str(num) + "是一个偶数")
else:
	print(str(num) + "是一个奇数")
    
4.1.2 elif

​ 比如说来判断一个学生的考试成绩,60分以下的为不及格,60~90分为合格,90分以上为优秀,这里面有三个条件。

score = 80
if score < 60:
	print("您的考试成绩不及格")
elif score < 90:
	print("您的考试成绩合格")

else:
	print("您的考试成绩优秀")
    

4.1.3 if条件嵌套

​ 还是以学生考试成绩的例子来说,现在我们想对60100分的进行更细的划分,6070分为合格,70~90分为良好,90分以上为优秀。

score = 100
if score >= 60:
	if score < 70:
		print("您的考试成绩为合格")
	elif score < 90:
		print("您的考试成绩为良好")
	else:
		print("您的考试成绩为优秀")
else:
	print("您的考试成绩不及格")
4.1.4 与逻辑运算符组合
age = 22
if age > 18 and age < 60:
	print("你已经不是个孩子啦,该去工作啦")

# 简洁版
age = 22
if 18 < age < 60:
	print("你已经不是个孩子啦,该去工作啦")	
4.1.5 自动类型转换

​ if 和 elif 的后面总是跟着一个表达式,这个表达式的结果必须是True或者False,如果表达式运算出来的结果不是一个布尔值,则会自动将结果转换为布尔值,无论它是什么类型的值。转换的结果遵循我们之前学过的布尔转换规律。

# 试着将count的值改为1,条件则成立了
count = 0
if count:
	print("条件成立")
else:
	print("条件不成立")

​ 0值、None 和空字符串转换为布尔值后都是False

result = None
if result:
    pass
else:
	print("什么收获都没有")

4.2 循环

4.2.1 while循环

​ 跑圈案例

lap = 0
while lap < 10:
	lap += 1
	print("我跑完了第" + str(lap + 1) + "圈")
image-20230427111941290
4.2.2 for循环

​ for循环可以用来遍历序列,序列指的是一个可迭代的有序的集合,比如字符串就是一个序列,下面我们用for循环来打印出一个字符串中的所有字符。

seq = "hello"
for s in seq:
	print(s)

​ 也可以用for循环来打印一连串的数字,这里需要用到一个新的内置函数:range。

# range函数的作用就是提供一个从0到4的迭代器,而for可以遍历这个迭代器。注意是从0开始的,整个循环一共打印了5个数。
#左闭右开
for i in range(5):
	print(i)
    
# 跑圈优化
for lap in range(10):
	print("我跑完了第" + str(lap + 1) + "圈")
    
4.2.3 嵌套循环

​ 既然掌握了两种循环写法,那可以把它们组合起来运用,我们来写一个例子,在控制台中打印出指定边长的长方形或者正方形图案。

# 指定长方形的宽和高
width, height = 10, 5
# 因为是从上往下开始打印,所以先遍历高度
for i in range(height):
	for j in range(width):
		print("*", end="")
	print()
**********
**********
**********
**********
**********

​ 第一个print,end表示在打印完指定的内容后,在结尾再打印一个指定的字符串,默认每个print语句在结尾会加一个换行符"\n", 传递一个空字符串给它,表示打印完星号以后不再添加任何输出内容。

​ 第二个print函数没有任何参数,那它会输出一个换行符。

for i in range(5):
	for j in range(i + 1):
		print("*", end="")
	print()
*
**
***
****
*****

​ 打印出这样一个九九乘法表:

for i in range(1, 10):
	for j in range(1, i + 1):
		print("%s*%s=%s" % (j, i, i * j), end=" ")
	print()
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
4.2.4 break和continue

​ 有时候在循环内部,我们需要临时略过某一次循环或者干脆跳出整个循环,这时候就需要用到break和continue。

​ 在下面这个例子中,我们使用for循环和continue来打印出10以内的所有奇数相加的式子,并求出它们的和。

total = 0
for i in range(10):
	if i % 2 == 0:
		continue
	print(i, end=" + ")
	total += i
print(" = %s" % total)

​ 关键字break用来打断整个循环并跳出。看这个例子,给一个字符串,这个字符串是一个小数,要求打印出小数的整数部分。

s = "238.9237834829"
for i in s:
	if i == '.':
		print()
		break
	print(i, end='')

​ 小数的整数部分都在小数点的左边,而我们遍历字符串是从左往右,所以当遇到小数点后,就停止遍历,这样就正好实现了打印这个小数的整数部分。

4.3 举个栗子

​ 密码开锁功能是这样的,首先设定好密码,以后每次开锁的时候只要输入的数字中含有设定的密码,就视为解锁成功。这样的设定是为了防止别人的窥探,具有更高的安全性。

​ 首先,由于涉及到了输入,先来学习一下Python内置的输入函数: input

# 这里获取的是str类型
password = input("请设置您的密码")
# 设置初始密码
password = "123"
while True:
    pwd = input("请输入您想要设置的密码:")
    # 如果没有输入任何密码,则使用初始密码作为密码
    if not pwd:
        break
    confirm_password = input("请再次输入您的密码:")
    if pwd == confirm_password:
        password = pwd
        break
    else:
        print("您两次输入的密码不一致,请重新输入。")
print("您的初始密码已设置为:" + password)
print("进入开锁程序。。。")
# 开锁
while True:
    input_pwd = input("请输入您的密码:")
# 判断输入的密码中是否包含密码
    if password in input_pwd:
        print("开锁成功!")
        break
    else:
        print("您输入的密码有误,请重新输入")

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

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

相关文章

负荷不均衡问题分析处理流程

一、负荷不均衡分析 负荷不均衡判断标准&#xff1a;4G同覆盖扇区内存在无线利用率大于50%的小区&#xff0c;且两两小区间无线利用率差值大于30%&#xff0c;判定为4G负荷不均衡扇区&#xff1b;5G同覆盖扇区内存在无线利用率大于50%的小区&#xff0c;且两两小区间无线利用率…

梦幻西游手游详细图文架设教程

前言 提到梦幻西游&#xff0c;大家肯定不陌生。在 2001 年正式上线&#xff0c;它成为了很多人的第一款网游&#xff0c;陪伴了一代又一代的玩家成长。没错&#xff0c;今天要架设的就是梦幻西游手游&#xff01; 本文讲解梦幻西游手游架设教程&#xff0c;经典的职业、音乐、…

服务器数据恢复-RAID5中磁盘被踢导致阵列崩溃的服务器数据恢复案例

服务器数据恢复环境&#xff1a; 一台3U的某品牌机架式服务器&#xff0c;Windows server操作系统&#xff0c;100块SAS硬盘组建RAID5阵列。 服务器故障&#xff1a; 服务器有一块硬盘盘的指示灯亮黄灯&#xff0c;这块盘被raid卡踢出后&#xff0c;raid阵列崩溃。 服务器数据…

安防视频监控系统EasyCVR视频汇聚存储平台定制化开发:新增kafka配置

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台可拓展性强、…

【自动化测试】基于Selenium + Python的web自动化框架

一、什么是Selenium&#xff1f; Selenium是一个基于浏览器的自动化工具&#xff0c;她提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分&#xff1a;Selenium IDE、Selenium WebDriver 和Selenium Grid&#xff1a;  1、Selenium IDE&…

深圳金媒人红娘专业介绍-避免遇到相亲翻车

从古至今&#xff0c;单身男生女生都非常多&#xff0c;大部分单身人群又在急于脱单的过程中&#xff0c;一不小心就容易遇到相亲p局&#xff0c;这就翻车啦&#xff01; 深圳金媒人红娘提醒&#xff1a;找对象更应该懂得防范&#xff0c;要学会选择正规的相亲网站&#xff0c;…

iOS QQ登录SDK升级后报错Duplicate interface definition for class ‘TencentOAuth‘修复

起因 最近发现QQ登录SDK sdk-Lite3.3.8 TencentOpenAPI 在部分手机上会崩溃到初始化位置&#xff0c; 比如&#xff1a;iPhone6p 版本12.5.4&#xff0c;iPhone8p 版本14.1&#xff0c;iPad版本12.5.6 但是在iPhone 12以上的手机都没遇到这个问题 所以怀疑是QQ 登录 SDK版本…

Bootstrap的表单组件相关知识

01-最基本的表单组件使用示例 示例代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>使用表单组件</title><meta name"viewport" content"widthdevice-width,initial-scale…

Practical Deep Raw Image Denoisingon Mobile Devices

Abstract 近年来&#xff0c;基于深度学习的图像去噪方法得到了广泛的研究&#xff0c;并在许多公共基准数据集中盛行。然而&#xff0c;最先进的网络计算成本太高&#xff0c;无法直接应用于移动设备。在这项工作中&#xff0c;我们提出了一种轻量级、高效的基于神经网络的原…

easyexcel操作之名称匹配

简单说下需求 现在我有一个excel表格&#xff0c;里面有两张表&#xff0c;分别是a_name表&#xff0c;b_name表&#xff0c;我要在这两张表的基础上新建一张a_b_name表&#xff0c;这张表匹配a,b表的名称&#xff0c;品牌名一样则放在同一行。 示例&#xff1a; a_name表 …

月入10.3K,苦逼土木狗转行5G网路优化工程师:对象没了之后,我选择转行!

如果要去某乎平台搜大学生第一劝退专业&#xff0c;土木专业当之无愧。熬夜打灰、肤色比拼、领导大饼……是土木交流贴吧群常见热词。初入土木纷纷立下的“年轻人不怕吃苦的”flag接连打破&#xff0c;提桶跑路似乎成了土木最终归宿。 今天采访的主人公也是万千苦逼土木人中的一…

【苍穹外卖 | 项目日记】第七天

前言&#xff1a; 昨天晚上巨难受&#xff0c;学完之后实在不想写项目日记了&#xff0c;所以就偷了一下懒&#xff0c;今天早上补上昨天的项目日记 目录 前言&#xff1a; 今日完结任务&#xff1a; 今日收获&#xff1a; 学习订单支付的接口&#xff1a; 杂项知识点&…

正确选择数据库安全运维平台的几个原则

目前市面上数据库安全运维平台比较多&#xff0c;企业选择时候往往很纠结&#xff0c;这里我们小编就给大家总结了几个正确选择数据库安全运维平台的原则&#xff0c;希望对大家有用哦&#xff01; 正确选择数据库安全运维平台的几个原则 1、明确自己的需求 不同数据库安全运…

Maven系列第7篇:聚合、继承、单继承问题详解,必备技能!

maven系列目标&#xff1a;从入门开始开始掌握一个高级开发所需要的maven技能。 这是maven系列第7篇。 整个maven系列的内容前后是有依赖的&#xff0c;如果之前没有接触过maven&#xff0c;建议从第一篇看起&#xff0c;本文尾部有maven完整系列的连接。 本篇内容 maven中聚…

数据结构与算法之图: Leetcode 65. 有效数字 (Typescript版)

有效数字 https://leetcode.cn/problems/valid-number/ 描述 有效数字&#xff08;按顺序&#xff09;可以分成以下几个部分&#xff1a; 一个 小数 或者 整数&#xff08;可选&#xff09;一个 ‘e’ 或 ‘E’ &#xff0c;后面跟着一个 整数 小数&#xff08;按顺序&#…

Talk | 阿里巴巴算法专家王潇斌:开箱即用的文本理解大模型

本期为TechBeat人工智能社区第538期线上Talk&#xff01; 北京时间10月18日(周三)20:00阿里巴巴算法专家—王潇斌的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “开箱即用的文本理解大模型”&#xff0c;介绍了他们提出的SeqGPT以及EcomGPT两个文…

Mysql高级——锁(1)

锁 1. 概述 在数据库中&#xff0c;除传统的计算资源&#xff08;如CPU、RAM、I/O等&#xff09;的争用以外&#xff0c;数据也是一种供许多用户共享的资源。为保证数据的一致性&#xff0c;需要对并发操作进行控制&#xff0c;因此产生了锁。同时锁机制也为实现MySQL的各个隔…

软件定义存储不能打?这家成立刚三年的公司问鼎全球存储性能榜

软件定义存储&#xff08;Software Defined Storage&#xff0c;简称SDS&#xff09;在性能层面不能打&#xff1f;这恐怕是当前大多数人固有的认知。 如今&#xff0c;这种认知要被彻底打破了。日前&#xff0c;在存储性能委员会&#xff08;Storage Performance Council&…

头歌平台——C文件操作

第1关&#xff1a;使用FILE结构操作文本文件 任务描述 本关要求编写函数ext\fractDigit&#xff0c;该函数从已有的当前目录下的文件a.txt中读取并解析出其中的数值&#xff0c;并将结果写到当前目录下的文件b.txt中。 其中&#xff1a;文件a.txt中包含各种字符&#xff0c;…