python100题(7.数字范围内的所有偶数;8.从列表中移除多个元素)

       哈啰,欢迎大家收看我的频道,今天我们继续python入门编程100题。今天我们要做的是7.数字范围内的所有偶数;以及8.从列表中移除多个元素。那么,话不多说,我们直接开始今天的学习吧。

 7.数字范围内的所有偶数

       本道题,要求我们输入范围的开始值与结束值,求出我们输入范围的所有偶数的个数(注意是偶数哦!)那么我们先思考,偶数具有的性质。首先,偶数是2或2的倍数,也就是可以被2整除的数,知道了这点,我们就可以很好的利用性质,来定义函数,最后得到我们想要的结果。

解答:首先还是老套路,先对函数进行定义。

           然后,这里要注意,这里的初始值result我们要定义的是一个空列表,因为我们最后要将所有的偶数都在列表中输出。

          下面,第二个重点,我们利用列表的函数——append:可以将元素直接添加到已经创建的空列表中。格式为:list.append(item)

          最后,我们要对范围进行赋值,并且确定输出。代码如下:

def oushu(x, y):  #定义函数
    result = []  #定义初始值result为一个空列表
    for n in range(x, y+1):    #判断偶数的算法
        if n % 2 == 0:
            result.append(n)
    return result   #确定返回值


x = 2     #对范围赋值
y = 34
print("范围内的偶数为:", oushu(x, y))   #输出

输出结果:

       那么,这样的函数我们可不可以进行简化呢。答案是可以的,我们可以利用一个叫做——列表推导式的东西来帮助我们实现这个功能。代码如下:

x = 2     #对范围赋值
y = 34

data = [n for n in range(x, y+1) if n % 2 == 0]   #列表推导式
print("范围内的偶数为:", data)   #输出

是不是简洁了不少呢,我们可以用一个简单的推导式,来完成一个庞大的函数的功能。

列表推导式的公式如下:[<表达式> for <变量> in <可迭代对象> if <逻辑条件>]

当然在python中还有着很多的推导式,我们遇到再说。

运行结果:

可以看到,是可以正常运行的,我们来看下一题。

 8.从列表中移除多个元素

       这道题要求我们从列表中移除多个元素。举个栗子:lista = [1.2.3.4.5.6.7.8.9]  listb = [1.3.5.7.9]。最后输出的结果为:listc = [2.4.6.8]。

       那么,我们看到这道题时,不知道大家有没有灵光一闪的感觉。没错,这道题的基本思路和上一道题的基本思路是一模一样的。那么,这里我还是用两种方法来给大家做一下这道题。

解答:首先用我们的老方法,先定义函数,编写算法,赋值,输出一气呵成。代码如下:

def shanchu(x, y):  #定义函数
    for n in y:
        x.remove(n)
    return x


x = [1, 2, 3, 4, 5, 6, 7, 8, 9]   #赋值
y = [1, 3, 5, 7, 9]
print("删除后的列表为:", shanchu(x, y))   #输出

运行结果:

       那么我们用我们今天学到的新方法:推导式。

       列表推导式的公式如下: [<表达式> for <变量> in <可迭代对象> if <逻辑条件>],那么我们便可以写出如下代码:

x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
y = [1, 3, 5, 7, 9]


z = [item for item in x if item not in y]
print("删除后的列表为:", z)

运行结果:

        我们可以看到代码依旧可以正常运行。

       通过今天的两个题我们学到了一个新的做题方法,叫做列表推导式,这样的方法往往可以使我们的算法更加的简洁,同时写起来也更加的方便。通过这里我们也知道,所有的题目不只是用一种解题方法的,解题方法各式各样。如果你有更好的解题方法,欢迎交流,我们下次再见。

(另外今天因为身体原因并没有更pytorch,明天一定,我们共同进步。)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

裕善·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值