python基础第三次课练习题和作业

引用文字


1. 定义一个函数,接收任意3个数字的输入,并按 顺序从小到大输出

def sort(a,b,c):
l=[a,b,c]
print(sorted(l))
sort(4,7,2)

2.要求创建一个函数,它可以接收,位置参数, 不定长位置参数,不定长关键词参数,并按 要求输出 。

def student(classname,*args,**kwargs):
i=0
sum=0
print("班级名:",classname)
for item in args:
print(item)
for key,values in kwargs.items():
print(key,':',values)
sum =values
i +=1
print('平均年龄:',sum/i)
student('高一二班','热情','擅长体育',one=18,two=19,three=20)

3.使用reduce函数实现找出一组数字列表中的 最大值

from functools import reduce
def find(list):
return reduce(lambda a,b:max(a,b),list)
l=[2,4,5,6]
find(l)

4.求1000以内能同时被3和7整除的数有哪些。 要求使用map与filter函数

filter

def chu(x):
if x%3==0and x%7==0:
return x
else:
pass
a=list(range(1,1001))
list(filter(chu,a))

map

a=list(map(chu,range(1001)))
print([i for i in a if i])

5. 体现闭包的思想,创建一个三层嵌套的函数, 并调用。

def foo(num):
print('num:',num)
def foo1():
return num


return num
foo(8)

6.请以round函数,定义一个偏函数roundN,调用 为输入一个数字N,返回圆周率后N位的数字  提示:  import math  math.pi

import math
print('pi:',math.pi)
def roundN(N):
pilist=[i for i in str(math.pi) if i!='.']
print('pi:',pilist)
if(N<len(pilist)):
print(pilist[0:N:1])
else:
return False
roundN(19)

请以sorted函数,定义一个偏函数sortedDESC, 结果为输入一个序列,返回为按降序排列后序列

import functools
sortedDEBC=functools.partial(sorted)
sortedDEBC([2,1,4,5,3])

7.要求使用map与filter函数,输出一个输入字符串里每个字符出现的次数  提示:结合dict使用实现

def numString(str):

map(lambda x:(x.str.count(x)),str)

st=['s','a','s','q','s']
[map(lambda x:(x.st.count(x)),st)]

创建一个能够快递排序的递归函数

def paiXu(num):
return sorted(num)


l=[2,1,4]
paiXu(l)
# 创建一个能打印一个字典中包含所有字典对象的递归函数

 dic = {  "北京": {  "东城": ["天坛", "东单", "王府井"],  "西城": ["西单", "军博", "复兴门"],  },

 "上海": {  "杨浦":['五角场','政通路','世界路’]  },

 "天津":['天津港']

def printout(dic):
for k,v in dic.items():
if(type(v)==list):
printout(v)
print(k,v)
s={"北京": { "东城": ["天坛", "东单", "王府井"]}}
printout(s)

编写一个生成器,实现fib数列的效果

def fib(n):
if(n==1)or(n==2):
return 1
else:
return fib(n-1) fib(n-2)
fib(6)




# 创建一个能接收不定长位置参数(数字)函 数,返回是所有参数的和。

现要求在这个函数每次调用时都有进行屏幕 打印(该函数被调用)。

在不改动这个函数内部及调用的前提下实 现。

def fool(*args):
extrafoo()
return sum(args)
def extrafoo():
print('the function is used')
fool(2,4)
已邀请:

ClownFish

赞同来自:


第一次看到lina发作业哈。加油!!!

第二题这个,是不是代码复制出问题了。想你应该是用+=赋值的。对吗?

字典递归那题,好像结果 不太对。你再检查 下。

快速排序是道算法题,不是直接用sorted的。

round那题,也没有体现出偏函数的使用。
请以sorted函数,定义偏函数。你没有固定sort函数里的哪个参数吧~~~

生成器那题用return肯定不对啦 ,要用yield..再想想

最后一题的装饰器,好像不对吧。@语法糖没有看到。

另外 ,能不能把代码放进代码引用 的格式里,就在编辑上。

要回复问题请先登录注册

返回顶部