欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Python基础语法

Python基础语法

2025/4/27 16:47:52 来源:https://blog.csdn.net/m0_63845988/article/details/144637319  浏览:    关键词:Python基础语法

字面量

什么是字面量

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

常用的值类型

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

字符串

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

如:

"你好,Python"

"键盘敲烂,月薪过万"

"!@#$%^&"

Python中,字符串需要用双引号(")包围起来 被引号包围起来的,都是字符串

如何在代码中写它们

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

类型程序中的写法说明
整数666,-88和现实中的写法一致
浮点数(小数)13.14,-5.21和现实中的写法一致
字符串(文本)"键盘敲烂,月薪过万"程序中需要加上双引号来表示字符串
代码示例

示例:

print(10)print(3.1415926)print(True)print("True")print("3.14.!#$!@#$!@#%#2515926")

总结:

1. 掌握字面量的含义

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

2. 常见的字面量类型

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

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

        print(字面量),如:

        print(10),输出整数10

        print(13.14),输出浮点数13.14

        print("键盘敲烂,月薪过万"),输出字符串:键盘敲烂,月薪过万

注释

注释的作用

未使用注释代码

使用注释的代码

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

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

注释的分类

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

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

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

注释实战

按照如图所示,对代码添加

        单行注释以及

        多行注释

添加完成注释后,执行程序

验证注释是否对程序产生影响

代码示例

示例:

"""
单行注释:#
多行注释:一对三引号在PyCharm中ctrl+alt+l:快速格式化代码(美化)
"""
# 打印一个整数
print(10)  
# 打印一个浮点数
print(3.1415926)
# 打印一个布尔值
print(True)
# 打印一个字符串
print("True")
# 打印一个字符串
print("3.141.f#@$5926")

总结:

1. 注释的作用是?

        注释是代码中的解释型语句,用来对代码内容进行注解 注释不是代码,不会被程序执行

2. 单行注释如何定义?

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

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

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

3. 多行注释如何定义?

        通过一对三个引号来定义("""注释内容"""),

        引号内部均是注释,可以换行

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

变量

什么是变量

变量:在程序运行时,能储存计算结果或能表示值的抽象概念。 简单的说,变量就是在程序运行时,记录数据用的

变量的定义格式

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

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

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

变量就像盒子,可以存放内容

变量的特征

变量,从名字中可以看出,表示“量”是可变的。

所以,变量的特征就是,变量存储的数据,是可以发生改变的。

如图所示:

箱子里可以放足球和篮球

思考

为什么必须要使用变量?

都是输出内容,直接输出不行吗?

变量的目的是存储运行过程的数据

存储的目的是为了:重复使用

代码示例

示例:

"""
变量的定义格式:变量名=变量值
解释:把 = 右边的变量值赋值给左边的变量名
"""# 需求1:定义money存储100元,假设花了10元,求还剩下多少
# 1-定义变量
money = 100
print(money)
# 2-花了10元求剩下的钱数
# 变量的值是可以改变的
# PyCharm中alt+shift+enter自动优化代码
money = money - 10
print(money)# 需求2:定义变量分别储存账号和密码
username = "张三"
password = "123456"
# 打印账号密码
# print打印多个变量,可以用,隔开
print("账号密码为:", username, password)
总结 
  • 变量含义:在程序运行过程中,用来存储数据或者记录数值的抽象概念

  • 定义格式:

    • 变量名 = 变量值

    • 把=右侧的值赋值给=左侧的变量名

  • 用处:

    • 存储程序运行过程中变化的数据

    • 重复使用

  • 变量的特征:变量值可以改变

数据类型

数据类型

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

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

string、int、float这三个英文单词,就是类型的标准名称。

type()语句

那么,问题来了,如何验证数据的类型呢?

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

语法:

type(被查看类型的数据)

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

str是string的缩写

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

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

那当然:可以

变量有类型吗?

我们通过type(变量)可以输出类型,这是查看变量的类型还是数据的类型?

查看的是:变量存储的数据的类型。因为,变量无类型,但是它存储的数据有。

盒子是足球、篮球吗?

我们可能会说:字符串变量

但要知道,不是变量是字符串,而是它存储了:字符串

总结

1. 使用什么语句可以查看数据的类型?

        type()

2. 如下代码,name_type变量可以存储变量name的类型信息,是因为?

        

        因为type()语句会给出结果(返回值)

3. 变量有没有类型?

        没有,字符串变量表示变量存储了字符串而不是表示变量就是字符串

字符串定义

字符串类型的不同定义方式

字符串有3种不同的定义方式:

双引号定义法

        "字符串"

单引号定义法

        '字符串'

三引号定义法

        """字符串"""

三引号定义法,表示在一堆三个双引号的范围内,均是字符串,如下:

要注意的是,包含范围是:从三个引号开始,到下一个三个引号结束

代码示例

示例:

# 使用单引号定义字符串
text1 = '我是一个字符串'
text2 = "我也是一个字符串"
text3 = """一对三个引号不仅可以定义注释,也可以定义字符串"""
# ctrl + d快速复制当前行
# end默认为换行符,每使用一次print()语句会自动在打印内容的结尾添加一个换行符
print(text1, "的数据类型为", type(text1), end="\t")
print(text2, "的数据类型为", type(text2))
print(text3, "的数据类型为", type(text3))# 三个引号定义的字符串,所见即所得
# \n表示换行符
# \t表示制表符
text4 = """
\t床前明月光\n\n疑是地上霜我长得很帅
"""
print(text4, "的数据类型是:", type(text4))

数据类型转换

为什么要转换类型

数据类型之间,在特定的场景下,是可以相互转换的,如字符串转数字、数字转字符串等 那么,我们为什么要转换它们呢?

数据类型转换,将会是我们以后经常使用的功能。

如:

        从文件中读取的数字,默认是字符串,我们需要转换成数字类型

        后续学习的input()语句,默认结果是字符串,若需要数字也需要转换

        将数字转换成字符串用以写出到外部系统 等等

        用途很多,那么让我们来学习一下如何转换吧。

常见的转换语句

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

类型转换注意事项

类型转换不是万能的,毕竟强扭的瓜不会甜,我们需要注意:

1. 任何类型,都可以通过str(),转换成字符串

2. 字符串内必须真的是数字,才可以将字符串转换为数字

代码示例

示例:

# 需求1:书籍类型是字符串类型的"100",要求在分数的基础上加10,打印最终结果
# 定义字符串分数
score = "100"
print(score, type(score))
# 在此基础上加10分
# 先将字符串转换为整数类型
score = int(score)
score = score + 10
print(score, type(score))# 需求2:将整数和浮点数和布尔值转换为字符串
a = 10
b = 3.14
c = True
print(a, type(a))
print(b, type(b))
print(c, type(c))a1 = str(a)
b1 = str(b)
c1 = str(c)
print(a1, type(a1))
print(b1, type(b1))
print(c1, type(c1))# 需求3:将浮点数转换为整数会丢失精度
a = 3.1415
b = int(a)
print(a, type(a))
print(b, type(b))
总结

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

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

        正确

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

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

4. 浮点数转整数会丢失什么?

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

标识符

什么是标识符

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

        变量的名字

        方法的名字

        类的名字,等等

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

所以,标识符:

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

标识符命名规则

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

        内容限定

        区分大小写

        不可使用关键字

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

标识符命名中,只允许出现:

        字母

        数字

        下划线(_)

        中文

这四类元素。

其余任何内容都不被允许。

注意

1. 不推荐使用中文

2. 数字不可以开头

标识符命名规则 - 区分大小写

以定义变量为例:

Andy = “安迪1”

andy = “安迪2”

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

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

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

变量命名规范

学完了标识符(变量、类、方法)的命名规则后,我们在来学习标识符的命名规范

        变量名

        类名

        方法名

不同的标识符,有不同的规范。

我们目前只接触到了:变量。所以,目前学习:变量的命名规范。

        见名知意

        下划线命名法

        英文字母全小写

变量命名规范 - 见名知意

变量的命名要做到:

        简洁:尽量在确保“明了”的前提下,减少名字的长度

        明了:尽量做到,看到名字,就知道是什么意思

        

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

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

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

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

代码示例

示例:

"""
标识符规则示例
"""
# 导包
import keyword
# 1-不能使用关键字# 从keyword包中获取所有的关键字
# 查看源码:按住鼠标ctrl键鼠标点击相对应的代码
# 返回之前的代码:ctrl+alt+←
kw = keyword.kwlist
# print(kw)
# and = 10
# 不要使用python自带的名字作为标识符
# print = 10
# print(print)# 2-内容上只能是字母、数字、下划线、中文并不建议组成
a_1 = 10
print(a_1)
# 以下内容会报错,因为-&是特殊字符
# a-2 = 20
# print(a-2)
# a@2 = 30# 3- 不能以数字开头
# 1a =10
# 中文可以作为标识符但不建议使用,太low
姓名 = "张三"
print(姓名)"""
标识符示范
"""
# 1-见名知意
# 2-使用下划线命名法又叫蛇型命名法
person_name = "张三"
brand_name = "华为"
# 3-小驼峰命名法(不建议使用)
personName = "张三"
brandName = "华为"
# 4-大驼峰命名法(一般用于定义类名)
PersonName = "张三"
BrandName = "华为"
总结
  • 什么是标识符?

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

  • 标识符命名规则(必须遵守)

    • 内容限定:只能是字母、数字(不能作为开头)、下划线(_)、中文(不建议)

    • 严格区分大小写

    • 不能使用关键字

  • 标识符命名规范(建议遵守)

    • 见名知意

    • 下划线命名法

  • 关键字:在编程语言中有特殊含义的单词就是关键字

    • 1-先导包:import keyword

    • 2-再获取:kw = keyword.kwlist

运算符

算术(数学)运算符

算术运算符的演示

加减乘除和求平方,我们在前面已经使用过啦。

现在在带上:整除以及求余数,一起试一试吧。

赋值运算符

复合赋值运算符

代码示例

示例:

# 算数运算符 + — * / // ** %
"""
a = 10
b = 20
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a // b)
print(a % b)
print(a ** b)
"""# 复合赋值运算符 += -= *= /= //= **= %=
a = 20
b = 20
a = a + 3
b += 3
print(a, b)
a = a - 3
b -= 3
print(a, b)
a = a * 3
b *= 3
print(a, b)
# /和/=会将计算结果自动转换为float
a = a / 3
b /= 3
print(a, b)
# 获取除法运算中的商数据类型不变
a = int(a) // 3
b //= 3
print(a, b)
a = a ** 3
b **= 3
print(a, b)
a = a % 5
b %= 5
print(a, b)

总结:

  • 算术运算符:+ - * / // % **

  • 赋值运算符:=

  • 复合赋值运算符:+= -= *= /= //= %= **=

  • 注意:/运算的结果是浮点类型 //获取除法运算中的商数据类型不变

字符串扩展

字符串的三种定义方式

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

单引号定义法:name='李华'

双引号定义法:name="李华"

三引号定义法:name="""李华"""

三引号定义法,和多行注释的写法一样,同样支持换行操作。

使用变量接收它,它就是字符串

不使用变量接收它,就可以作为多行注释使用。

字符串的引号嵌套

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

        单引号定义法,可以内含双引号

        双引号定义法,可以内含单引号

        可以使用转移字符(\)来将引号解除效用,变成普通字符串

代码示例
# 双引号定义字符串其中可以包含单引号
# 双引号定义字符串中想要表达双引号需要使用转义\
s1 = "你好,世界"
s2 = "你好,''世界"
s3 = "你好,\"\"世界"
print(s1, s2, s3)# 单引号定义字符串其中可以包含双引号
# 单引号定义字符串中想要表达单引号需要使用转义\
a1 = '你好,世界'
a2 = '你好,""世界'
a3 = '你好,\'\'世界'
print(a1, a2, a3)# 三引号定义字符串其中可以包含单、双引号
# 三引号定义字符串中想要表达三引号需要使用转义\
b1 = """你好,世界"""
b2 = """你'好世"界"""
b3 = """你好\"""世界"""
print(b1, b2, b3)
总结

字符串的三种定义方式:

        单引号方式

        双引号方式

        三引号方式

引号的嵌套

        可以使用:\来进行转义

        单引号内可以写双引号或双引号内可以写单引号

字符串拼接

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

输出结果:

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

输出结果:

既然,字符串和变量进行拼接,我们来完成一个小需求:

定义2个变量:

        name,内容是“李华”

        address,内容是“建材城东路9号”

要求写程序通过print语句以及字符串拼接的方式输出:

“我是:李华,我的地址是:建材城东路9号院”

既然可以和字符串变量完成拼接,那么,是否可以和其它变量类型如数字类型完成拼接呢?

让我们试一试。

字符串无法和非字符串变量进行拼接

因为类型不一致,无法接上

就像接力赛一样,不是队友,不能接力的哦

总结

1. 如何完成字符串拼接?

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

2. 有哪些注意事项?

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

字符串格式化

我们会发现,这个拼接字符串也不好用啊

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

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

所以,有没有其它方式,即方便又支持拼接其它类型呢?

        这个方式,就是字符串的格式化

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

其中的,%s

        %  表示:我要占位

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

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

那,数字类型呢?可以不可以占位?

那必须可以,我们来尝试如下代码:

多个变量占位

变量要用括号括起来

并按照占位的顺序填入

数字也能用%s占位吗?

可以的哦,这里是将数字 转换成了 字符串哦 也就是数字57,变成了字符串"57"被放入占位的地方

数字类型,也太没有地位了吧,竟然要被转成字符串拼接。

有没有体面一点的方式,让数字以其原本的面貌拼接进去呢?

安排:

Python中,其实支持非常多的数据类型占位

最常用的是如下三类

如下代码,完成字符串、整数、浮点数,三种不同类型变量的占位

总结 

字符串格式化的语法?

"%占位符"    % 变量

2. 常用占位符有哪3个?

字符串:      %s

整数:            %d

浮点数:         %f

数字精度控制

如下代码,完成字符串、整数、浮点数,三种不同类型变量的占位

细心的同学可能会发现:

浮点数19.99,变成了19.990000输出

这里我们就要讲解一下,字符串格式化之“数字精度控制”

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

        x,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效 .

        y,控制小数点精度,要求是数字,会进行小数的四舍五入

示例:

        %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

体验一下如下代码的快乐吧。

总结

1. 精度控制的语法是:

        x.y的形式控制,如%5d、%5.2f、%.2f

        x和.y均可省略

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

        x不生效

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

        会对小数部分做四舍五入

字符串格式化 - 快速写法

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

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

那当然:

通过语法:f"内容{变量}"的格式来快速格式化

看如下代码

这种写法不做精度控制

也不理会类型

适用于快速格式化字符串

总结

1. 可以通过

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

2. 这种方式:

        不理会类型

        不做精度控制

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

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

刚刚的演示,都是基于变量的。

可是,我想更加优雅些,少写点代码,直接对“表达式”进行格式化是否可行呢?

那么,我们先了解一下什么是表达式。

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

如:

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

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

name = “张三”     age = 11 + 11

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

那么,对于字符串格式化,能否直接格式化一个表达式呢?

可以,上代码:

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

总结

1. 表达式是什么?

        表达式就是一个具有明确结果的代码语句,如 1 + 1、type(“字符串”)、3 * 5等

        在变量定义的时候,如 age = 11 + 11,等号右侧的就是表达式,也就是有具体的结果,将结果赋值给了等号左侧的变量

2. 如何格式化表达式?

        f"{表达式}"

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

格式化字符串示例:

# 需求:name存储名字,age存储年龄,height存储身高,weight存储体重,打印最终的个人信息
name = "李明"
age = 23
height = 175
weight = 65.5
# 方式1 :print打印多个内容
print("我的名字是",name,"我的年龄是",age,"岁,我的身高是",height,"cm,我的体重是",weight,"kg。")
# 方式2 :使用+拼接字符串并打印
print("我的名字是"+name+"我的年龄是"+str(age)+"岁,我的身高是"+str(height)+"cm,我的体重是"+str(weight)+"kg。")
# 方式3:使用%s %d %f占位符的方式格式化输出字符串
print("我的名字是:%s我的年龄是%d岁,我的身高是%fcm,我的体重是%dkg。" % (name,age,height,weight))
# 方式4 :控制精度格式化输出字符串
print("我的名字是:%s我的年龄是%2d岁,我的身高是%.2fcm,我的体重是%3dkg。" % (name,age,height,weight))
# 方式5:快速格式化方式输出字符串
print(f"我的名字是:{name}我的年龄是{age}岁,我的身高是{height}cm,我的体重是{weight}kg。")

总结:

  • 字符串的拼接:

    • 方式1:利用print()同时输出多个内容按逗号分隔的方式

    • 方式2 :利用+号拼接多个字符串的方式

    • 使用+号只能连接字符串,不能将数值与字符串进行拼接

  • 字符串的格式化

    • 方式1:所有变量都用%s去占位

    • 方式2:字符串使用%s占位,整数使用%d占位,浮点数使用%f占位

  • 精度控制

    • 精度控制的语法:x.y

      • x表示数值的宽度

      • y表示小数部分的位数(如方式4)

    • 如果x宽度比数字本身宽度还小,不会生效

    • y会对小数部分做四舍五入的精度限制

  • 快速格式化

    • f”{变量}xxx”

    • 这种方式不理会数据类型,不做精度控制

数据输入

获取键盘输入

试想一下,我们经常遇到过程序需要我们输入信息的场景。

比如:银行取钱

如何在Python中做到读取键盘输入的内容呢?

这里就要请出input语句了

input语句(函数)

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

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

        数据输出:print

        数据输入:input

使用上也非常简单:

        使用input()语句可以从键盘获取输入

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

在前面的代码中,输出”请告诉我你是谁?“的print语句其实是多余的

input()语句其实是可以在要求使用者输入内容前,输出提示内容的哦,方式如下:

如图,在input的括号内直接填入提示内容即可。

input语句获取的数据类型

我们刚刚试验的都是输入了字符串类型的数据。

那么如果我们输入数字类型或其它类型,结果会如何?

那么,让我们通过前面学习过的???

type()语句

来验证一下输入内容的数据类型吧。

可以看到,无论键盘输入何种类型的数据

最终的结果都是:字符串类型的数据

代码示例
# 从键盘输入用户名和密码
# input()默认从键盘接收的数据都会转换为str字符串类型
# user_name = input("请输入您的用户名:")
# print(f"您刚才输入的用户名是:{user_name}")
#
# password = input("请输入您的密码:")
# print(f"您刚才输入的密码是:{password}")
# print(type(password))# 需求:计算购买商品的总价格=单价*数量
# 单价和数量从键盘录入
# 获取单价,将转换为浮点类型
a = float(input("你的单价: "))
# 获取商品的数量,并转换为浮点类型
b = float(input("你的商品数量: "))
# 计算并输出商品的总价
print(f"商品的总价:{a * b}")
总结
  • 变量 = input(“提示语”)

  • 如果括号中有提示语,会先将提示主打印到控制台

  • 等用户输入数据之后,input()会自动接收用户输入的内容并赋值给定义的变量

  • 注意:默认接收的类型都str字符串类型,如果需要使用其它类型必须手动转换

  • input()语句的功能是,获取键盘输入的数据

  • 可以使用:input(提示信息),用以在使用者输入内容之前显示提示信息。

  • 要注意,无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词