了不起的分支与循环
007、008、009讲:课堂笔记
0.条件表达式(三元操作符)
x, y = 4, 5
if x < y:
small = x
else:
small = y
例子可以改进为:small = x if x < y else y
#此处 if 前的X是 (x < y 为真的情况),否则为假时 else y
1.assert的作用是什么?
assert 这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出assertionError的异常。一般来说,当需要保证程序中某个条件一定为真才能让程序正常工作的话,可以用Ta在程序中置入检查点,assert关键字就非常有用了。
补充:assert
2.假设有x =1, y = 2,z =3,请问如何快速将三个变量的值相互交换?x,y,z = z,y,x
3.猜猜(x<y and [x] or [y ])[0] 实现什么样的功能?
这个式子可以简化成(x<y and x or y),即x<y为真时输出x,否则输出y。但当x和y的取值为0(等同于false)的情况就会判断失误。因此改为[x]和[y],这样[x]和[y]就都为真了,再加上(0),又变成了列表的第一个元素,即复原为x或y。
一般python的写法为 x if x<y else y
4. Python有一个成员资格运算符:in,用于检查一个值是否在序列中,如果在序列中返回True,否则返回False。
eg:>>> name = '小甲鱼'
>>> '鱼' in name
True
>>> '肥鱼' in name
False
0. 按照100分制,90分以上为A,80-90为B,60-80为C,60以下为D,写一个程序,当用户输入分数,自动转换ABCD的形式打印。
score = int(input('请输入一个分数:'))
if 80 > score >= 60:
print('C')
elif 90 > score >= 80:
print('B')
elif 60 > score >= 0:
print('D')
elif 100 >= score >= 90:
print('A')
else: print('输入错误!')
#改变判断程序的顺序,根据正态分布把多的分布放置在前面。
1.请将以下代码修改为三元操作符实现:
x, y, z = 6, 5, 4
if x < y:
small = x
if z < small:
small = z
elif y < z:
small = y
else: small = z
small = x if (x < y and x < z) else (y if y < z else z)
0.while循环
while 判断条件:
执行语句……
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。当判断条件假false时,循环结束。
while中两个重要的命令:
Break 终止当前循环跳出循环体、Continue 终止本轮循环,开始下轮循环
1.for循环
(1).可以遍历任何序列的项目,如一个列表或者一个字符串。
for letter in 'Python':
print '当前字母 :', letter
(2).通过序列索引迭代
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print '当前水果 :', fruits[index]
print "Good bye!"
#函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数
2.语法:range( [start,] stop[, step=1] )
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
这个BIF有三个参数,其中[]括起来的表示参数可选的
作用是生成一个从start参数的值开始到stop参数的值结束的数字序列
3. eg: bingo = '小甲鱼是帅哥'
answer = input('请输入小甲鱼最想听的一句话:')
while True:
if answer == bingo:
break
answer = input('抱歉,错了,请重新输入(答案正确才能退出游戏):')
print('哎哟,帅哦~')
print('您真是小甲鱼肚子里的蛔虫啊^_^')