008 分支和循环
Python可以有效避免“悬挂else”
条件表达式(三元操作符)三目操作符
语法:x if 条件 else y
x, y = 4, 5
if x < y:
small = x
else:
small = y
例子改进为:
small = x if x < y else y #if条件为真,x值赋值给small,if条件为假,y值赋值给small
断言(assert)
assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。 “程序自曝”
当这个关键字后边的条件为真的时候,程序忽略过去了
>>> assert 3 > 4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError
>>> assert 4 > 3
作用:一般来说我们可以用Ta再程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。
009 分支和循环
while循环
while 条件: #条件为真的时候,不断执行循环体,直到条件为假,退出循环
循环体
for循环(计数器循环)
for 目标 in 表达式(列表/元组):
循环体
例子:
>>> favourite = 'you'
>>> for i in favourite:
... print(i, end=' ') #每个字母后加一个空格
...
y o u
>>> menber = ['aaa', 'b', 'cc', 'd', 'e']
>>> for each in menber:
... print(each, len(each))
...
aaa 3
b 1
cc 2
d 1
e 1
range()
语法:range( [strat,] stop[, step=1] )
这个BIF有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
step=1表示第三个参数的值默认值是1。 步进,每次递增的数值
range这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列。
>>> range(1, 5) # 不包含末尾数 5
[1, 2, 3, 4]
>>> range(5) #python2
[0, 1, 2, 3, 4]
>>> range(5) #python3
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
>>> for i in range(2, 9):
... print(i)
...
2
3
4
5
6
7
8
>>> for i in range(1, 10, 2):
... print(i)
...
1
3
5
7
9
两个关键语句 break / continue
break语句作用:终止循环,并跳出循环体
continue语句:终止本轮循环,并测试循环条件为True
就开始下一轮循环,否则跳出循环体,回到最初语句
只影响一层的循环
例子:
for i in range(10):
if i%2 != 0: #i是奇数,打印i
print(i)
continue #i是偶数,跳出循环体并不接下去执行打印i+2,回到最初for语句
i += 2 #i是奇数,打印i,并+2
print(i)
执行得到
2
1
4
3
6
5
8
7
10
9
010 列表:一个打了激素的数组
整数、浮点数、字符串、对象
普通列表
>>> menber = ['金', '木', '水', '火', '土']
>>> menber
['金', '木', '水', '火', '土']
>>> menber = [1, 2, 3, 4, 5]
>>> menber
[1, 2, 3, 4, 5]
混合列表
>>> mix = [1, '哈利', 3.14,