Task02:条件循环结构(1天)

一、条件语句

1、if 语句

python语句中 if 语句的一般格式是:

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3

(1)python中用 elif 代替 if else
(2)用法与c++基本相同,但要严格控制缩进

2、assert 关键字

assert关键字被称为断言,当其后边的条件为 False 时,程序自动崩溃并抛出 AssertionError 的异常,这与c++中assert()宏的作用基本相同。在使用assert关键字时,需要注意:

(1)使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。
(2)使用断言对函数的参数进行确认。
(3)在编写函数时,要进行反复的考查,并且自问:“我打算做哪些假定?”一旦确定了的假定,就要使用断言对假定进行检查。
(4)一般教科书都鼓励程序员们进行防错性的程序设计,但要记住这种编程风格会隐瞒错误。当进行防错性编程时,如果“不可能发生”的事情的确发生了,则要使用断言进行报警。
(5)每个assert只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败,在操作时应该把各种条件分开来写。
(6)assert和后面的语句应空一行,以形成逻辑和视觉上的一致。

二、循环语句

1、while 循环

while循环的一般格式:

while 判断条件(condition):
    执行语句(statements)

在python中没有 do - while 循环

else组合:

while <expr>:
    <statement(s)>
else:	#条件语句为 False 时执行 else 的语句块
    <additional_statement(s)>

2、for 循环

for循环的一般格式:

for <variable> in <sequence>:
    <statements>
else:	#与 while 语句中的 else 用法相同
    <statements>

3、range() 函数

如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列,例如:

for i in range(5):
    print(i, end = ' ')
#0 1 2 3 4 

range()函数的格式为:

range([start,] stop[, step=1])

step=1 表示第三个参数的默认值是1。
range 的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列,该序列包含start的值但不包含stop的值(左闭右开)。

4、enumerate() 函数

enumerate()函数的一般格式为:

enumerate(sequence, [start=0])	#返回 enumerate(枚举) 对象

例子:

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
lst = list(enumerate(seasons))
print(lst)
# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
lst = list(enumerate(seasons, start=1))  # 下标从 1 开始
print(lst)
# [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

5、break、continue、pass 语句

break 语句可以跳出 forwhile 的循环体。如果你从 forwhile 循环中终止,任何对应的循环 else 块将不执行。

continue 语句被用来告诉 python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

pass是空语句,不做任何操作,只起到占位的作用,其作用是为了保持程序结构的完整性。在c++中用一个分号(;)表示空语句。

6、推导式

列表推导式的一般格式为:

[ expr for value in collection [if condition] ]

例子:

x = [i ** 2 for i in range(1, 10)]
print(x)
# [1, 4, 9, 16, 25, 36, 49, 64, 81]
x = [i for i in range(100) if (i % 2) != 0 and (i % 3) == 0]
print(x)
# [3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99]

元组推导式的一般格式为:

( expr for value in collection [if condition] )

例子:

a = (x for x in range(10))
print(a)
# <generator object <genexpr> at 0x0000025BE511CC48>
print(tuple(a))
# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

字典推导式的一般格式为:

{
    
     key_expr: value_expr for value in collection [if condition] }

例子:

b = {
    
    i: i % 2 == 0 for i in range(10) if i % 3 == 0}
print(b)
# {0: True, 3: False, 6: True, 9: False}

集合推导式的一般格式为:

{
    
     expr for value in collection [if condition] }

例子:

c = {
    
    i for i in [1, 2, 3, 4, 5, 5, 6, 4, 3, 2, 1]}
print(c)
# {1, 2, 3, 4, 5, 6}

参考网站:
https://www.runoob.com/python3/python3-loop.html
https://www.cnblogs.com/thisway/p/5558914.html

猜你喜欢

转载自blog.csdn.net/qq_43627017/article/details/107546100