#!/usr/bin/python # -*- coding: utf-8 -*- # 11-3 函数。在这个练习中,我们将实现max()和min()内建函数。 # (a) 写分别带两个元素返回一个较大和较小元素,简单的max2()核min2()函数。 # 他们应该可以用任意的python 对象运作。举例来说,max2(4,8)和min2(4,8)会各自每次返回8 和4。 # (b) 创建使用了在a 部分中的解来重构max()和min()的新函数my_max()和my_min(). # 这些函数分别返回非空队列中一个最大和最小值。它们也能带一个参数集合作为输入。 # 用数字和字符串来测试你的解。 # (a) def min2(a, b): if (a < b): return a else: return b def max2(a, b): if (a > b): return a else: return b # (b) def my_min(*nkwargs): args = [] for arg in nkwargs: args.append(arg) else: return reduce(min, args) def my_max(*nkwargs): args = [] for arg in nkwargs: args.append(arg) else: return reduce(max2, args) print my_max(1, 2, 3, 4, 5, 6, 7) print my_max("a", "c", "d", "A") print my_min(1, 2, 3, 4, 5, 6, 7) print my_min("a", "c", "d", "A")
#!/usr/bin/python # -*- coding: utf-8 -*- # 11–6. 变长参数。下一个称为printf()的函数。有一个值参数,格式字符串。 # 剩下的就是根据格式化字符串上的值,要显示在标准输出上的可变参数, # 格式化字符串中的值允许特别的字符串格式操作指示符,如%d, %f, etc。 # 提示:解是很琐碎的----无需实现字符串操作符功能性, # 但你需要显示用字符串格式化操作(%) def printf(format, *nkwargs): print format % nkwargs printf("%s, %d, %f", "aaa", 10.54, 10)
#!/usr/bin/python # -*- coding: utf-8 -*- # 11–9. 用reduce()进行函数式编程。复习11.7.2 部分,阐述如何用reduce()数字集合的累加 # 的代码。修改它,创建一个叫average()的函数来计算每个数字集合的简单的平均值。 def average(*numbers): count = len(numbers) return reduce(lambda x, y: float(x+y), numbers)/count print average(1, 2, 3, 4, 5, 6, 7, 8, 9)
11–10.用filter()进行函数式编程。在unix 文件系统中,在每个文件夹或者目录中都有两个 特别的文件:'.'表示现在的目录,'..'表示父目录。给出上面的知识,看下os.listdir()函数的文 档并描述这段代码做了什么: files = filter(lambda x: x and x[0] != '.', os. listdir(folder)) 显示folder文件夹下的所有非隐藏目录。
python核心编程--第十章 11.11 练习
时间: 2024-10-19 15:16:46