课后作业

  1. 编写一个函数 coin_toss(),该函数模拟抛硬币行为,随机打印 '正面''反面' 字符串。(请在 random 模块中选择一个合适的函数来实现此功能)

  2. 编写一个函数 de_duplication(items),该函数接收一个列表 items,移除其中所有的重复项,并返回这个列表,同时保持原传入的列表 items 不变。

    统一用以下列表作为测试:

    numbers = [45, 56, -34, 45, 67, 88, 90, -34, 66, 66, 70, 85, 100, 23, 54]
    
  3. 编写一个函数 to_upper(s),该函数接受一个字符串 s,将其所有英文字母转换为大写并返回该大写字符串,如 University 被转换为 UNIVERSITY。要求不使用任何字符串方法(如不能使用 str.upper(),仅使用 Python 的内置函数 ordchr 完成。

  4. 在数学上,斐波那契数(Fibonacci number)的定义如下:

    $$F\_0=0\\\F\_1=1\\\F\_2=1\\\F\_n=F\_{n-1}+F\_{n-2}$$

    即斐波那契数由 0 和 1 开始,之后的每个数都是由之前的两数相加而得出。由斐波那契数形成的数列就是斐波那契数列

    请编写一个函数 fib(n),该函数能根据输入的整数 n 返回由前 n 个斐波那契数构成的序列。

    提示:我们没有讲函数的递归调用,有能力的同学可以自学,通过递归方式实现此函数。不过此函数不用递归也能书写。

  5. 编写一个如下签名的函数:

    length(*coordinates, dimension=3)
    

    计算并返回由一个到多个坐标点 coordinates 构成的多段线的总长度,coordinates 中的每个元素是 (x,)(x, y)(x, y, z) 形式的数字元组。dimension 指定了坐标空间的维数,可选值为 1、2 或 3,总是计算该维数对应的直角坐标系内的线段长度,默认值 3 表示三维直角坐标系。

    要求充分考虑各种不满足计算要求的情况,这时在函数中打印相应的错误信息,并返回 None

上机实验面向对象程序设计