您现在的位置是:首页 > 技术教程 正文

零基础学Python入门教程非常详细(从小白到高级)

admin 阅读: 2024-03-23
后台-插件-广告管理-内容页头部广告(手机)

目录:基础

第一章-第五章(5.1-5.4):简介、配置与基础知识
第六章:判断语句

第一章:Python的概述

1.1:什么是Python?

Python它是一种直译式,面向对象,解释式的脚本语言。它和Java,C/C++,Go语言一样都是高级语言,但由于它是解释式语言,所以运行速度会比Java,C/C++等语言慢(虽说隔壁Go也是解释式语言,但比它快很多)。不过任何事物有利也有弊,Python因为自身携带了许多库(如:OS、TCP、Urllib、Trutle),语法简单,第三库也有很多(如飞机大战所需的pygame),所以被称为胶水语言,同时也深受开发者青眯。

1.2:Python之父与简介

Python之父:Guido van Rossum,荷兰人。他也是一个比较传奇的人物,1982年 在阿姆斯特丹大学获得计算机和数学科学硕士学位 ,1989年制作Python,1995年Guido van Rossum从荷兰移民到美国,2005年在Google工作,并用Python发明了面向网页的代码浏览工具Mondrian,之后又开发了Rietveld。现在在Dropbox工作。

1.3:Python应用范围

基本全能,例如:系统运维、图形处理、数学处理、文本处理、数据库编程、网络编程、web编程、多媒体应用、pymo引擎、黑客编程、爬虫编写、机器学习、人工智能等。

1.4:Python优缺点

优点:免费开源、无社区限制、可开发应用面广、可跨平台、功能强大、自身携带模块多、第三方模块多、语法简单,代码量少可实现多功能等。例如以下代码实例
按照程序界传统,入门新人写的第一个程序就是输出Hello,world。要是我们用C实现

#include int main() { printf("Hello world!\n"); return 0; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

然而我们用Python

def print(): return print print('Hello world')
  • 1
  • 2
  • 3
  • 4

或者更简单

print('Hello world')
  • 1
  • 2

我们可以看出制作同一个程序,运用代码量Python远比C要少,所以这就是它受广大程序员青睐的原因之一。
缺点:运行速度远比C/C++等语言要慢等。

第二章:安装与配置Python IDE

在古代战场上,一把趁手的武器与士兵精湛的武术、将军正确的指挥,相辅相成,相得益彰,这样胜率往往会提高很多。在做某爱时,即使女方精通某爱技艺,身材妩媚妖娆的妹子,但如果你的烧火棍很小,那么你将不能满足她,然后就可能会造成伴侣之间某冷淡。但如果你的烧火棍犹如定海神针般,那么你将可以给予她*方面的满足,同时也增进了伴侣间的感情(开始正儿八经的胡说八道)…这些道理放到配置Python解释器方面也同样适用。因此,我们应该如何正确配置Python解释器了?下面的方法将会对你正确指导。

Windows(Python 3.8.9)

IDLE:官网:https://www.python.org/downloads/
点击网址进入官网,搜索Python 3.8.9
在这里插入图片描述
然后找到它
在这里插入图片描述

看系统是多少位的就根据多少位选择
在这里插入图片描述

下载后点击Next,根据自己爱好来安装(借3.4.4来当教材,安装原理一样)
在这里插入图片描述
在这里插入图片描述

确认后只需等待一会就可安装完成。
如果不确定是否安装完成,可以在Command(Cmd)中输入Python。如果安装成功输出如下
在这里插入图片描述
如果失败可以尝试一下点击Repair(别说九年教育了连这个词都不懂),修复完后重试通常都能成功。
在这里插入图片描述

PyCharm(官网:https://www.jetbrains.com/pycharm/)

进入官网后找到Download PyCharm now,然后找到社区(community)版本下载(专业版需要付费,社区版是免费的)。
在这里插入图片描述
然后(可以根据自己实际情况选磁盘)
在这里插入图片描述
根据自己的系统位数选择勾选安装,然后安装(install)
在这里插入图片描述
在这里插入图片描述
下载完后,创建一个新Project,并选择合适的解释器
在这里插入图片描述
成功
在这里插入图片描述

Linux与Mac OS

Linux

IDEA:
Linux 系统是为编程而生的,因此绝大多数的 Linux 发行版(Ubuntu、CentOS 等)都默认自带了 Python。有的 Linux 发行版甚至还会自带两个版本的 Python,例如最新版的 Ubuntu 会自带 Python 2.x 和 Python 3.x。

打开 Linux 发行版内置的终端(Terminal),输入python命令就可以检测是否安装了 Python,以及安装了哪个版本,如下所示:

[c.biancheng.net@localhost ~]$ python Python 2.7.5 (default, Jun 17 2014, 18:11:42) [GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

可以看到,python命令能够正常运行,并输出了 Python 的版本信息,这表明当前的 Linux 发行版已经自带了 Python 2.7.5。

大部分的 Linux 发行版会自带 Python 2.x,但是不一定自带 Python 3.x,要想检测当前 Linux 发行版是否安装了 Python 3.x,可以在终端`

(Terminal)输入python3命令,如下所示: [c.biancheng.net@localhost ~]$ Python3 Python 3.6.4 (default , Nov 18 2018 , 13:02:36) [GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2 Type "help","copyright","credits" or "license" for more information. >>>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

如果python3命令运行成功,并出现 Python 提示符>>>,则表明当前 Linux 发行版已经安装了 Python 3 开发环境,只需执行python3命令就可以启动 Python 3 开发环境。

如果当前 Linux 发行版没有安装 Python 3,或者你觉得现有的 Python 3 版本不够新,那么就需要更新 Python 版本。本节我们以 Ubuntu 为例来进行演示。
更新 Python 版本
在 Ubuntu 终端执行以下两条命令即可更新 Python 版本:

$sudo apt-get update $sudo apt-get install python3.8
  • 1
  • 2
  • 3

对命令的说明:
第一条命令用来指定更新 /etc/apt/sources.list 和 /etc/apt/sources.list.d 所列出的源地址,这样能够保证获得最新的安装包。
第二条命令用来指定安装 Python 3.8,这是目前最新的 Python 版本。

等待以上两条命令执行完成,再次在终端输入python3命令,就可以看到 Python 交互式编程环境已经更新到 Python 3.8。
重新安装 Python
以上更新方法仅在 Ubuntu 已经安装 Python 的情况下才有效,如果你的 Ubuntu 中没有 Python 环境,或者你想重新安装,那么就得到官网下载源代码,然后自己编译。

  1. 下载源代码
    Python 官方下载地址:https://www.python.org/downloads/

打开链接,可以看到各个版本的 Python:

Python 下载页面截图
图 1 Python 下载页面截图
在这里插入图片描述
点击上图中的版本号或者“Download”按钮进入对应版本的下载页面,滚动到最后即可看到各个平台的 Python 安装包。
在这里插入图片描述
找到源码包地址
图 2 找到源码包地址

在“Gzipped source tarball”处单击鼠标右键,从弹出菜单中选择“复制链接地址”,即可得到.tgz格式的源码压缩包地址。

然后执行以下命令:

$ wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz
  • 1
  • 2

解压源码包:

$ tar -zxvf Python-3.8.1.tgz
  • 1
  • 2
  1. 编译
    使用 make 工具进行编译:
$ ./configure --prefix=/usr/local $ make&&sudo make install
  • 1
  • 2
  • 3

这里的–prefix=/usr/local用于指定安装目录(建议指定)。如果不指定,就会使用默认的安装目录。

经过以上几个命令,我们就安装好了 Python,这时就可以进入终端,输入 Python 指令,验证是否已安装成功。
小技巧
python命令默认调用的是 Python 2.x 开发环境,如果你习惯使用 Python 3.x,感觉每次输入python3命令有点麻烦,那么你可以修改配置,让python命令转而调用 Python 3.x 开发环境。具体命令如下:

$sudo unlink /usr/bin/python $sudo ln -s /usr/bin/python3.8 /usr/bin/python
  • 1
  • 2
  • 3

注意,第二条命令中 Python 3.x 的路径和版本一定要正确。

上述命令执行完成以后,再次在终端输入python命令,进入的就是 Python 3.8 的交互式开发环境了。

Mac OS

和 Linux 发行版类似,最新版的 Mac OS X 也会默认自带 Python 2.x。

我们可以在终端(Terminal)窗口中输入python命令来检测是否安装了 Python 开发环境,以及安装了哪个版本,如下所示:
c.biancheng.net:~ mozhiyan$ python
Python 2.7.10 (default, Jul 30 2016, 18:31:42)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.
可以看到,python命令能够正常运行,并输出了 Python 的版本信息,这表明当前的 Mac OS X 系统已经自带了 Python 2.7.10。

python命令默认指向 Python 2.x 开发环境,如果想检测当前 Mac OS X 是否安装了 Python 3.x,可以在终端(Terminal)窗口中输入python3命令:
如果系统提示command not found,则说明没有安装 Python 3.x;
如果python3命令运行成功,并显示出版本信息,则说明已经安装了 Python 3.x。

对于没有安装 Python 3.x 的 Mac OS X,想要安装也非常简单,用户只需要下载安装包,然后一直“下一步”即可,这和 Windows 安装 Python 的过程是非常类似的。
Mac OS X 安装 Python 3.x
Python 官方下载地址:https://www.python.org/downloads/

打开链接,可以看到各个版本的 Python:

图 1 Python 下载页面截图
在这里插入图片描述
点击上图中的版本号或者“Download”按钮进入对应版本的下载页面,滚动到最后即可看到各个平台的 Python 安装包。

图 2 各个平台的 Python 安装包
在这里插入图片描述
macOS 64-bit installer即为 Mac OS X 系统的 Python 安装包。点击该链接,下载完成后得到一个 python-3.8.1-macosx10.9.pkg 安装包。

双击 python-3.8.1-macosx10.9.pkg 就进入了 Python 安装向导,然后按照向导一步一步向下安装,一切保持默认即可。

图 1 Python安装向导
在这里插入图片描述
安装完成以后,你的 Mac OS X 上将同时存在 Python 3.x 和 Python 2.x 的运行环境,在终端(Terminal)输入python命令将进入 Python 2.x 开发环境,在终端(Terminal)输入python3命令将进入 Python 3.x 开发环境。
c.biancheng.net:~ mozhiyan$ python3
Python 3.8.1 (v3.8.1:1b293b6006, Dec 18 2019, 14:08:53)
[Clang 6.0 (clang-600.0.57)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.
与 Windows 系统类似,Mac OS 下的 Python 3.x 也会自带 IDLE 简易开发工具,你可以在程序列表中找到它。

图 2 安装完成以后的程序列表
在这里插入图片描述

第三章:Python基础

3.1: Python的输出(略讲,第五章将会与输入一同详细讲)

在Python中,如果想要输出一些特定数据,我们就必须用到print()函数
利用Print()函数输出的方法有很多中,比如我喜欢了一个叫LWL的小女孩,我要去简单表白。如果我想要节省字节免得占磁盘的话,我可以

print('LWL我喜欢你,可不可以做我女朋友呀?')
  • 1
  • 2

如果觉得无所谓,也可以

Loveyou='LWL我喜欢你,可不可以做我女朋友呀?' print(Loveyou)
  • 1
  • 2
  • 3

你也可以把字串符结合再输出

Love='LWL我喜欢你,' you='可不可以做我女朋友呀?' print(Love + you)
  • 1
  • 2
  • 3
  • 4

或者来点更高b格的

def Loveyou1314(): print('LWL我喜欢你,不知你可不可以做我女朋友') Loveyou1314()
  • 1
  • 2
  • 3
  • 4

这个输出是运用到自定义函数输出,关于Python的函数与内置函数以后会讲。

3.2:Python数据类型(数字)

在Python中,数字数据类型有int、float、bool(布尔型)、complex(复数)。在这里要提醒一下学过C语言的人,在Python中浮点类型只有单精度float,不要以为保留两位小数的数就是双精度类型(double),在Python中无论你是多少位小数它的数据类型都是float。
当然,如果你想判断该数字的数据类型,你可以尝试用type()函数来判定,如以下代码实例:

a6,a5,a3,a2,a1=4 + 7j,47.88 ,47 ,47.8 ,47.88888 a4=False print(type(a1),type(a2),type(a3),type(a4),type(a5),type(a6))
  • 1
  • 2
  • 3
  • 4

输出如下
在这里插入图片描述
当然,也可以用isinstance()函数来判定,结果返回True代表你认为的数据类型是正确的,False就代表错误。

a6,a5,a3,a2,a1=4 + 7j,47.88 ,47 ,47.8 ,47.88888 a4=False print("Type a1:",type(a1),isinstance(a1, type(a1)),) print("Type a2:",type(a2),isinstance(a2, type(a2)),) print("Type a1\3:",type(a3),isinstance(a3, type(a3)),) print("Type a4:",type(a4),isinstance(a4, type(a4)),) print("Type a5:",type(a5),isinstance(a5, type(a5)),) print("Type a6:",type(a6),isinstance(a6, type(a6)),)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

输出
在这里插入图片描述
好了,既然学完了数字数据类型,那么也学下算术运算符吧。

3.2.1:算术运算符

在Python中,运算符有:+、-、*、/、%、**、//(加、减、乘、除、取模、次方、整除)
+:加法,两个变量相加求和
-:减法,两个变量相减求差
*:乘法,变量相乘求积
/:除法,变量相除求商
%:取模,得到除法结果第一位余数
**:次方,求变量(a)的n次幂->(a)ⁿ,可以用pow()函数代替
//:整除,取除法后的整数部分
学完算术运算符后,我们可以与之前学过的数字数据类型来结合使用。

a = 1314 b = 521 print(a+b,a-b,a*b,a/b,a%b,a**b,pow(a,b),a//b,)
  • 1
  • 2
  • 3
  • 4

输出如下
在这里插入图片描述

3.3:Python数据类型(字串符:string)

在Python中,数据类型不仅仅有数字数据类型,当然也有其他的,string(字串符)数据类型也是其中一种。
如果你想换行转义输出,你可以在要转义的字串符之间加个\n(PS:反斜杠\是特殊转义字符),但在字串符前加个r将会是原字串符输出。

a = 'Hello','LWL' b = 'Hello''LWL' #注意字串符a与b的区别,如果有逗号, #那么输出时将会是两个字串符一起输出,如 #果没有输出将会两个字串符相互结合输出 c,d= 'Hello','LWL' print(a) print(b) print(c,d) print(c+d) print(b[0:-2]) print(c[0:-3]) print(d[0:-1]) print(c*2,d*2)#各输出两次 print((c+d)*2)#结合输出两次 print('Hello,\nLWL') print(r'Hello,LWL')#加了r后转义字符失效 e='Love LWL 1314' print(e[0],e[5])#输出指定索引位置的字母 print(e[0],e[-2],e[3])#Python与C语言字串符不同的地方在于Python字串符是不可以被改变的, #如果向一个指定索引赋值,那么将会错误
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

输出结果如下
在这里插入图片描述

3.3:Python数据类型(列表:List)

在Python中,复合数据类型分别有三种:Tuple(元组)、Set(集合)与List(列表)。然后今天教的复合数据类型就是这三类之中最easist的一类:List(列表)
在Python中,创建一个列表数据类型方法如下

变量名称 = ['数值',数值]
  • 1
  • 2

在列表的数值内容中,数值可以类型不同,但要记住的一点是:**除数字以外其他任何数值都必须要用单引号括起(无论是中文还是其他国家语言,都必须要),而数字数值可以不用单引号括起)。**代码实例如下
PS:具体内容已在注释

a = ['a','b','c',3] #创建两个列表 b = [4,7,'love','to','lwl',',','never','change'] print(a,b) print(a[0:1:3]) #输出指定列表被切割后的指定数据 print(b[1:7]) print(a[3]) #输出指定索引搜索的数据 print(b[7]) a[0:3]='A','B','C' #修改列表中指定数据,即可以直接修改 print(a) b.append(347) #append()函数用于在制定列表末尾添加新数值 print(b) a[1]=[] #移除a列表中指定索引数据 print(a) print('a列表数据个数:',len(a),'b列表数据个数:',len(b)) #len()函数用于统计列表数据个数 c=[0,1] #生成一个嵌入式列表 d=[2,3] e=[c,d] print(e)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

3.4:Python数据类型(Tuple:元组)

在Python中,元组的语法与列表差不多,不同之处就是元组使用小括号(),且括号中元素不能被改变,创建元组可以不需要括号;而列表是使用中括号[]。
因此想要把列表转换为元组或元组转换为列表,只需要改一下括号即可

变量名称 = ('元素',元素) 变量名称 = "元素","元素"
  • 1
  • 2
  • 3

创建元组实例

a = ('C/c++','Python',2) #创建两个元组 b = "Python菜中菜的菜鸟","Love to lxx for Li wenli","never change" print(a,b)
  • 1
  • 2
  • 3
  • 4

创建一个空的元组

a = ()
  • 1
  • 2

因为元组与列表语法相似,所以元组可以与其他元组结合为一个新元组并输出

a = ('C/C++','Python',2) #创建两个元组 b = "Python菜中菜的菜鸟","Love to lxx for Li wenli","never change" c = a+b #相互结合 print(c)
  • 1
  • 2
  • 3
  • 4
  • 5

输出
在这里插入图片描述

如果想删除元组,那么可以用del语句来实现

a = ('C/C++','Python',2) #创建两个元组 b = "Python菜中菜的菜鸟","Love to lxx for Li wenli","never change" c = a+b #相互结合 print(c) del c print(c)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

因后元组被删除所以会输出异常

在这里插入图片描述

当然,元组也和字串符一样支持+和*运算符(具体已在注释表面)

a = ('C/C++','Python',2) #创建两个元组 b = "Python菜中菜的菜鸟","Love to lxx for Li wenli","never change" c = a+b #相互结合 print(len(c))#输出c元组内数据个数 print(c*2)#复制输出 print(b in ("Python菜中菜的菜鸟","Love to lxx for Li wenli","never change")) #判断元素是否存在 for c in ("Python菜中菜的菜鸟","Love to lxx for Li wenli","never change",'C/C++','Python',2): print(c,) #迭代输出
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

输出
在这里插入图片描述

元组的内置函数(具体在注释

a = ['C/C++','Python',2,4] #创建列表 b = ["Python菜中菜的菜鸟","Love to lwl for Li wenli","never change"] c = a+b #相互结合 c = tuple(c)#强制转换为元组 print(len(c))#输出列表内数据个数 d = ('3','4','7') print(max(d))#输出d元组内最大数值 print(min(d))#输出d元组内最小数值,max()是判断最大值函数,min()反之
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

输出
在这里插入图片描述

3.5:Python数据类型(Set:集合)

Set(集合)数据类型它和Tuple、List一样都属于复合数据类型,而且集合数据类型是一种无序不重复元素的序列
在Python中,我们可以使用大括号{}或内置函数Set()来创建一个集合(创建一个空集合必须用Set()函数,不可用{},因为{}实质是创建一个空的字典
格式实例

a = {'a','b','c','d','a'}#创建集合a print(a)#因为集合是无序不重复元素序列,所以不会输出多出的a b = set('sdgsdggfdgdasrfdsf')#运用Set()函数创建集合b print(b)
  • 1
  • 2
  • 3
  • 4
  • 5

输出
在这里插入图片描述
判断元素是否在集合内

a = {'a','b','c','d','a'}#创建集合a print('a' in a,'e' in a)
  • 1
  • 2
  • 3

在这个代码中代码片段’a’ in a与’e’ in a主要判断a与e元素是否在此集合内,如果在就输出True,反之位False。
输出结果
在这里插入图片描述
与List与Tuple一样,Set也支持数学运算符运算,不同运算符使用范围也不同

a = set('sdfygsyfysdgfsdtfsyhf') b = set('hgdhsdfsghdvhgsfs') print(a - b) print(a | b) print(a & b) print(a ^ b)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里面,减号(-)的作用就是输出a集合中b集合内没有的元素,竖线符号(|)主要输出集合a或b中包含的元素,逻辑符号(&:and,和,拉丁美语为et)就是要输出集合a和b中共同包含的元素,乘方(^)主要输出不同时包含于a和b的元素。
输出结果
在这里插入图片描述
在集合中,我们可以使用关键字add或update来添加新的元素

b = set('hgdhsdfsghdvhgsfs') print(b) b.add('fuck') b.update('good') print(b)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

输出结果,大家对照会发现,每次输出都会有不同的新元素输出

============== RESTART: C:\Users\Administrator\Desktop\新建文件夹\4.py ============== {'h', 'g', 'f', 's', 'v', 'd'} {'h', 'fuck', 'g', 'f', 's', 'v', 'o', 'd'}
  • 1
  • 2
  • 3
  • 4

当然,如果想要删除某些元素,可以使用关键字remove,discard或pop(pop会随机删除某些元素)

b = set('abcdefghijk,fuck,abats') print(b) b.remove('f') print(b) b.discard('h') print(b) b.pop() print(b)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里remove与discard分别删除f与h元素,而pop扶着随机删除集合内任意一个元素

============== RESTART: C:\Users\Administrator\Desktop\新建文件夹\4.py ============== {'j', 't', 'h', 'k', 'b', 'd', 's', 'f', 'g', 'i', ',', 'a', 'c', 'e', 'u'} {'j', 't', 'h', 'k', 'b', 'd', 's', 'g', 'i', ',', 'a', 'c', 'e', 'u'} {'j', 't', 'k', 'b', 'd', 's', 'g', 'i', ',', 'a', 'c', 'e', 'u'} {'t', 'k', 'b', 'd', 's', 'g', 'i', ',', 'a', 'c', 'e', 'u'} >>> ============== RESTART: C:\Users\Administrator\Desktop\新建文件夹\4.py ============== {'e', 'd', 's', 'g', 'h', 'b', 'c', 'i', 'f', 'k', 'u', 'j', 'a', ',', 't'} {'e', 'd', 's', 'g', 'h', 'b', 'c', 'i', 'k', 'u', 'j', 'a', ',', 't'} {'e', 'd', 's', 'g', 'b', 'c', 'i', 'k', 'u', 'j', 'a', ',', 't'} {'d', 's', 'g', 'b', 'c', 'i', 'k', 'u', 'j', 'a', ',', 't'} >>>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

大家仔细观察一下,两次输出虽然因为无序输出导致输出不同,但最后删除的元素都分别不同,第一次删除元素为字母j,第二次为字母e。
当然,如果觉得删除一个不过瘾,大家可以使用函数clear()来进行全部删除

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索