一、为什么选择Python
(一)Python简史
1989年,荷兰人Guido van Rossum(吉多—龟叔)发明了一种面向对象的解释型高级编程语言,将其命名为Python(Python单词的本义是蟒蛇) 。1991年,Python的第一个公开发行版问世。从2004年开始,Python的使用率呈线性增长,逐渐受到编程者的欢迎和喜爱。2010年,Python荣膺TIOBE 2010年度语言桂冠;2017 - 2021年,在IEEE Spectrum发布的年度编程语言排行榜中,Python已经夺得五连霸。IEEE Spectrum发布的2021年度编程语言排行榜的前10名如下:
Rank |
Language |
Type |
Score |
1 |
Python |
|
100.0 |
2 |
Java |
|
95.4 |
3 |
C |
|
94.7 |
4 |
C++ |
|
92.4 |
5 |
JavaScript |
|
88.1 |
6 |
C# |
|
82.4 |
7 |
R |
|
81.7 |
8 |
Go |
|
77.7 |
9 |
HTML |
|
75.4 |
10 |
Swift |
|
70.4 |
(二)Python版本
Python自发布以来,主要有三个版本:1994年发布的Python 1.0版本(已过时)、2000年发布的Python 2.0版本(到2022年1月份已经更新到2.7.18)和2008年发布的3.0版本(2022年1月份已经更新到3.10.1版本)。注意:我们选择的Python版本为3.8.10。
(三)Python特点
Python的设计哲学为优雅、明确、简单。一直以来Python始终贯彻着这一理念,以至于现在网络上流传着“人生苦短,我用Python”的说法,充分说明了Python有着语法简洁、容易学习、开发速度快和应用范围广等特点。
Python是一种扩充性强的编程语言。它具有丰富和强大的库,能够把使用其他语言制作的各种模块(尤其是C/C++语言)很轻松地联结在一起,所以Python常被称为“胶水”语言。
一般来说,Python的主要特点体现如下:
- 易于学习:Python有相对较少的关键字,结构简单,明确定义的语法,学习起来简单便捷。
- 易于阅读:Python代码定义和编码结构清晰明了。
- 易于维护:Python的成功在于它的源代码是相当容易维护的。
- 强大的标准库:Python最大的优势之一是丰富的库,跨平台,在UNIX、Windows和Macintosh兼容很好。
- 互动模式:支持互动模式,可从终端输入执行代码并获得结果,方便互动测试和调试代码片断。
- 可移植:基于开放源代码的特性,Python已被移植到许多平台。
- 可扩展:例如一些运行很快的关键代码、或是一些不愿开放的算法,可以使用C或C++完成关键程序功能,然后从Python程序中对其进行调用。
- 数据库:Python提供所有主要的商业数据库的接口。
- GUI编程:Python支持GUI,可以创建和移植到许多系统调用。
- 可嵌入:可以将Python嵌入到C/C++程序,让程序的用户获得“脚本化”的能力。
(四)Python应用领域
Python作为一种功能强大的编程语言,因其简单易学而受到很多开发者的青睐。Python的应用领域概括起来主要有以下几个方面:
- 应用程序开发:拥有脚本编写、软件开发等标配能力。
- AI人工智能:在机器学习、神经网络、深度学习等方面得到广泛的支持和应用。
- 数据分析:是大数据行业的基石。
- 自动化:是自动化办公、运维工程师首选的编程语言。
- 云计算:拥有成功案例OpenStack与Rackspce合作的云计算管理平台。
- 网络爬虫:是大数据行业获取数据的核心工具。
- Web开发:有完善的框架支持,开发速度快。
- 游戏开发:具有简单、高效、代码少的特点。
总而言之,Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,相比其他语言它具有特色语法结构。对初级程序员而言,简单亲和,具有良好的上手能力,而且Python支持广泛的应用程序开发,可以说它能支持所有能想到的应用开发。
二、Python语言基础
(一)注释
注释是指在代码中添加的标注性的文字,旨在告诉别人代码要实现什么功能,从而帮助程序员更好地阅读代码。注释的内容将被Python解释器忽略,并不会在执行结果中体现出来。在Python中,通常包括3种类型的注释,分别是单行注释、多行注释和中文编码声明注释。
示例代码如下:
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
"""
@Project :断点社区二期训练营_教学代码
@File :注释.py
@IDE :PyCharm
@Author :来自断点社区
@Date :2022/1/10
"""
x = int(input("请输入x的值: ").strip()) # 输入变量x
y = int(input("请输入y的值: ").strip()) # 输入变量y
# 定义函数:实现计算两个数的和
def add(x, y):
z = x + y
# 输出显示
print(f'{x} + {y} = {z}')
return z
# 调用函数
add(x, y)
注意:如果三引号作为语句的一部分出现,那么就不是注释,而是字符串,这一点一定要注意区分。如下面所示的代码即为字符串:
print('''请在控制台输出您的姓名、年龄、以及电话号码:''')
name = """断点社区"""
(二)缩进
缩进是Python的灵魂,据说因为Python的作者不喜欢大括号,所以才发明了Python。严格的缩进使得Python的代码显得非常精简并且有层次,同时在Python世界里,对待代码的缩进要十分小心,如果没有正确地使用缩进,代码所做的事情可能和期望相差甚远,还有一点需要注意的是:缩进不要混用Tab和空格。
Python的冒号’:'通常需要和缩进配套使用,在PyCharm里面,在正确的位置输入冒号(:),Pycharm会自动在下一行进行缩进。例如:if和else语句后边加上冒号(:),然后按下回车键,第二行开始的代码也会自动进行缩进,智能的IDE能够帮我们处理一些基本的缩进,但不能保证在编写代码时不出现错误,因此我们要学会熟练地使用格式化代码。
示例代码如下:
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
x = int(input("请输入x的值: ").strip()) # 输入变量x
y = int(input("请输入y的值: ").strip()) # 输入变量y
if x > y:
print('x 大于 y')
elif x < y:
print('x 小于 y')
else:
print('x 等于 y')
(三)命名规范
命名规范在编写代码中起到很重要的作用,虽然不遵循命名规范,程序也可以运行,但是使用命名规范可以更加直观地了解代码所代表的含义。下面介绍Python中常用的一些命名规范:
- 模块名:尽量短小,并且使用全部小写字母,可以使用下划线分隔多个字母。例如,gm、game_reg、ybf_course都是推荐使用的模块名称。
- 包名:尽量短小,并且使用全部小写字母,不推荐使用下划线。例如,com.youbafu、cn.ybf、cn.ybf.books都是推荐使用的包名称,而com_youbafu就不推荐。
- 类名:采用单词首字母的大写形式(即Pascal风格)。例如,定义一个借书类,可以命名为BorrowBook。
- 模块内部的类:采用下划线_+Pascal风格的类名组成。例如,在BorrowBook类中的内部类,可以使用_BorrowBook命名。
- 函数、类的属性和方法:命名规则同模块类似,也是全部采用小写字母,多个字母间用下划线_分隔。
- 常量:命名时采用全部大写字母,可以使用下划线。在Python中没有类似于其他语言中const关键字来定义常量。
- 私有成员:使用双下划线__开头的实例变量或方法是类私有的。
(四)关键字
Python中的关键字是已经被赋予特定意义的一些单词,在开发程序时,不可以把这些关键字作为变量、函数、类、模块和其他对象的名称来使用。Python语言中的关键字如下表所示:
(五)标识符
标识符可以简单地理解为是一个名字,主要用来标识变量、函数、类、模块和其他对象的名称。Python语言的标识符命名规则如下:
- 由字母(汉字)、下划线_和数字组成,并且第一个字符不能是数字。
- 不能使用Python中的关键字。
- 区分字母大小写。
- Python中以双下划线开头的标识符有特殊意义,一般应避免使用相似的标识符。以双下划线开头的标识符(如add)表示类的私有成员;以双下划线开头和结尾的是Python里专用的标识,例如,init__()表示构造函数。
以下是合法的标识符:
USERID
name
model2
youbafu_age
断点社区
以下是不合法的标识符:
52youbafu # 以数字开头
try # Python中的关键字
$money # 不能使用特殊符号$
(六)变量
在程序的世界里,为一个数值起名字的时候,它将会存储在内存中,把这块内存称为变量(variable)。在大多数语言中,把这种行为称为“给变量赋值”或“把值存储在变量中”。不过在Python世界里,变量就是一个名字,通过这个名字,就可以找到想到的东西。
为变量赋值是通过等号=来实现(注意是一个等号=)。语法格式为:变量名 = value。
变量之所以叫“变量”,正是因为它是可变的。示例如下:
x = 3
x = 5
z = x + 6
print(z)
# 结果: 11
这个例子先创建一个变量,名字叫x,给它初始化赋值为3,然后又给它赋值为5(此时3就被5替换掉);接下来创建另外一个变量z,它的值是变量x和6的和。
Python是一种动态类型的语言,也就是说,不仅是变量的值是可以发生变化的,连变量的类型可以随时变化。示例如下:
nickname = '断点社区'
print(nickname, type(nickname))
nickname = 666
print(nickname, type(nickname))
结果如下:
断点社区 <class'str'>
666 <class 'int'>
在Python语言中,使用内置函数type()可以返回变量类型。
重点注意:
- 等号(=)是赋值的意思,左边是名字,右边是值,不能写反了。
- 在使用变量之前,需要对其先赋值。
- 变量名可以包括字母、数字、下画线,但变量名不能以数字开头,不能使用Python中的关键字。
- 字母可以是大写或小写,但大、小写是不同的。也就是说,a和A对于Python来说是完全不同的两个名字。
- 对变量的命名要符合标识符规范,首选有意义的单词作为变量名,即见名知意,作为一名有趣的程序员,来点中文名也蛮有趣的。
三、Python易犯的错误
虽然Python相比于其他语言,它的语法比较简单易学,但是不注意细节一个不小心,就会掉进语法错误的坑里面去。下面是几个平常非常容易掉“坑”的地方:
- 缩进问题:Python不能用括号来表示语句块,也不能用开始或结束标志符来表示,而是靠缩进来区分代码块的。常见错误有:同一代码块的语句缩进不一致;if语句等代码块内的语句缩进错误;在Python 3中,缩进时混用Tab和空格,每个缩进层次应该选择只使用Tab或者只使用空格。
- 忘记写冒号:在if、elif、else、for、while、class、def语句后面忘记添加“:”。
- 使用中文符号:如果切换到中文输入法并输入了中文的冒号,在程序中是运行通不过的。
- 变量没有定义:在使用变量前,如果没有对其进行定义,会导致报错。
- 用“=”做等值比较:等值比较应该用“==”,而不是“=”。
- 字符串非字符串连接:数字类型和字符串类型相加在Python中是不可以的,需要进行类型转换。
四、课后练习题
- (单选)Python单行注释的符号是()。
A. //
B. #
C. ‘’’…’’’
D. “”"…"""
- (单选)下列说法错误的是()。
A. Python的代码块不使用大括号{}来控制类、函数以及其他逻辑判断
B. Python利用冒号和代码缩进来决定代码块范围
C. 一个代码块语句内必须包含等量的缩进空白
D. Python代码的缩进量只能是4个空格或1个Tab键及其整数倍,不可随意缩进
- (单选)下面哪个不是合法的Python变量名?
A. 300cm
B. user
C. 119Fire
D. qwer110
- (多选)下列哪些不是Python的合法标识符?
A. int32
B. 300dt
C. and
D. beautiful