一道Python题

UNSW的ENGG1811课程有一道期中考试例题,要求用Python实现如下功能:

给定一列表,内含变量皆为浮点数。

无论其具有奇数项或偶数项,返回奇数项之和与偶数项之和的差。

起初思路如下:

  1. 使用n = len(x)判断列表的项数
  2. pair = n // 2判断奇偶对的数量
  3. ……
  4. 然而,出问题了——如果列表包含奇数项,则奇数项的个数和偶数项不等。

于是,不得不改变了思路——先(通过求模)判断列表项数,若是奇数项,在末尾补一个0将其变为偶数项,且不影响计算结果。

由此可得如下代码:


后记:

其实在考试的45分钟里,我用了近30分钟来应付这道题(前三题没有太高难度)。如果没有一个更简便的思路来解决这个问题,恐怕再有30分钟也不够……

发表评论

电子邮件地址不会被公开。