+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-03(56)

2020-04(61)

2020-05(25)

2020-06(40)

2020-07(48)

打卡第二天(Task02)----条件循环结构

发布于2020-07-25 23:22     阅读(1056)     评论(0)     点赞(5)     收藏(4)


一、条件语句

与其他语言相同,常见的条件语句为 if - else 语句,当只需要一个判断条件时,即可直接使用 if 语句。

同时,if 语句支持嵌套,即在一个 if 语句中嵌入另一个 if 语句,从而构成不同层次的选择结构。Python 使用缩进而不是大括号来标记代码块边界,因此要特别注意 else 的悬挂问题。(即 else 要与对应的 if 对齐)

a = 6
b = 3
if a > 2:
    if b > 0:
        print('pass')
else:
    print('fail')

在 python 语言中,如果要有多个判断的等级划分的话,不必使用多个 if 来进行嵌套,可使用 elif 的用法,它的用法类似于 Java 中的 else if ,这样一来代码会更加简洁,而且运行时间也会大大缩减。例如在按照不同成绩将同学划分为A、B、C、D四个等级时,即可采用 elif 进行代码的书写。

temp = input('请输入成绩:')
source = int(temp)
if 100 >= source >= 90:
    print('A')
elif 90 > source >= 80:
    print('B')
elif 80 > source >= 60:
    print('C')
elif 60 > source >= 0:
    print('D')
else:
    print('输入错误!')

在一些程序中,如果上面的结果不符合条件,则下面的程序无需进行,或者我们在对前面书写的代码进行阶段性测试的时候,就需要在代码中间插入一个检查点,这种用来判断的关键词成为断言,用 “ assert ” 来表示,这个关键词在使用后,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError 的异常,因此只有条件为 True 时才能使程序正常进行。

assert 3 > 7

# AssertionError

二、循环语句

首先,最常见的循环语句即为 for 语句和 while 语句,这两种代码在其他语言中也十分常见。

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

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

这两种循环语句均可在后面接上一个 else 语句,当两个循环语句正常结束后,即会进入执行 else,但若两循环语句中执行了跳出循环的语句,比如 break ,则不会执行 else 部分的内容。

3、range() 函数
当我们在遍历一个数组或者元组等时,常常会使用下标,那么就会使用到连续的数字,在 Python 中我们可以使用 range() 函数来创建一个连续数字的序列。

range([start,] stop[, step=1])
  • 这个BIF(Built-in functions)有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。 step=1
  • 表示第三个参数的默认值是1。
  • range 这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列,该序列包含start的值但不包含stop的值。

4、enumerate() 函数

numerate(sequence, [start=0])
  • sequence – 一个序列、迭代器或其他支持迭代对象。
  • start – 下标起始位置。
  • 返回 enumerate(枚举) 对象

根据 enumerate() 函数的特点,我们常常会将它与 for 语句进行联合使用。但需要注意的是,enumerate() 函数中有两个参数,第一个参数为可迭代对象,第二个为下标起始值,而且在它所创建的序列中也有两个参数分别为对应数值和可迭代对象中相应的部分,因此使用 for 语句时需要两个参数分别对应两个部分。

for i, language in enumerate(languages, 2):
    print(i, 'I love', language)
print('Done!')

'''
2 I love Python
3 I love R
4 I love Matlab
5 I love C++
Done!
'''

5、break、continue、pass语句
这三个语句都可以对循环进行操作,但是意义和效果完全不同。

break 语句表示直接跳出当前层所在的循环体,不再进行当前的循环体。

continue 语句则表示结束本轮循环并开始下一轮的循环,进行的依然为同一循环体,只是不同部分。

pass 语句的意思是“不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而 pass 语句就是用来解决这些问题的。pass是空语句,不做任何操作,只起到占位的作用,其作用是为了保持程序结构的完整性。尽管pass语句不做任何操作,但如果暂时不确定要在一个位置放上什么样的代码,可以先放置一个pass语句,让代码可以正常运行。

6、推导式
列表推导式

a = [(i, j) for i in range(0, 3) for j in range(0, 3)]
print(a)

# [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

元组推导式
这里需要注意的是,输出是需要使用 tuple() 进行输出,否则直接对元组名称输出会无法实现。

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)

字典推导式

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

集合推导式

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.pythonheidong.com/blog/article/463973/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

5 0
收藏该文
已收藏

评论内容:(最多支持255个字符)