附加练习
更新时间:2018年09月20日21时41分54秒
附加练习
1. 字数统计
编写函数wordcount(text)实现对于输入字符串的词数统计。
要求:输入字符串text,以所有非英文字母(除去'和-)为单词的分隔符制作分割后的单词列表并统计单词个数。
2. 列表拉直
编写函数flatlist(list_)将嵌套列表中所有的元素置入一个列表中。
如:将[1,3,[3,[4,5,[6],[[],{1:2}],3],(0,1),2]]拉直成为[1,3,3,4,5,6,{1:2},3,(0,1),2]。
要求:尝试分别使用列表方法与字符串方法实现这一点。进一步尝试拉直所有迭代对象。
3. 凯撒密码
编写函数caesar(str_)实现平移$k$位的凯撒密码加密(即将每个字母按照字母表替换为$k$个位置之后的字母),保持字母大小写不变,非英文字母不改变。
如:It is coming!将变为Lw lv frplqj!。
4. 函数绘图
编写函数plot(f[, width, height, xlim, ylim, xlabel, ylabel])用*实现函数$f$图线的绘制,要求绘制出来的图片占有$height\times width$个字符空间,绘制定义域、值域范围xlim, ylim可以由用户输入。、
例如:cos(x)在[-1, 1]间的图像如下图所示。
[图片]
5. 寻找第k大数
编写函数kmax(array[, k])寻找输入序列中第$k$大的数,尝试不使用排序以$O(n)$的算法复杂度完成这项任务。
提示:可以尝试类似于快速排序大小分开的方式二分处理。
6. 有理数类
编写一个有理数类rational(对象),实现以下功能:
- 分布保存整型数分子与分母
- 始终保持分数为既约分数
- 使用函数或字符串显示函数重载格式化显示分数
- 实现加、减、乘、除(可以使用运算符重载)
- 构造函数能够做到对格式化字符串和数值的强制类型转换
提示:
以下函数GCD使用欧拉算法返回两个输入整数的最大公约数。
python
def GCD(a, b):
while b > 0:
c = b
b =