Python代码练习(三):函数
七月在线课程的练习题
- 习题1
定义一个函数,接收任意3个数字的输入,并按 顺序从小到大输出
def BubbleSort(a):
# 每次冒泡,将最大的元素冒到最后面
# 第一次是前n个元素,最大的元素冒到最后
# 第二次是前n-1个元素,最大的元素冒到倒数第二个位置
# ... ...
for i in range(len(a)-1):
for j in range(0,len(a)-i-1):
if a[j]>a[j+1]:
a[j],a[j+1] = a[j+1],a[j]
return a
l=[9,1,4]
BubbleSort(l)
- 习题2
要求创建一个函数,它可以接收,位置参数, 不定长位置参数,不定长关键词参数,并按 要求输出 。
输入班级名,班级特色(如’勤奋’,’颜值 高’ )等等不同特色,班级不同同学的姓 名与年龄。
要求输出,班级名,班级特色,班级成员, 班级成员的平均年龄。
def scoreReport(name,*args,**kwargs):
print('班级名:',name)
print('班级特色:\n')
for item in args:
print(item)
print('同学姓名:\n')
for key,value in kwargs.items():
print (key,value)
scoreReport('5班','勤奋','颜值高',LYX=20,WZX=21)
- 习题3
使用reduce函数实现找出一组数字列表中的 最大值
from functools import reduce
reduce(lambda a,b:min(a,b),[4,5,600,7,8])
- 习题4
求1000以内能同时被3和7整除的数有哪些。
要求使用map与filter函数
list(filter(lambda x:True if x%3==0 and x%7==0 else False,range(1,1000)))
-
习题5
体现闭包的思想,创建一个三层嵌套的函数, 并调用。 -
习题6
请以round函数,定义一个偏函数roundN,调用
为输入一个数字N,返回圆周率后N位的数字
提示:
import math
math.pi
请以sorted函数,定义一个偏函数sortedDESC, 结果为输入一个序列,返回为按降序排列后序列。 -
习题7
要求使用map与filter函数,输出一个输入字 符串里每个字符出现的次数
提示:结合dict使用实现
def Num(str):
d1={}
for i in range(len(str)-1):
c=1
for j in range(i+1,len(str)):
if str[i]==str[j]:
c=c+1
d1[str[i]]=c
return d1
Num("absa")
-
习题8
创建一个能够快递排序的递归函数 -
习题9
创建一个能打印一个字典中包含所有字典对象的递归函数
dic={ “北京”: {
“东城”: [“天坛”, “东单”, “王府井”],
“西城”: [“西单”, “军博”, “复兴门”], },
“上海”: { “杨浦”:[‘五角场’,‘政通路’,'世界路’]
}, “天津”:[‘天津港’]} -
习题10
编写一个生成器,实现fib数列的效果 -
习题11
创建一个能接收不定长位置参数(数字)函 数,返回是所有参数的和。
现要求在这个函数每次调用时都有进行屏幕 打印(该函数被调用)。
请在不改动这个函数内部及调用的前提下实 现。