04.利用Python进行数据分析之Python控制流
04.利用Python进行数据分析之Python控制流
if、elif和else
# 检查条件,决定是否执行
a = 98
if a >= 60:
print('及格')
及格
if后面可以跟一个或多个elif,所有条件都是False时,还可以添加一个else。
if a >= 90:
print('优秀')
elif a >= 80:
print('良好')
elif a >= 70:
print('中等')
elif a >= 60:
print('及格')
else:
print('不及格')
优秀
如果某个条件为True,后面的elif就不会被执行。
# 当在条件中使用and和or时,复合条件语句是从左到右执行。
a = 1; b = 2; c = 3; d = 5
if a < b or c> d:
print('Yes')
Yes
在这个例子中,c > d不会被执行,因为第一个比较是True。
# 可以把比较式串在一起
4 > 3 > 2 > 1
True
for循环
or循环是在一个集合(列表或元组)中进行迭代,或者就是一个迭代器。for循环的标准语法是: for value in collection: # do something with value
sum = 0
for i in range(0,101):
sum += i
print(sum)
5050
- continue - 可以用continue使for循环提前,跳过剩下的部分。
a = [1,2,3,None,4,5,6,None,7,8,9]
sum = 0
for i in a:
if i is None:
continue
sum += i
print(sum)
45
- break - 可以用break跳出for循环。
# 对a中的元素求和,遇到None则结束
sum = 0
for i in a:
if i is None:
break
sum += i
print(sum)
6
break只中断for循环的最内层,其余的for循环仍会运行。如:
for i in range(0, 6):
for j in range(0, 6):
if j > i:
print('\n')
break
print('* ', end='')
*
* *
* * *
* * * *
* * * * *
* * * * * *
集合或迭代器中的元素序列(元组或列表),可以用for循环将其方便地拆分成变量: for a, b, c in iterator: # do something
for a,b,c in [(1,2,3), (4,5,6), (7,8,9)]:
print(a,b,c)
1 2 3
4 5 6
7 8 9
while 循环
while循环指定了条件和代码,当条件为False或用break退出循环,代码才会退出。
sum = 0
i = 1
while i <= 100:
sum += i
i += 1
print(sum)
5050
pass
pass是Python中的非操作语句。代码块不需要任何动作时可以使用(作为未执行代码的占位符)。
range
range函数返回一个迭代器,它产生一个均匀分布的整数序列。
range(10)
range(0, 10)
list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range的三个参数是(起点,终点,步进)
list(range(0, 100, 5))
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]
list(range(5,0,-1))
[5, 4, 3, 2, 1]
range产生的整数不包括终点。range的常用法是用序号迭代序列。
seq = [1, 2, 3, 4]
for i in range(len(seq)):
val = seq[i]
print(val)
1
2
3
4
可以使用list来存储range在其他数据结构中生成的所有整数,默认的迭代器形式通常是你想要的。下面的代码对0到99999中3或5的倍数求和。
sum = 0
for i in list(range(0, 99999)):
if i % 3 == 0 or i % 5 == 0:
sum += i
print(sum)
2333216669
虽然range可以产生任意大的数,但任意时刻耗用的内存却很小。
三元表达式
Python中的三元表达式可以将if-else语句放到一行里。语法如下: value = true-expr if condition else false-expr true-expr或false-expr可以是任何Python代码。
x = 90
'及格' if x >= 60 else '不及格'
'及格'