系列文章目录
个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页
Python入门专栏:《Python入门》欢迎阅读,一起进步!🌟🌟🌟
码字不易,如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!😊😊😊
导语
Python是一门适合初学者入门的编程语言,本文将介绍零基础Python入门的关键概念,包括Python简介、Python的优/缺点、代码缩进,注释,编码规范等基本语法,帮助你开始你的Python编程之旅。
Python简介
Python 是荷兰人 Guido van Rossum (吉多·范罗苏姆,中国程序员称其为“龟叔”)在1990年初开发的一种面向对象的解释型高级编程语言,标志下图所示。Python 英文本义是指“蟒蛇”,Python 的设计哲学为优雅、明确、简单。实际上,Python也始终贯彻这个理念,以至于网络上流传着“人生苦短,我用Python”的说法。
Python 是面向对象语言: 这意味着 Python 支持面向对象的风格或代码封装在对象的编程技术。
Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于 PHP 和 Perl 语言。
Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
现在,全世界差不多有600多种编程语言,但流行的编程语言也就那么20来种。如果你听说过 TIOBE 排行榜,你就能知道编程语言的大致流行程度。这是最近20年最常用的10种编程语言的变化图:
可以看出,Python 语言在过去几年中的流行程度不断增长,现在已经成为全球范围内最受欢迎的编程语言之一,以下是说明 Python 语言如此流行的几个关键因素:
Python的优点
- 语法简单:和传统的 C/C++、Java、C# 等语言相比,Python 对代码格式的要求没有那么严格,这种宽松使得用户在编写代码时比较舒服,不用在细枝末节上花费太多精力。我来举两个典型的例子:Python 不要求在每个语句的最后写上分号,当然写也没错;定义变量时不需要指明类型,甚至可以给同一个变量赋值不同类型的数据。
上述两点也是 PHP、JavaScript、MATLAB 等常见脚本语言都具备的特性。
Python 是一种代表极简主义的编程语言,阅读一段排版优美的 Python 代码,就像在阅读一个英文段落,非常贴近人类语言,所以人们常说,Python 是一种具有伪代码特点的编程语言。
伪代码(Pseudo Code)是一种算法描述语言,它介于自然语言和编程语言之间。编写伪代码的目的是为了使被描述的算法可以更容易地以任何一种编程语言实现,比如 C、C++、Java 等。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似于自然语言。如果你学过数据结构,阅读过严蔚敏的书籍,那你一定知道什么是伪代码。
- 为什么说简单就是杀手锏?一旦简单了,一件事情就会变得很纯粹;我们在开发 Python 程序时,可以专注于解决问题本身,而不用顾虑语法的细枝末节。在简单的环境中做一件纯粹的事情,那简直是一种享受。
- Python 是开源的:开源,也即开放源代码,意思是所有用户都可以看到源代码。
Python 的开源体现在两方面:
1). 程序员使用 Python 编写的代码是开源的。
比如我们开发了一个 BBS 系统(即网络论坛),放在互联网上让用户下载,那么用户下载到的就是该系统的所有源代码,并且可以随意修改。这也是解释型语言本身的特性,想要运行程序就必须有源代码。
2). Python 解释器和模块是开源的。
官方将 Python 解释器和模块的代码开源,是希望所有 Python 用户都参与进来,一起改进 Python 的性能,弥补 Python 的漏洞,代码被研究的越多也就越健壮。
这个世界上总有那么一小撮人,他们或者不慕名利,或者为了达到某种目的,会不断地加强和改善 Python。千万不要认为所有人都是只图眼前利益的,总有一些精英会放长线钓大鱼,总有一些极客会做一些炫酷的事情。 - Python 是免费的:开源并不等于免费,开源软件和免费软件是两个概念,只不过大多数的开源软件也是免费软件;Python 就是这样一种语言,它既开源又免费。
用户使用 Python 进行开发或发布自己的程序,不需要支付任何费用,也不用担心版权问题,即使作为商业用途,Python 也是免费的。 - Python 是高级语言:这里所说的高级,是指 Python 封装较深,屏蔽了很多底层细节,比如 Python 会自动管理内存(需要时自动分配,不需要时自动释放)。
高级语言的优点是使用方便,不用顾虑细枝末节;缺点是容易让人浅尝辄止,知其然不知其所以然。 - Python 是解释型语言,能跨平台:解释型语言一般都是跨平台的(可移植性好),Python 也不例外。
- Python 是面向对象的编程语言:面向对象(Object Oriented)是大多数“现代”语言(即第三代编程语言)都具备的特性,否则在开发中大型程序时会捉襟见肘。
Python 虽然支持面向对象,但它并不强制你使用这种特性。Java 是典型的面向对象的编程语言,它强制必须以类和对象的形式来组织代码。除 Python 和 Java 外,C++、C#、PHP、RuBy、Perl 等,也都支持面向对象的特性。
除了面向对象的编程语言外,还有一种面向过程的编程语言,其中最典型的代表就是 C 语言。
- Python 功能强大(模块众多):Python 的模块众多,基本实现了所有的常见的功能,从简单的字符串处理,到复杂的 3D 图形绘制,借助 Python 模块都可以轻松完成。
Python 社区发展良好,除了 Python 官方提供的核心模块,很多第三方机构也会参与到模块的开发中,这其中就有 Google(谷歌)、Facebook(脸书)、Microsoft(微软) 等软件巨头。
在 Python 中,即使是一些小众的功能,它往往也有对应的开源模块,甚至有可能不止一个。
- Python 可扩展性强:Python 的可扩展性体现在它的模块,Python 具有脚本语言中最丰富、强大的库或模块,这些库或模块覆盖了文件操作、图形界面编程、网络编程、数据库访问等绝大部分应用场景。
值得注意的是,这些类库的底层代码不一定都是 Python,还有很多 C/C++ 的身影。
比如当需要一段关键代码运行速度更快时,就可以使用 C/C++ 语言实现,然后在 Python 中调用它们。Python 能把其它语言“粘”在一起,所以被称为“胶水语言”。
Python 依靠其良好的扩展性,在一定程度上弥补了运行效率慢的缺点。
Python的缺点
除了上面提到的各种优点,Python 也是有缺点的。
- 1.运行速度慢:运行速度慢是解释型语言的通病,Python 也不例外。
Python 速度慢不仅仅是因为一边运行一边“翻译”源代码,还因为 Python 是高级语言,屏蔽了很多底层细节。这个代价也是很大的,Python 要多做很多工作,有些工作是很消耗资源的,比如管理内存。
Python 的运行速度几乎是最慢的,不但远远慢于 C/C++,还慢于 Java。
但是速度慢的缺点往往也不会带来什么大问题。首先是计算机的硬件速度运来越快,多花钱就可以堆出高性能的硬件,硬件性能的提升可以弥补软件性能的不足。其次是有些应用场景可以容忍速度慢,比如网站,用户打开一个网页的大部分时间是在等待网络请求,而不是等待服务器执行网页程序。服务器花 1ms 执行程序,和花 20ms 执行程序,对用户来说是毫无感觉的,因为网络连接时间往往需要 500ms 甚至 2000ms。
2.代码加密困难:不像编译型语言那样,源代码会被编译成可执行程序(这个编译过程就相当于对源码加密),对于 Python 来说是直接运行源代码,因此对源码加密是比较困难的。
基础语法
编码
默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码:
# coding:windows-1252
或许
# coding=windows-1252
上述定义允许在源文件中使用 Windows-1252 字符集中的字符编码,对应适合语言为保加利亚语、白罗斯语、马其顿语、俄语、塞尔维亚语。
代码缩进
Python 最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个Tab键就表示 4 个空格)。
Python 对代码的缩进要求非常严格,同一个级别代码块的缩进量必须一样,否则解释器会报 SyntaxError 异常错误。以下代码最后一行语句缩进数的空格数不一致,会导致运行错误:
if True: print ("Answer") print ("True") else: print ("Answer") print ("False") # 缩进不一致,会导致运行错误
以上程序由于缩进不一致,执行后会出现类似以下错误:
File "test.py", line 6 print ("False") # 缩进不一致,会导致运行错误 ^ IndentationError: unindent does not match any outer indentation level
对于 Python 缩进规则,初学者可以这样理解,Python 要求属于同一作用域中的各行代码,它们的缩进量必须一致,但具体缩进量为多少,并不做硬性规定。
多行语句
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \
来实现多行语句,例如:
total = item_one + \ item_two + \ item_three
在 []
, {}
, 或 ()
中的多行语句,不需要使用反斜杠 \
,例如:
total = ['item_one', 'item_two', 'item_three', 'item_four', 'item_five']
注释
Python 中单行注释以 #
开头,实例如下:
# 第一个注释 print ("Hello, Python!") # 第二个注释 f
从井号 #
开始,直到这行结束为止的所有内容都是注释。Python 解释器遇到 #
时,会忽略它后面的整行内容。多行注释可以用多个 #
号,还有 '''
和 """
:
# 第一个注释 # 第二个注释 ''' 第三注释 第四注释 ''' """ 第五注释 第六注释 """ print ("Hello, Python!")
合理使用注释可以提高代码的可读性和可理解性。一般情况下,合理的代码注释应该占源代码的 1/3 左右。
标识符与保留字
标识符可以简单地理解为-一个名字,比如每个人都有自己的名字,它主要用来标识变量、函数、类、模块和其他对象的名称。
Python 语言标识符命名规则如下:
- 由字母(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
- 标识符不能和 Python 中的保留字相同。
- Python 中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。
保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:
>>> import keyword >>> keyword.kwlist ['False', 'None', 'True', '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']
需要注意的是,
- 在 Python 中,标识符中的字母是严格区分大小写的。
- Python中以下划线开头的标识符有特殊意义,一般应避免使用相似的标识符。
- 现在 Python 语言中允许使用汉字和非 ASCII 码作为标识符,但应尽量避免,这会避免遇到很多奇葩的错误
编码规范
在讲解具体的 Python 编码规范之前,先来看看两段代码:
对比图中的两段代码你会发现,它们所包含的代码时完全相同的,但很明显,右侧的代码编写格式看上去比左侧的代码段更加规整,阅读起来也会比较轻松、畅快,因为它遵循了最基本的 Python 代码编写规范。
编码规范是一套约定俗成的规则,有助于提高代码的可读性和可维护性。Python官方推荐的编码规范是PEP 8,其中 PEP 是 Python Enhancement Proposal(Python 增强建议书)的缩写,8 代表的是 Python 代码的样式指南。下面仅给大家列出 PEP 8 中初学者应严格遵守的一些编码规则:
- 使用4个空格进行缩进。
- 不要在行尾添加分号,也不要用分号将两条命令放在同一行。
- 每个 import 语句只导入一个模块,尽量避免一次导入多个模块。
- 每行代码不超过80个字符,如果超过,建议使用小括号将多行内容隐式的连接起来,而不推荐使用反斜杠
\
进行连接。 - 通常情况下,在运算符两侧、函数参数之间以及逗号两侧,都建议使用空格进行分隔。
- 在函数之间、类之间、方法之间使用必要的空行增加代码的可读性等。
遵循编码规范有助于你编写出结构清晰、易于阅读和维护的 Python 代码。
命名规范
命名规范是关于如何命名变量、函数、类和模块的规则。良好的命名规范能够使你的代码更易于理解。
在Python中,通常使用小写字母和下划线来命名变量和函数(例如:my_variable、calculate_sum)。类名应该采用驼峰命名法(例如:MyClass)。
选择具有描述性的名称,并尽量避免使用单个字符或缩写,以便代码的可读性更强。
标识符的命名,除了要遵守以上这几条规则外,不同场景中的标识符,其名称也有一定的规范可循,例如:
- 当标识符用作模块名时,应尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母,例如 game_mian、game_register 等。
- 当标识符用作包的名称时,应尽量短小,也全部使用小写字母,不推荐使用下划线,例如 com.mr、com.mr.book 等。
- 当标识符用作类名时,应采用单词首字母大写的形式。例如,定义一个图书类,可以命名为 Book。
- 模块内部的类名,可以采用 “下划线+首字母大写” 的形式,如 _Book;
- 函数、类的属性和方法的命名规则同模块类似,应全部使用小写字母,多个单词之间可以用下划线分割;
- 常量命名应全部使用大写字母,单词之间可以用下划线分割;
- 使用单下划线“_”开头的模块变量或者函数是受保护的,在使用 from xxx import* 语句从模块中导入时这些变量或者函数不能被导入。
- 使用双下划线“__”开头的实例变量或方法是类私有的。
结语
通过了解代码缩进、注释、编码规范、命名规范等,你已经迈出了零基础 Python 编程的第一步。
在接下来的学习过程中,不断实践和探索,你将逐渐掌握更多的 Python 概念和技巧,并能够编写出功能丰富的程序。