学习python的第12天

本文介绍了Python中的pass语句,它在代码中起到占位的作用,使程序结构完整。接着讲解了assert断言函数,用于在程序中检查条件,条件不成立时引发AssertionError。最后探讨了列表推导式,它是Python中创建列表的高效方式,可以结合条件表达式快速生成新的列表。示例中展示了如何使用列表推导式处理数值配对问题。
摘要由CSDN通过智能技术生成

一.pass语句及其作用

可称之为,无用之用。

在实际开发中,有时候我们会搭建起程序的整体逻辑结构,但暂时不去实现某些细节

    age = int( input("请输入你的年龄:") )
    if age < 12 :
        print("婴幼儿")
    elif age >= 12 and age < 18:
        print("青少年")
    elif age >= 18 and age < 30:
        print("成年人")
    elif age >= 30 and age < 50:
        pass
    else:
        print("老年人")

这里使用pass看起来会比加一个#在注释要美观些

二.assert断言函数及用法

assert语句又称断言语句,可看作是功能缩小版的if语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行;反之,程序会报AssertionError错误,语法结构很简单

assert 表达式

其执行流程可用if判断语句表示

if 表达式==True:
    程序继续执行
else:
    程序报 AssertionError 错误

演示实例

    mathmark = int(input())
    #断言数学考试分数是否位于正常范围内
    assert 0 <= mathmark <= 100
    #只有当 mathmark 位于 [0,100]范围内,程序才会继续执行
    print("数学考试分数为:",mathmark)

运行该程序

90
数学考试分数为: 90
-------------------------------
159
Traceback (most recent call last):
  File "C:\Users\mengma\Desktop\file.py", line 3, in <module>
    assert 0 <= mathmark <= 100
AssertionError

三.列表推导式

语法格式为

[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]

此格式中[if 条件表达式]不是必须的,而且去除这一部分,其余各部分的含义以及执行顺序和for循环是完全一样的,表达式其实就是for循环中的循环体,即

for 迭代变量 in 可迭代对象
    表达式

不同在于,列表推导式最终会将循环过程中计算表达式得到的一系列值组成一个列表,如下

    a_range = range(10)
    # 对a_range执行for表达式
    a_list = [x * x for x in a_range]
    # a_list集合包含10个元素
    print(a_list)

上面代码的第三行会对a_range执行迭代,由于a_range相当于包含10个元素,因此程序生成的a_list同样包含10个元素,且每个元素都是a_range中每个元素的平方,由表达式x*x控制

运行结果为

[0 , 1 , 4 , 9 , 16 , 25 , 36 , 49 , 64, 81]

我们还可以在列表推导式中添加if语句,这样就只迭代那些符合条件的元素

    b_list = [x * x for x in a_range if x % 2 == 0]
    # a_list集合包含5个元素
    print(b_list)

 结果得偶数

2.类似嵌套循环

    d_list = [(x, y) for x in range(5) for y in range(4)]
    # d_list列表包含20个元素
    print(d_list)

与下面的嵌套循环效果相同

    dd_list = []
    for x in range(5):
        for y in range(4):
            dd_list.append((x, y))

输出

[(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3), (3, 0), (3, 1), (3, 2), (3, 3), (4, 0), (4, 1), (4, 2), (4, 3)]

假设我们有个需求,程序需要将两个列表中的数值按照能否整除的关系配对在一起,我们就可以借助列表推导式来实现

    src_a = [30, 12, 66, 34, 39, 78, 36, 57, 121]
    src_b = [3, 5, 7, 11]
    # 只要y能整除x,就将它们配对在一起
    result = [(x, y) for x in src_b for y in src_a if y % x == 0]
    print(result)

[(3, 30), (3, 12), (3, 66), (3, 39), (3, 78), (3, 36), (3, 57), (5, 30), (11, 66), (11, 121)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值