条件
条件语句的执行过程
if语句
Python中if语句的一般形式如下所示:
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
#如果 "condition_1" 为 True 将执行 "statement_block_1" 块语句
#如果 "condition_1" 为False,将判断 "condition_2"
#如果"condition_2" 为 True 将执行 "statement_block_2" 块语句
#如果 "condition_2" 为False,将执行"statement_block_3"块语句
Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。
注意:
- 每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
- 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
- 在Python中没有switch – case语句。
体会:相比C语言,PythoPythonn的代码更加容易阅读,层次分明,就像小甲鱼说的那样,Python代码更加简练。
assert 关键词
介绍:
assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。
作用:
当我们在测试程序的时候就很好用,因为与其让错误的条件导致程序今后莫名其妙地崩溃,不如在错误条件出现的那一瞬间我们实现“自爆”。
一般来说我们可以用它再程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。
三元操作符
例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)
注:这两个代码等同,其实就是求最小数
逻辑是:
1.如果x是最小的则输出x
2.如果x不是最小,则排除x,比较y,z,较小的输出
例2
(x < y and [x] or [y])[0] 实现什么样的功能?
解答:
这个问题很有意思,
首先,优先级:not and or
其次,
>>>[x]=[12]
>>> [x]
[12]
>>> [x][0]
12
>>>
最后,
首先计算x<y,如果是True,即True and [x]为[x],[x] or [y]=[x],则[x][0]=x(输出列表的第一个元素);
如果x<y是False,即False and [x]=False,False or [y]=[y],[y][0]=y。
实现的功能是x if x < y else y,即三元操作。
而(x < y and [x] or [y])[0]为何不采用x < y and x or y
是因为如果x=0,y>0时,x < y and x =0,而使之执行or操作,结果为y,
使结果出错,故而采用列表的形式。
循环语句
while语句
注意冒号和缩进。另外,在 Python 中没有 do…while 循环。
例1:计算1加到100的和
n = 100
sum = 0
counter = 1
while counter <= n:
sum = sum + counter
counter += 1
print("1 到 %d 之和为: %d" % (n,sum))
注:%d为占位符,在字符串格式化中学到。
例2:无限循环
flag = 1
while (flag):
print ('I love LSGO!')
print ("NCEPU")
注意:无限循环你可以使用 CTRL+C 来中断循环。
for语句
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for循环的一般格式如下:
for <variable> in <sequence>:
<statements>
else:
<statements>
break,continue 语句
pass 语句
Python pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句,例:
>>>while True:
... pass # 等待键盘中断 (Ctrl+C)
range函数
>>>for i in range(-10, -100, -30) :
print(i)
-10
-40
-70
注意:
前面两个参数是范围,第三个参数是步长,特别注意,不包括-100(第二个参数)