天池Python训练营Day02

天池Python训练营

Day02

条件语句

1.if语句

if expression:
expr_true_suite

if 语句的 expr_true_suite 代码块只有当条件表达式 expression 结果为真时才执行,否则将继续执行紧跟在该代码块后面的语句。

#例1:
if 2 > 1:
    print('Hello,world!')
if 2 < 1:
    print('Hello,agin!')
Hello,world!

如上面的例子所示:2 > 1为True因此会执行print(‘Hello,world!’)。2 < 1为False,所以后面的代码不会执行。

单个 if 语句中的 expression 条件表达式可以通过布尔操作符 and,or和not 实现多重条件判断。

#例2:多重条件判断
if 2 > 1 and 3 > 2:
    print('Hello,world!')
if 2 > 1 or 3 < 2:
    print('Hello,again!')
if 2 > 1 and not 3 >2:
    print('Hello!')
Hello,world!
Hello,again!

以上多重条件判断,遵循Day01里面设计的逻辑运算。最终的结果必须为True才会执行后面的代码。

2.if-else语句

if expression:
expr_true_suite
else:
expr_false_suite
Python 提供与 if 搭配使用的 else,如果 if 语句的条件表达式结果布尔值为假,那么程序将执行 else 语句后的代码。

#例3
if 3 < 2:
    print("yes,it's False")
else:
    print("yes,it's True")
yes,it's True

由上面的例子可知,3 < 2为Fasle,因此Python不会执行print(“yes,it’s False”),而会执行else语句后面的print(“yes,it’s True”)。

if语句支持嵌套,即在一个if语句中嵌入另一个if语句,从而构成不同层次的选择结构。因此需要根据代码的缩进来判断,执行的代码属于哪一重的if语句。如以下例子:

#例4
number = 6
if number > 2:
    if number < 5:
        print('Hello!')
    else:
        print('Haha')
Haha

3.if-elif-else语句
if expression1:
expr1_true_suite
elif expression2:
expr2_true_suite
.
.
elif expressionN:
exprN_true_suite
else:
expr_false_suite
elif 语句即为 else if,用来检查多个表达式是否为真,并在为真时执行特定代码块中的代码。

#例5
score = int(input('please input a score:'))
if score < 60:
    print('不及格')
elif score < 70:
    print('及格')
elif score < 80:
    print('中')
elif score < 90:
    print('良')
else:
    print('优秀')
please input a score:90
优秀

4.assert关键词
assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。在进行单元测试时,可以用来在程序中置入检查点,只有条件为 True 才能让程序正常工作。

#例6
assert 3 > 7
---------------------------------------------------------------------------

AssertionError                            Traceback (most recent call last)

<ipython-input-12-0295be16ec13> in <module>
----> 1 assert 3 > 7


AssertionError: 

循环语句

1.while循环
hile语句最基本的形式包括一个位于顶部的布尔表达式,一个或多个属于while代码块的缩进语句。

while 布尔表达式:
代码块
while循环的代码块会一直循环执行,直到布尔表达式的值为布尔假。

如果布尔表达式不带有<、>、==、!=、in、not in等运算符,仅仅给出数值之类的条件,也是可以的。当while后写入一个非零整数时,视为真值,执行循环体;写入0时,视为假值,不执行循环体。也可以写入str、list或任何序列,长度非零则视为真值,执行循环体;否则视为假值,不执行循环体。

#例7
a = 10
while a > 0:
    print('a的值为:',a)
    a -= 1
    
a的值为: 10
a的值为: 9
a的值为: 8
a的值为: 7
a的值为: 6
a的值为: 5
a的值为: 4
a的值为: 3
a的值为: 2
a的值为: 1

上面这个例子,变量a通过赋值语句得到10这个值。while语句的条件为a > 0,因此只要变量a的值大于0,那么while的条件永远为真。因此为了避免死循环,需要设置一个退出机制。上面这个例子中a -= 1的意思是,每循环一次a的值减1,这样经过几次循环后,a的值自然会小于等于0.

2.while-else循环
while 布尔表达式:
代码块
else:
代码块
当while循环正常执行完的情况下,执行else输出,如果while循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容。
同样用上面一个例子,改造一下:

#例8
a = 10
while a > 0:
    print('a的值为:',a)
    a -= 1
else:
    print('正常完成循环')
a的值为: 10
a的值为: 9
a的值为: 8
a的值为: 7
a的值为: 6
a的值为: 5
a的值为: 4
a的值为: 3
a的值为: 2
a的值为: 1
正常完成循环
#例9:给上面这段小代码加入break语句,如下:
a = 10
while a > 0:
    print('a的值为:',a)
    a -= 1
    if a < 5:
        break
else:
    print('正常完成循环')
a的值为: 10
a的值为: 9
a的值为: 8
a的值为: 7
a的值为: 6
a的值为: 5

上面这个例子,在while的循环体里面增加了一个if语句,当循环过程中a < 5了,那么break语句直接跳出循环。也不会再执行else后面的代码。

3.for循环
for循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,如str、list、tuple等,也可以遍历任何可迭代对象,如dict。

for 迭代变量 in 可迭代对象:
代码块
for循环是使用得最多的循环语句。

#例10:使用for循环改造例7
for a in range(1,10):
    print('for循环:',a)
for循环: 1
for循环: 2
for循环: 3
for循环: 4
for循环: 5
for循环: 6
for循环: 7
for循环: 8
for循环: 9

由例10可知,为了避免死循环,for循环同样需要有个退出机制。和while不同,for循环更多的是使用in这个关键词,使循环限定在某个范围内。如例10的range(1,10)表示a的值从1到9.需要注意的是,range()是左闭右开的,即range(1,10)表示1-9.

4.for-else循环
for 迭代变量 in 可迭代对象:
代码块
else:
代码块
当for循环正常执行完的情况下,执行else输出,如果for循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容,与while - else语句一样。

#例11:使用for-else语句,改造例9
for a in range(0,10):
    print('for循环:',a)
    if a > 5:
        break
else:
    print('正常完成循环')
for循环: 0
for循环: 1
for循环: 2
for循环: 3
for循环: 4
for循环: 5
for循环: 6

5.range()函数
上面已经稍微提及了range()函数。它的格式如下:
range([start,] stop[, step=1])
这个BIF(Built-in functions)有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
step=1 表示第三个参数的默认值是1。
range 这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列,该序列包含start的值但不包含stop的值。
step这个参数可以用来控制步长。如例12所示:

#例12
#step参数默认
for a in range(1,10):
    print('step默认的情况下a的值',a)
#修改step参数
for a in range(1,10,2):
    print('step=2的情况下a的值',a)
step默认的情况下a的值 1
step默认的情况下a的值 2
step默认的情况下a的值 3
step默认的情况下a的值 4
step默认的情况下a的值 5
step默认的情况下a的值 6
step默认的情况下a的值 7
step默认的情况下a的值 8
step默认的情况下a的值 9
step=2的情况下a的值 1
step=2的情况下a的值 3
step=2的情况下a的值 5
step=2的情况下a的值 7
step=2的情况下a的值 9

6.enumerate()函数
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。先mark一下,到学习列表等容器类型数据的时候,再详细学习。

7.break语句
continue终止本轮循环并开始下一轮循环。

8.continue语句
continue终止本轮循环并开始下一轮循环。如例13:

#例13
for a in range(1,10):
    if a % 2 == 0:
        continue
    print('使用了continue语句后显示的a的值',a)
使用了continue语句后显示的a的值 1
使用了continue语句后显示的a的值 3
使用了continue语句后显示的a的值 5
使用了continue语句后显示的a的值 7
使用了continue语句后显示的a的值 9

9.pass语句
pass 语句的意思是“不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而 pass 语句就是用来解决这些问题的。如例14:

#例14:不加pass语句
for a in range(1,10):
    
  File "<ipython-input-26-ccc254680d2b>", line 3
    
    ^
SyntaxError: unexpected EOF while parsing
#例14:加pass语句
for a in range(1,10):
    pass

10.推导式
先mark一下,到学习列表等容器类型数据的时候,再详细学习。

猜你喜欢

转载自blog.csdn.net/loveccie/article/details/108454749