Python语言基础
Python语言进阶
Python数据结构

Python 语法

搞懂Python语言运行的基本规则

编码

Python 2.x默认的字符和文件编码都是ASCII,Python 3.x默认的字符编码是unicode,默认的文件编码是UTF-8。在工作中遇到不同编码的问题,需要对编码进行转换,在Python中UTF-8或者是GBK编码的转换要经过Unicode。

关键字

Python 中的关键字不能用作任何变量的名称,Python 3.8.3中有33个关键字分别是,在终端输入命令语句,如下图所示。
>>> import keyword
>>> keyword.kwlist
执行结果如下:
[ 'False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', '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']

注释

1、单行注释:在行首加 “#”,比如:
# 你好,我是单行注释
print ("Hello, World!")

print ("Hello, World!") # 你好,我是行末注释
2、多行注释:可以在多行的行首前加“#”或是在整段需要注释的内容首尾加'''或"""三重引号。
方法一:逐行注释
#单行注释1
#单行注释2
#单行注释3

print ("Hello, World!")
方法二:三个单引号进行注释
'''
单行注释2
单行注释2
单行注释3
'''

print ("Hello, World!")
方法三:三个双引号进行注释
"""
单行注释2
单行注释2
单行注释3
"""

print ("Hello, World!")

命名

模块名:使用下划线连接多个小写字母,例如:cat_action。 包名:使用“.”符号连接多个小写字母,例如:com.lidihuo.cat。 类名:首字母需大写,其它字母小写的单词,例如:Cat。 变量命名:变量名由字母、数字和下划线构成,数字不能开头,不要跟关键字和系统保留字冲突,建议名称采用小写字母单词。 函数和属性名:应全部使用小写字母,多个单词之间用“_”下划线分割。 常量命名:应全部使用大写字母,多个单词之间用“_”下划线分割。 模块内部的类名:采用 "下划线+首字母大写" 的形式,如 _Cat。

运算符

Python的运算符包括:算术运算符、比较运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符。
算术运算符:主要用于加减乘除等运算,运算符有:“+、-、 *、/、%、**、//”。 比较运算符:用于对象之间的比较,运算符有:“==、!=、<>、>、<、>=、<=”。 赋值运算符:用于对象的赋值,运算符有:“=、+=、-=、*=、/=、%=、**=、//=”。 逻辑运算符:用于逻辑运算,运算符有:“and、or、not”。 位运算符: 把数字看作二进制计算。运算符有:“&、|、^、~、<<、>>”。 成员运算符:判断一个对象是否包含另一个对象,运算符有:“in、not in”。 身份运算符:判断是不是引用自一个对象,运算符有:“is、is not”。

数据类型

Python中数据类型可以分为2大类,值类型和组类型。
组类型:组类型的成员类型有:序列(字符串、列表、元组)、集合和字典。

空值

在 Python 中空值不表示 0,也不表示空字符串,而表示没有值,空值也不代表空对象,与 []、“”也不同。空值用None表示,属于NoneType类型。
None 常用于判断函数有无返回值,在没有 return 语句的函数,都会在末尾加上 return None,使用不带值的 return 语句,函数就会返回 None。

缩进与空行

缩进:Python不同于其它的编程语言,Python没有用“{}”包裹代码块,而是用缩进来表示,所以代码的缩进成为了程序的重要组成部分,同一层级的代码块中缩进的空格数必须相同。
if 1==1:
 print ("success")
else:
 print ("fail") #同一层级缩进空格数不同,引发异常
空行:函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

多行连接

在Python中一行写不完的语句可以用“\”符号来连接,比如:
print (''Hello Python,\
I am \
lidehuo'
)
需要注意的是在(),{},[] 中无需用“\”连接,可以直接换行,比如:
animal = ['cat','dog','tiger',
'cow','horse','pig'
'bat','cock','bear']

输入和输出

输入:使用input([prompt])读取一行,将其转换为string类型并返回,input的参数可有可无,通常在控制台输入一些数据,然后敲击回车,就完成了本次输入。比如:
animal = input("请输入动物名称: ")
print(animal)
需要注意的是input返回的是string类型,想要得到其它数据类型,还需要进行类型转换。
输出:一般使用print进行输出,比较简单,比如:print ('Hello World'),当输出的内容包含变量时,可以用“,”连接,比如:print '数组为:',list。

模块导入

Python代码中进行模块导入非常高频。Python模块导入机制其实非常灵活。具体包括:常规导入、from语句导入、相对导入、可选导入和本地导入。
常规导入:使用“import”,导入多个包或模块时用“,”分隔,比如:import time,os。 from语句导入:这个场景时候导入一个模块或库的部分功能,格式为:from xxx import xxx。比如:from datetime import datetime。 相对导入:python中使用句点来决定如何相对导入其他包或模块,比如:from . import xxxx 可选导入:主要用于优先或备选使用某个模块或包,语句操作结构为:
try:
 from xxx import xxx
except ImportError:
 from xxx import xxx
局部导入:在Python脚本的顶部导入一个模块,那么将该模块是全局作用域,如果想要局部作用域,导入语句都应该位于模块的顶部即可。

异常

Python 完整的异常处理结构如下:
try:
 #业务实现代码
except Exception1 as e:
 #异常处理块1
 ...
except Exception2 as e:
 #异常处理块2
 ...
#可以有多个 except
 ...
else:
 #正常处理块
finally :
 #资源回收块
 ...
整个异常处理结构中try块是必需的,但是也不能只使用 try 块,要么使用 try except结构,或是 try finally 结构;可以有多个 except 块,多个 except 块必须位于 try 块之后,finally 块必须位于所有的 except 块之后。

分支结构

Python代码是按照顺序单行执行的,执行中会出现分支情况,在Python中使用if、elif和else关键字来创建分支结构,具体如下:
If cond1:
 #业务代码块1
elif cond2:
 #业务代码块2
elif cond3:
 #业务代码块3
else:
 #业务代码块4

循环结构

Python循环有2种做法,一种是for-in循环,一种是while循环。
for-in循环:明确循环次数或者对一个容器进行迭代用for-in,具体格式如下:
for x in y:
 循环体
while循环:不知道循环次数时,我们使用while循环,while是否终止通过bool只判断。具体格式如下:
while cond:
 #业务代码块

内置函数

Python 解释器内置了很多函数具体如下:
函数描述
abs()返回数的绝对值
acos(x)返回x的反余弦弧度值。
all()如果可迭代对象中的所有项均为 true,则返回 True。
any()如果可迭代对象中的任何项为 true,则返回 True。
ascii()返回对象的可读版本。用转义字符替换 none-ascii 字符。
asin(x)返回x的反正弦弧度值。
atan(x)返回x的反正切弧度值。
atan2(y, x)返回给定的 X 及 Y 坐标值的反正切值。
bin()返回数的二进制版本。
bool()返回指定对象的布尔值。
bytearray() 返回字节数组。
bytes()返回字节对象。
callable() 如果指定的对象是可调用的,则返回 True,否则返回 False。
ceil(x)返回数字的上入整数,如math.ceil(4.1) 返回 5
cos(x)返回x的弧度的余弦值。
chr()返回指定 Unicode 代码中的字符。
choice(seq)从序列的元素中随机挑选一个元素。
classmethod() 把方法转换为类方法。
compile()把指定的源作为对象返回,准备执行。
complex()返回复数。
degrees(x)将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
delattr()从指定的对象中删除指定的属性(属性或方法)。
dict()返回字典(数组)。
dir()返回指定对象的属性和方法的列表。
divmod()当参数1除以参数2时,返回商和余数。
enumerate()获取集合(例如元组)并将其作为枚举对象返回。
eval()评估并执行表达式。
exec() 执行指定的代码(或对象)。
exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x)返回数字的绝对值,如math.fabs(-10) 返回10.0
filter()使用过滤器函数排除可迭代对象中的项目。
float()返回浮点数。
format()格式化指定值。
floor(x)返回数字的下舍整数,如math.floor(4.9)返回 4
frozenset() 返回 frozenset 对象。
getattr()返回指定属性的值(属性或方法)。
globals()以字典返回当前全局符号表。
hasattr()如果指定的对象拥有指定的属性(属性/方法),则返回 True。
hash() 返回指定对象的哈希值。
help()执行内建的帮助系统。
hex() 把数字转换为十六进制值。
hypot(x, y) 返回欧几里德范数 sqrt(x*x + y*y)。
id()返回对象的 id。
input()允许用户输入。
int()返回整数。
isinstance() 如果指定的对象是指定对象的实例,则返回 True。
issubclass()如果指定的类是指定对象的子类,则返回 True。
iter() 返回迭代器对象。
len()返回对象的长度。
list()返回列表。
locals()返回当前本地符号表的更新字典。
log(x)如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x)返回以10为基数的x的对数,如math.log10(100)返回 2.0
map()返回指定的迭代器,其中指定的函数应用于每个项目。
max()返回可迭代对象中的最大项目。
memoryview()返回内存视图(memory view)对象。
min()返回可迭代对象中的最小项目。
modf(x)返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
next() 返回可迭代对象中的下一项。
object()返回新对象。
oct()把数转换为八进制。
open()打开文件并返回文件对象。
ord()转换表示指定字符的 Unicode 的整数。
pow()返回 x 的 y 次幂的值。
print() 打印标准输出设备。
property()获取、设置、删除属性。
range()返回数字序列,从 0 开始且以 1 为增量(默认地)。
radians(x)将角度转换为弧度
repr()返回对象的可读版本。
reversed()返回反转的迭代器。
round()对数进行舍入。
randrange([start,] stop [,step])从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1
random()随机生成下一个实数,它在[0,1)范围内。
set() 返回新的集合对象。
sin(x) 返回的x弧度的正弦值。
setattr()设置对象的属性(属性/方法)。
slice() 返回 slice 对象。
sorted()返回排序列表。
@staticmethod() 把方法转换为静态方法。
seed([x])改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
shuffle(lst)将序列的所有元素随机排序
str()返回字符串对象。
sum()对迭代器的项目进行求和。
super()返回表示父类的对象。
sqrt(x)返回数字x的平方根。
tan(x) 返回x弧度的正切值。
tuple() 返回元组。
type()返回对象的类型。
uniform(x, y)随机生成下一个实数,它在[x,y]范围内。
vars()返回对象的 __dict__ 属性。
zip()从两个或多个迭代器返回一个迭代器。
__import__()用于动态加载类和函数。
昵称: 邮箱:
小猫 2020-09-21

语法是Python学习的基础呀~

这一篇整理的内容还是很全面的,基本涵盖了Python的基础语法知识。

本篇内容写到的语法知识点,在下面的各篇内容都有详细的讲解。

突然感觉学习不是一件拼脑力的事情,而是一件拼体力和意志力的东西。

加油吧~

Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4