特别提示:本文省略或简写了一些与其他语言相同的语句及函数的使用规则,主要挑选Python特有的语句,函数语法。
Python程序由模块(Module)所构成,而模块中则包含各种语句(Statement)。藉由语句的组合,指定Python执行程序的过程。Python语句可由表达式组成。表达式由运算符和操作数组成,表达式会传回一个值;而语句是一个完整的句子,其不会返回一个值。Python环境中也支持更复杂的语句,体现了不同语法与语意并对应不同的执行方式。接下来我们将一一介绍。
赋值语句
简单赋值
像其他语言一样,赋值逻辑比较简单,如 a = 100,就是将等号右边的100赋值给变量a。
那么我们来说说Python中的赋值过程,在Python中,我们赋给变量的是内存中对象的引用(内存中的地址),而不是对象的值。
那么上代码:1
2
3
4
5
6
7
8
9a = [100,200,300]
b = a
c = [100,200,300]
print(id(a)) #输出92516800
print(id(b)) #输出92516800
print(id(c)) #输出92397320
a[1] = 500
print(a[1]) #输出500
print(b[1]) #输出500
由代码可见,使用赋值语句b = a,让b引用了a的列表对象,所以b和a指向的内存地址都是相同的,但是当我们拿出来一个新的列表c的时候,c引用的是新的列表对象,当我们修改了a[1],毫不意外,b[1]也跟着一起改变。
多重赋值
多重赋值就是将同一个对象的引用赋值给多个变量,即多个变量同时指向这个对象。1
2x = y = z = [1,2,3,4,5]
print((x is y)and(x is z)and(y is z)) #输出True
多元赋值
多元赋值就是将一个赋值语句实现了多个变量引用多个对象的赋值过程。1
2x,y,z = 100,200,300
print(x,y,z) #输出100 200 300
增强赋值
增强赋值的含义为对变量进行运算操作的再次赋给这个变量,如果a += 10或者a = a*10。比较常见,不多赘述。
条件语句
Python的条件语句通过判断条件的真假来确定执行哪条语句。(也就是我们常用的if语句)
只是在Python中语法略有不同:1
2
3
4
5
6
7a = 100
b = 101
if a > b:
print('a比b的值大')
else:
print('b比a的值大')
#本例输出 b比a的值大
如果判断条件有很多个,我们可以使用if…elif语句形式。1
2
3
4
5
6
7
8grade = 88
if grade >= 90:
print("Excellent!")
elif grade >= 70 and grade <90:
print("good!")
else:
print("GG!")
#本例输出 good!
然后我们的重点来了
一个比较好玩的东西,Python的条件语句可以将所有代码都放置在一个物理行中即可完成条件语句程序。上面的程序,我们可以简化成:1
2
3
4a = 100
b = 101
print('a比b的值大') if a > b else print('b比a的值大')
#本例输出 b比a的值大
就像一些数学公式一样,我们将这个东西进行推广:这条语句可以用于赋值操作。即三元操作:1
2
3
4a = 100
b = 101
a = 4**2 if a > b else 4**3
print(a) #输出64 即4*4*4 = 64
循环语句
Python有三种循环类型,分别为for循环、while循环和内嵌循环。与这三种循环类型相关的循环控制语句有break语句,continue语句和pass语句。那么我们下面分别来说一说:
for循环
for循环的作用就不再赘述,直接切入正题,for循环遍历一般需要单个语句或者一个语句块。语句块由多个语句组成。for循环语句或者语句块需要缩进,语句块内的语句和缩进格式相同。使用for循环时,要注意语句缩进的格式:1
2for i in [1,2,3,4,5]:
print(i); #输出1 2 3 4 5 (换行输出)
1 | a = list(); |
但是如果print(a)没有缩进的话,则会出现不同的print的结果:1
2
3
4
5
6a = list();
for i in 'python':
a.append(i+'python')
print(a)
# 输出
# ['ppython', 'ypython', 'tpython', 'hpython', 'opython', 'npython']
当然对于Python来说还有一种更简单的形式来实现上面的代码:1
2
3
4a = [i + 'python' for i in 'python']
print(a)
# 输出
# ['ppython', 'ypython', 'tpython', 'hpython', 'opython', 'npython']
while循环
while循环大家用的也比较多,那么直接来看Python中具体的实现语法吧:1
2
3
4
5
6
7
8
9
10
11
12a = 0;
while a < 5:
a += 1
print(a+100)
print(a)
#输出
#101
#102
#103
#104
#105
#5
嵌套循环
嵌套循环指的是在一个循环语句的代码块中再嵌入一个循环:1
2
3
4
5
6
7
8x = ['a','b','c']
y = [1,2]
z = []
for i in x:
for j in y:
z.append([i,j])
print(z)
# 输出 [['a', 1], ['a', 2], ['b', 1], ['b', 2], ['c', 1], ['c', 2]]
当然Python这么方便,当然可以用一行代码解决这个问题!1
2
3
4
5x = ['a','b','c']
y = [1,2]
z = [[i,j] for i in x for j in y]
print(z)
# 输出 [['a', 1], ['a', 2], ['b', 1], ['b', 2], ['c', 1], ['c', 2]]
break、continue和pass语句
这里简单说。
break表示跳出当前的整个大循环。
continue表示不执行continue下面的语句,并且继续遍历剩下的循环。
pass我倒是以前没见过,不过在Python中,还是很好理解的。
pass语句就是用来占位的,属于空(null)操作,执行时系统没有任何反应。1
2
3
4for i in range(5):
if i>3:
pass #没有任何影响
print([i,i+1])
本文部分整理转载自《量化投资:以Python为工具》蔡立耑 仅供学习研究之用,侵删。