哈啰,欢迎大家收看我的频道,今天我们继续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,明天一定,我们共同进步。)