目录
🗣️前言
🗣️最后
🗣️前言
💌 本次的题目主要向各位小伙伴们介绍的Python经典例题 <各种数据类型用法以及函数和生成器使用> ,带各位掌握Python基础,希望各位小伙伴们能够在这里收获到更多知识!让我们一起学习!一起进步!
👥题目一
1
👣解析
用到知识点:生成器中的各种推导式,函数的使用
👣答案
def main(lst): return [i for i in lst if i>=(sum(lst)/len(lst))] #这是生成器中的列表推导式
👥题目二
👣解析
需要使用到if语句,列表的各种操作方法,函数的使用
👣答案
def main(lst,item): if item in lst: #先判断列表中是否存在这个数 return lst.index(item) #列表中index方法的使用 else: return '不存在'
👥题目三
👣解析
本题的 难度过小,主要考察对内置函数的掌握情况
👣答案
def main(p,q): return divmod(p,q) #内置divmod函数返回的就是商和余数的元祖
👥题目四
👣解析
这道题目有点难想到,主要使用到的方法就是内置函数的使用,至于是哪一个就要自己思考了
👣答案
def main(num): return sum(map(int,str(num)))
先来说为什么要str(num):
由map() 函数语法:map(function, iterable, ...),因为接收了一个整数num是不可迭代的,而map语法要是个可迭代的所以利用数据类型强制转换将num转化为可迭代的字符串数据类型就可以满足map函数的使用条件了。
以下是便于理解的代码,现在分开来一步一步讲解
- 先来讲内部的map(int,str(num))这一步的目的
a = 1234567 print(map(int,str(a))) for i in map(int,str(a)): print(i) 输出结果: <map object at 0x000001FEB8AAF0D0> 1 2 3 4 5 6 7
- 再来讲外层的sum函数,sum函数语法为sum(args, *kwargs),sum接收了第一步传入的动态参数将其相加就得到了结果
👥题目五
👣解析
第五题也是这几个题目中最难的题目了,它考了我们内置函数,运算符的使用,还添加了很多限制功能
👣答案
先来演示我一开始的错误答案,在这个软件上显示是错误的
但在Python中运行这段代码是这样的
不严谨的原因是转化为set(lst)后虽然去重了,但生成集合是无序的,之后在list(set(lst))也可能是无序的,这与题意要求的顺序是不匹配的
正确解答
对答案中lst2.sort(key=lst.index)进行解释,注释非常详细。
li = [1,2,3] print(li.index) #print(li.index),输出的那一串为函数名(函数在内存中的地址) #若b也是一个列表,b.sort(key=a.index), #其中key为形参,接收类型必须为函数。 #即列表b中的每个元素都要经过a.index函数做映射(y=f(x)), #按映射值大小进行排序 #通俗来说进行b.sort(key=a.index)后b会按a列表的顺序排列。 输出结果: <built-in method index of list object at 0x0000026A26484B00>
🗣️最后
**💖💖💖感谢各位能够看到这里💖💖💖:在鲁迅一篇未发表的文章中说过:“代码看懂了不是懂✨一定要自己实际操作哇✨这样才能更好的理解和吸收。”\
最后来一句:一个人可以在任何他怀有无限热忱的事情上成功,让我们一起进步吧✨✨**