Python学习笔记-Python基础语法
  kCmFobNLwURY 2023年11月02日 43 0

字面量

什么是字面量

字面量:在代码中,被写下来的固定的值,称之为字面量。

常用的值类型

Python中哪些值可以被写下来?

Python中常用的有6中值(数据)的类型

类型

描述

说明

数字(Number)

支持


  • 整数(int)
  • 浮点数(float)
  • 复数(complex)
  • 布尔(bool)


整数(int),如10、-10

浮点数(float),如13.14、-13.14

复数(complex),如4+3j,以j结尾表示复数

布尔(bool)表达现实生活中的逻辑,即真和假,True表示真,False表示假。

True本质上是一个数字记作1,False记作0

字符串(String)

描述文本的一种数据类型

字符串(string)由任意数量的字符组成

列表(List)

有序的可变序列

Python中使用最频繁的数据类型,可有序记录一堆数据

元组(Tuple)

有序的不可变的序列

可有序记录一堆不可变的Python数据集合

集合(Set)

无序不重复集合

可无序记录一堆不重复的Python数据集合

字典(dictionary)

无序Key-Value集合

可无序记录一堆Key-Value型的Python数据集合

字符串(string),又称文本,是由任意数量的字符如中文、英文、各类符号、数字等组成。所以叫做字符的串。

示例如:

  • "菜鸟"
  • "学Python的菜鸟"
  • "!@#$%^&"
  • "股票代码是:000001"

Python中,字符串需要用双引号(")包围起来。

如何在代码中写它们

我们学习的这些类型,如何在代码中表达呢?

类型

程序中的写法

说明

整数

666, -88

和现实中的写法一致

浮点数(小数)

13.14, -5.21

现实中的写法一致

字符串(文本)

"菜鸟"

程序中需要加上双引号来表示字符串

总结

掌握字面量的含义

在代码中,被写下来的固定的值,称之为字面量。

常见的字面量类型

我们目前了解了:整数、浮点数、字符串这三类。

如何基于print语句完成各类字面量的输出

print(字面量), 如:

  • print(10), 输出整数:10
  • print(13.14), 输出浮点数:13.14
  • print("菜鸟"), 输出字符串:菜鸟

注释

注释的作用

注释:在程序代码中对程序代码进行解释说明的文字。

作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用,能够大大增强程序的可读性。

未使用注释的代码:

666

13.14

"菜鸟"


print(666)

print(13.14)

print("菜鸟")


使用注释的代码:

"""

本代码演示了:

-各类字面量的写法

-通过print语句输出各类字面量

"""

# 写一个整数字面量

666

# 写一个浮点数字面量

13.14

# 写一个字符串字面量

"菜鸟"

# 通过print语句输出各类字面量

print(666)

print(13.14)

print("菜鸟")

注释分类

单行注释

以 #开头,#右边 的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用。

# 我是单行注释

print("Hello World")

注意:#号和注释内容一般建议以一个空格隔开。

规范是Python官方建议的要求,不强制,不遵守也不影响程序执行,但官方和大厂的代码都会遵守规范,所以遵守规范也会让我门的代码更高级。

多行注释

一对三个双引号 引起来("""注释内容""")来解释说明一段代码的作用使用方法。

多行注释一般用于解释:

- 整个Python代码文件

- 类

- 方法

示例1:

"""

本代码演示了:

-各类字面量的写法

-通过print语句输出各类字面量

"""


print(666)

print(13.14)

print("菜鸟")

示例2:

多行、单行注释演示:

"""

本代码演示了:

-各类字面量的写法

-通过print语句输出各类字面量

"""

# 写一个整数字面量

666

# 写一个浮点数字面量

13.14

# 写一个字符串字面量

"菜鸟"

# 通过print语句输出各类字面量

print(666)

print(13.14)

print("菜鸟")

PEP 8规范

PEP 8是Python的官方代码风格指南,旨在提供一致、易于阅读和易于维护的Python代码。PEP 8规范包括一下方面:

1、缩进:使用四个空格表示缩进。

2、行长:每行代码不应超过79个字符。

3、命名规范:变量名应以小写字母开头,使用下划线分隔多个单词;类名应以大写字母开头,使用驼峰命名法。

4、空格:在运算符两侧、逗号后以及冒号后应添加空格。

5、注释:注释应该清晰、简洁、使用英文书写。注释应该说明代码的作用,而不是如何实现。

6、函数和类:函数和类之间应该用两个空行分隔。

7、导入:每个导入应该单独成行,避免使用通配符导入。

8、括号:在函数调用和定义中,括号内部应该没有空格。

除此之外,PEP 8还涵盖了代码布局、字符串引用、空行、文件编码等方面的规范。

遵守PEP 8规范,可以增加代码的可读性和可维护性,这对于团队开发、代码重构和代码维护都非常有帮助。建议Python开发者遵守这些规则,以便与其他Python开发者协作,并使代码更易于理解和维护。

总结

注释的作用是?

注释是代码中的解释型语句,用来对代码内容进行注解。

注释不是代码,不会被程序执行。

单行注释如何定义?

通过 #号 定义,在#号右侧的所有内容均作为注释。

建议在#号和注释内容之间,间隔一个空格。

单行注释一般用于对一行或一小部分代码进行解释。

多行注释如何定义?

通过一对三个引号来定义("""注释内容"""),引号内部均是注释,可以换行。

多行注释一般对:Python文件、类或方法进行解释。

官方也会用注释解释相关代码:

Python学习笔记-Python基础语法_字符串

变量

什么是变量

变量:在程序运行时,能存储计算结果或能表示值的抽象概念。

简单的说,变量就是在程序运行时,记录数据用的。

变量的定义格式:

变量名称 = 变量的值

变量名称:每一个变量都有自己的名称,称之为:变量名,也就是变量本身。

= :赋值,表示将等号右侧的值,赋予左侧的变量。

变量的值:每一个变量都有自己存储的值(内容),称之为:变量值

总结

变量是什么,有什么作用?

变量就是在程序运行时,记录数据用的。

变量的定义格式是?

变量名 = 变量值

变量的特征是?

变量的值可以改变。

print语句如何输出多份内容?

print(内容1, 内容2, ……, 内容N)

Python中如何做减法?

使用符号 - 即可完成减法运算。

拓展:加(+)、减(-)、乘(*)、除(/)

练习题

求钱包余额

请在程序中,定义如下变量:

  • 钱包余额(变量名:money), 初始余额50元

请通过程序计算,在购买了:

  • 冰淇淋10元
  • 可乐5元

后,钱包余额还剩余多少元。请通过print语句按照下图所示,进行输出:

当前钱包余额: 50

购买冰淇淋,花费: 10 元

购买了冰淇淋,花费10元,余额: 40

购买可乐,花费: 5 元

购买可乐,花费5元,余额: 35 元

最后钱包剩余,余额: 35 元

"""

记录某一天钱包有50元的消费记录和余额

"""


# 钱包初始金额

money = 50

# 通过print语句输出当前钱包余额

print("当前钱包余额:",money)


# 购买了冰淇淋花费10元

# money = money - 10

# 或者用-=

money -= 10

# 通过print语句输出购买冰淇淋后钱包余额

print("购买冰淇淋,花费:",10,"元")

print("购买了冰淇淋,花费10元,余额:",money)


# 购买了可乐花费5元

# money = money - 5

#或者用-=

money -= 5

# 通过print语句输出购买可乐后钱包余额

print("购买可乐,花费:",5,"元")

print("购买可乐,花费5元,余额:",money,"元")


# 通过print语句输出最后钱包剩余余额

print("最后钱包剩余,余额:",money,"元")

输出结果:

当前钱包余额: 50

购买冰淇淋,花费: 10 元

购买了冰淇淋,花费10元,余额: 40

购买可乐,花费: 5 元

购买可乐,花费5元,余额: 35 元

最后钱包剩余,余额: 35 元

数据类型

初学常用数据类型

在学习字面量的时候,我们了解到:数据是有类型的。

目前在入门阶段,我们主要接触如下三类数据类型:

类型

描述

说明

string

字符串类型

用引号印起来的数据都是字符串

int

整型(有符号)

数字类型,存放整数 如 -1,10,0等

float

浮点型(有符号)

数字类型,存放小数 如 -13.14,6.66等

如何验证数据的类型呢?

可以通过type()语句来得到数据的类型。

语法:

type(被查看类型的数据)

type()语句的使用方法

在print语句中,直接输出类型信息

# 方式1: 使用print直接输出类型信息

print(type("菜鸟"))

print(type(666))

print(type(13.14))


输出结果:

用变量存储type()的结果(返回值)

# 方式2: 使用变量存储type()语句的结果string_type = type("菜鸟")

int_type = type(666)

float_type = type(13.14)

print(string_type)

print(int_type)

print(float_type)

输出结果:

查看的都是<字面量>的类型,能查看变量中存储的数据类型吗?

可以的,示例如下:

name = "菜鸟"

name_type = type(name)

print(name_type)


输出结果:

转义符

在Python中,字符串的转义是指在字符串中使用特殊的字符序列来表示一些特殊字符。在Python中,字符串的转义符是反斜杠\,可以用来表示一些特殊的字符,如单引号、双引号、换行符、制表符等。以下是一些常用的字符串转义符:

序号

转义符

含义

1

\'

表示单引号

2

\"

表示双引号

3

\\

表示反斜杠

4

\n

表示换行符

5

\t

表示制表符

6

\r

表示回车符

数据类型转换

为什么要转换类型

数据类型之间,在特定的场景下,是可以相互转换的,如字符串转数字、数字转字符串等;数据类型转换后续会是经常使用的功能,比如:

  • 从文件中读取的数字,默认是字符串,这时就需要转换成数字类型;
  • 后续学习的input()语句,默认结果是字符串,若需要其他类型数据也需要转换;
  • 将数字转换成字符串用可以写出到外部系统,等等。

常见的转换语句

语句(函数)

说明

int(x)

将x转换为一个整数

float(x)

将x转换为一个浮点数

str(x)

将对象x转换为字符串

同前面学习的type()语句一样,这三个语句,都是带有结果的(返回值),我们可以用print直接输出,或用其他变量存储结果值。

总结

字符串、整数、浮点数类型的转换语句是?

语句(函数)

说明

int(x)

将x转换为一个整数

float(x)

将x转换为一个浮点数

str(x)

将对象x转换为字符串

任何类型都可以转换成字符串,对不对?

正确。

字符串可以随意转换成数字,对不对?

错误,字符串内必须只有数字才可以。

浮点数转换整数会丢失什么?

丢失精度,也就是小数部分。

标识符

什么是标识符

在Python程序中,我们可以给很多东西起名字,比如:

  • 变量的名字
  • 方法的名字
  • 类的名字,等等

这些名字,我们把它统一的称之为标识符,用来做内容的标识。

标识符:用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名。

标识符命名规则

Python中,标识符命名的规则主要有3类:

  • 内容限定
  • 大小写敏感
  • 不可使用关键字

标识符命名规则 - 内容限定

标识符命名中,只允许出现四类元素,其余任何内容都不被允许。如下:

  • 英文
  • 中文
  • 数字
  • 下划线(_)

注意:

1、不推荐使用中文。

2、数字不可以开头。

标识符命名规则 - 大小写敏感

以定义变量为例:

Andy = "安迪1"

andy = "安迪2"

字母a的大写和小写,是完全能够区分的。

Andy = "安迪1"

andy = "安迪2"

print(Andy)

print(andy)


安迪1

安迪2

标识符命名规则 - 不可使用关键字

Python中有一系列单词,称之为关键字,关键字在Python中都有特定用途,我们不可以使用它们作为标识符。

关键字有:

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

变量命名规范

变量名、类名、方法名 不同的标识符,有不同的规范。

变量的命名规范:

  • 见名知意
  • 下划线命名法
  • 英文字母全小写

变量命名规范 - 见名知意

变量的命名要做到:

  • 明了:尽量做到,看到名字,就知道是什么意思。
  • 简介:尽量在确保“明了”的前提下,减少名字的长度

变量命名规范 - 下划线命名法

多个单词组合变量名,要使用下划线做分隔。

变量命名规范 - 英文字母全小写

命名变量中的英文字母,应全部小写

总结

什么是标识符?

用户编写代码时,对变量、类、方法等编写的名字,叫做标识符。

标识符的命名规则

  • 内容限定

- (中文、英文、数字、下划线)

  • 大小写敏感
  • 不可使用关键字

变量的命名规范

  • 见名知意
  • 下划线命名法
  • 英文字母全小写

注意:

不遵守规则:会出现问题

不遵守规范:不太高级

运算符

常见运算符

算术(数学)运算符

运算符

描述

实例

+

两个对象相加 a + b 输出结果30

-

得到负数或是一个数减去另一个数 a - b 输出结果 -10

*

两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果200

/

b / a 输出结果2

//

取整余

返回商的整数部分 9 // 2 输出结果4,9.0 // 2.0 输出结果4.0

%

取余

返回除法的余数 b % a 输出结果0

**

指数

a ** b 为10的20次方,输出结果100000000000000000000

赋值运算符

运算符

描述

实例

=

赋值运算符

把 = 号右边的结果赋给左边的变量,如 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

总结

常见的算术(数学)运算符

加(+)、减(-)、乘(*)、除(/)、整除(//)、取余(%)、求平方(**)

赋值运算符有

  • 标准赋值:=
  • 复合赋值:+=、-=、*=、/=、//=、%=、**=

字符串扩展

字符串的三种定义方式

字符串在Python中有多种定义形式

1、单引号定义法:name = '菜鸟'

2、双引号定义法:name = "菜鸟"

3、三引号定义法:name = """菜鸟"""

三引号定义法,和多行注释的写法一样,同样支持换行操作。使用变量接收它,它就是字符串;不使用变量接收它,就可以作为多行注释使用。

字符串的引号套嵌

如果想要定义的字符串本身包含:单引号、双引号自身 如何写?

  • 单引号定义法,可以内含双引号
  • 双引号定义法,可以内含单引号
  • 可以使用转义符(\)来将引号解除效用,变成普通字符串

总结

字符串的三种定义方式

  • 单引号方式
  • 双引号方式
  • 三引号方式

引号的套嵌

  • 可以使用 \ 来进行转义
  • 单引号内可以写双引号或双引号内可以写单引号

字符串拼接

字符串拼接

如果有两个字符串(文本)字面量,可以将其拼接成一个字符串,通过 + 号即可完成,如:

print("大大的" + "菜鸟")

输出结果:

大大的菜鸟


不过一般,单纯的2个字符串字面量进行拼接显得很呆,一般,字面量和变量或变量和变量之间会使用拼接,如:

name = "菜鸟"

print("我的名字是:" + name + ",小白一枚")


输出结果:

我的名字是:菜鸟,小白一枚

总结

如何完成字符串拼接?

使用“+”号连接字符串变量或字符串字面量即可。

有哪些注意事项?

无法和非字符串类型进行拼接。

如:

name = "菜鸟"

obj = "运维"

tel = 123456789

print("我的名字是:" + name + ",我的工作是:" + obj + ",我的电话是:" + tel) # 字符串和数字、浮点数等其他数据类型不能通过“+”拼接


Traceback (most recent call last):

File "/Applications/软件/pyCharm/存储/python-learn/Python-第二章练习/Python-字符串拼接练习/Python-字符串拼接练习.py", line 17, in

print("我的名字是:" + name + ",我的工作是:" + obj + ",我的电话是:" + tel) # 字符串和数字、浮点数等其他数据类型不能通过“+”拼接

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

TypeError: can only concatenate str (not "int") to str

字符串格式化

字符串格式化

在实际使用中会发现,拼接字符串也不好用:

1、变量过多,拼接起来实在是太麻烦了。

2、字符串无法和数字或其他类型完成拼接。

还有一个更便捷的方法,就是字符串的格式化。

可以通过如下语法,完成字符串和变量的快速拼接。

name = "菜鸟"

message = "运维大佬就是%s" % name

print(message)


输出结果:

运维大佬就是菜鸟

其中的,%s

  • %表示:我要占位
  • s表示:将变量变成字符串放入占位的地方

所以,综合起来的意思就是,我先占个位置,等一会有个变量过来,我把它变成字符串放到占位的位置。

上面介绍了占位符号%s表示将变量变成字符串放入占位位置,那么数字类型是否可以占位吗?看以下实验结果:

name = "菜鸟"

obj = "运维"

tel = 123456789

print("我的名字是:%s,我的工作是%s,我的电话是%s" % (name, obj, tel))

输出结果:

我的名字是:菜鸟,我的工作是运维,我的电话是123456789

注意:多个变量占位时,变量要用括号括起来,并按照占位的顺序填入。

数字也可以用%s占位,这里是将数字转换成了字符串。


Python中支持非常多的数据类型占位,最常用的是如下三类:


格式符号

转化

%s

将内容转换成字符串,放入占位位置

%d

将内容转换成整数,放入占位位置

%f

将内容转换成浮点数,放入占位位置


# 字符串、数字和浮点数拼接测试

name = "菜鸟"

obj = "运维"

tel = 123456789

height = 183.99

print("我的名字是:%s,我的工作是:%s,我的电话是:%d,我的身高是:%f" % (name, obj, tel, height))


输出结果:

我的名字是:菜鸟,我的工作是:运维,我的电话是:123456789,我的身高是:183.990000


总结

字符串格式化的语法

"%占位符" % 变量

常用占位符

  • 字符串:%s
  • 整数:%d
  • 浮点数:%f

格式化的精度控制

格式化的精度控制 - 案例

# 字符串、数字和浮点数拼接测试

name = "菜鸟"

obj = "运维"

tel = 123456789

height = 183.99

print("我的名字是:%s,我的工作是:%s,我的电话是:%d,我的身高是:%f" % (name, obj, tel, height))


输出结果:

我的名字是:菜鸟,我的工作是:运维,我的电话是:123456789,我的身高是:183.990000

从上面案例输出的结果可以看出,浮点数输出的结果183.990000 后面加了很多0

字符串格式化 - 数字精度控制

我们可以使用辅助符号"m.n来控制数据的宽度和精度"

  • m, 控制宽度,要求是数字(很少用),设置的宽度小于数字自身,则不生效
  • n, 控制小数点精度,要求是数字,会进行小数的四舍五入

示例:

  • %5d:表示将整数的宽度控制在5位,如数字11,被设置为5d,就会变成:{空格}{空格}{空格}11,用三个空格补足宽度。
  • %5.2f:表示将宽度控制为5位,将小数点精度设置为2位。小数点和小数部分也算入宽度计算。如,对11.345设置了%7.2f后,结果是{空格}{空格}11.35。2个空格不足宽度,小数部分限制2位精度后,四舍五入为.35。
  • %.2f:表示不限制宽度,只设置小数点精度为2位,如11.345设置%.2f后,结果是11.35。

总结

精度控制的语法是

m.n的形式控制,如%5d、%5.2f、%.2f

m和.n均可省略

如果m比数字本身宽度还小,会发生什么事?

m不生效

.n会对小数部分做精度限制,同时:?

会对小数部分做四舍五入

字符串格式化方式2

字符串格式化 - 快速写法

目前通过%符号占位已经很方便了,还能进行精度控制。

可是追求效率和优雅的Python,是否有更加优雅的方式解决问题呢?

有,那就是通过语法:f"内容{变量}"的格式来快速格式化。

name = "菜鸟"

obj = "运维"

tel = 123456789

height = 183.99

print(f"我的名字是:{name},我的工作是:{obj},我的电话是:{tel},我的身高是:{height}")


输出结果:

我的名字是:菜鸟,我的工作是:运维,我的电话是:123456789,我的身高是:183.99

从输出结果可以看出,不做精度控制,也能原样输出

总结

可以通过

f"{变量}{变量}"的方式进行快速格式化

这种方式

  • 不理会类型
  • 不做精度控制

适合对精度没有要求的时候快速使用

对表达式进行格式化

字符串格式化 - 表达式的格式化

表达式:一条具有明确执行结果的代码语句。

如:

1 + 1、5 * 2, 就是表达式,因为有具体的结果,结果是一个数字。

又或者,常见的变量定义:

name = "张三" age = 11 + 11

等号右侧的都是表达式,因为它们有具体的结果,结果赋值给了等号左侧的变量。

对于字符串格式化,可以直接格式化一个表达式,示例如下:

"""演示对表示进行格式化"""

print("1 * 1 的结果是:%d" % (1 * 1))

print(f"1 * 1 的结果是:{1 * 1}")

print("字符串在python中的类型是:%s" % type("字符串"))


1 * 1 的结果是:1

1 * 1 的结果是:1

字符串在python中的类型是:

在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码。

总结

表达式是什么

表达式就是一个具有明确结果的代码语句,如 1 + 1、type("字符串")、3 * 5等;在定变量的时候,如 age = 11 + 11,等号右侧的就是表达式,也就是有具体的记过,将结果赋值给了等号左侧的变量。

如何格式化表达式

  • f"{表达式}"
  • "%s\%d\%f" % (表达式、表达式、表达式)

练习题

股价计算小程序

定义如下变量:

  • name,公司名
  • stock_price,当前股价
  • stock_code,股票代码
  • stock_price_daily_growth_factor,股票每日增长系数,浮点数类型,比如1.2
  • growth_day,增长天数

计算,经过growth_day天的增长后,股价达到了多少钱?

使用字符串格式化进行输出,如果是浮点数,要求小数点精度2位数。

"""股票计算小程序"""

name = "菜鸟集中营"

stock_price = 19.99

stock_code = "001001"

stock_price_daily_growth_factor = 1.2

growth = 7

finally_stock_price = stock_price * stock_price_daily_growth_factor ** growth

print(f"公司:{name},股票代码:{stock_code},股票单价:{stock_price}")

print("股票每日增长:%.1f, 经过%d天的增长, 最终股票单价为:%.2f" % (stock_price_daily_growth_factor, growth, finally_stock_price))


输出结果:

公司:菜鸟集中营,股票代码:001001,股票单价:19.99

股票每日增长:1.2, 经过7天的增长, 最终股票单价为:71.63

数据输入

input语句(函数)

前面学习了print语句(函数),可以完成将内容(字面量、变量等)输出到屏幕上。

在Python中,与之对应的还有一个input语句,用来获取键盘输入。

  • 数据输出:print
  • 数据输入:input

使用上也非常简单:

  • 实用input()语句可以从键盘获取输入
  • 使用一个变量接收(存储)input语句获取的键盘输入数据即可

"""input练习"""

print("沙雕是谁")

name = input()

print(f"哦~~~,原来{name}是沙雕,是大傻屌")


沙雕是谁

小强 ### 对应上面代码input()

哦~~~,原来小强是沙雕,是大傻屌


代码执行后,在执行结果显示处可以输入数据,输入数据后代码才会继续执行。

也可用一下写法:

"""input练习"""

name = input("沙雕是谁")

print(f"哦哦哦~~~,原来{name}是沙雕,是大傻屌")

练习题

定义两个变量,用以获取从键盘输入的内容,并给出提示信息:

  • 变量1,变量名:user_name,记录用户名称
  • 变量2,变量名:user_type,记录用户类型

并通过格式化字符串的形式,通过print语句输出欢迎信息,如下:

您好:沙雕,您是尊贵的:SSSSSVIP用户,欢迎您的光临。

"""

定义两个变量,用以获取从键盘输入的内容,并给出提示信息:

变量1,变量名:user_name,记录用户名称

变量2,变量名:user_type,记录用户类型

"""

user_name = input("请输入您的名字:")

user_type = input("请输入您的VIP等级:")

print(f"您好:{user_name}, 您是尊贵的:{user_type}用户,欢迎您的光临。")


输出的结果:

请输入您的名字:沙雕

请输入您的VIP等级:SSSSSVIP

您好:沙雕, 您是尊贵的:SSSSSVIP用户,欢迎您的光临。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  9JCEeX0Eg8g4   2023年11月25日   26   0   0 ednpython