Python99道经典练习题答案 下载本文

(): 1 : 1

' = = = = ' % () '''

题目:求的值,其中a是一个数字。例如2+22+222+2222+22222(此时 共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。 2.程序源代码: ''' = 0 = []

n = (('n = :\\n')) a = (('a = :\\n')) (n): = + a a = a * 10 ()

= ( : x + )

16 / 23

''' 【程序19】

题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程

找出1000以内的所有完数。 1. 程序分析:请参照程序<上页程序14. 2.程序源代码: '''

j (2,1001): k = [] n = -1 s = j i (1):

j % i 0: n 1 s i (i) s 0: j i (n): (k[i]) (' ')

17 / 23

k[n] ''' 【程序20】

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在

第10次落地时,共经过多少米?第10次反弹多高? 1.程序分析:见下面注释 2.程序源代码: ''' = 100.0 = / 2

n (2,11): 2 * 2

' ' % ' ' % '''

【程序21】

题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上

18 / 23

都吃了前一天剩下

的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

1.程序分析:采取逆向思维的方法,从后往前推断。 2.程序源代码: ''' x2 = 1 (9,01):

x1 = (x2 + 1) * 2 x2 = x1 x1 ''' 【程序22】

题目:两个乒乓球队进行比赛,各出三人。甲队为三人,乙队为三人。已抽签决定

比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和比,请编程序找出 三队赛手的名单。

1.程序分析:判断素数的方法:用一个数分别去除2到(这个数),如果能被整除,

则表明此数不是素数,反之是素数。 2.程序源代码: '''

i (('x')('z') + 1):

19 / 23

j (('x')('z') + 1): i j:

k (('x')('z') + 1): (i k) (j k):

(i ('x')) (k ('x')) (k ('z')): ' a \\t b \\' % ((i)(j)(k)) '''

【程序23】

题目:打印出如下图案(菱形) * *** ***** ******* ***** *** *

1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重

循环,第一层控制行,第二层控制列。 2.程序源代码: ''' i (4):

20 / 23