8-1.条件语句。请看下边的代码:
# statement A
if x > 0:
#statement B
pass
elif x < 0:
#statement C
else:
#statement D
pass
#statement E
(a)如果 x<0 ,上面哪个语句(A,B,C,D,E)将被执行?
(b)如果x == 0,上面哪个语句将被执行?
(c)如果x>0,上面那个语句将被执行?
C、D、B
8-2 循环。编写一个程序,让用户输入3个数字:(f)rom,(t)o和(i)ncrement。以i为步长从f计数到t,包括f和t。例如,如果输入的是f == 2、t==26、i==4,程序将输出2,6,10,14,18,22,26.
8–3.range() . 如果我们需要生成下面的这些列表, 分别需要在 range() 内建函数中提供那些参数?
(a) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
(b) [3, 6, 9, 12, 15, 18]
(c) [-20, 200, 420, 640, 860]
(a)print range(0, 10)
(b)print range(3, 21, 3)
(c)print range(-20, 980, 220)
8–4. 素数. 我们在本章已经给出了一些代码来确定一个数字的最大约数或者它是否是一个素数. 请把相关代码转换为一个返回值为布尔值的函数,函数名为 isprime() . 如果输入的是一个素数, 那么返回 True , 否则返回 False .
8-6素因子分解。以刚才练习中的inprime()和getfactors()函数为基础编写一个函数,它接受一个整型作为参数,返回该整型所有素数因子的列表。这个过程叫做素因子分解,它输出的所有因子之积应该是原来的数字。注意列表里可能有重复的元素。例如输入20返回结果应该是[2,2,5]。
8-7 完全数。完全数被定义为这样的数字:它的约数(不包括它自己)之和为它本身。例如:6的约数是1,2,3,因为1+2+3=6,所以6被认为是一个完全数。编写一个名为inperfect()的函数,它接受一个整型作为参数,如果这个数字是完全数,返回1;否则返回0。
8-8 阶乘。一个数的阶乘被定义为从1到该数字所有数字的乘积。N的阶乘简写为N!。N! == factorial(N) == 1*2*3*...*(N-2)*(N-1)*N.所以4! == 1*2*3*4写一个函数,指定N,返回N!的值。
8-9 斐波那契数列。斐波那契数列形如1,1,2,3,5,8,13,21,等等。也就是说,下一个值是序列中前两个值之和。写一个函数,给定N,返回第N个斐波那契数列。例如,第1个斐波那契数字是1,第6个是8.
8-10文本处理。统计一句话中的元音,辅音及单词(以空格分隔)的个数。忽略元音和辅音的特殊情况,如‘h’,‘y’,‘qu’等。附加题:编写处理这些特殊情况的代码。
8-11文本处理. 要求输入一个姓名列表,输入格式是"LastName,FirstName",即姓 逗号 名.编写程序处理输入,如果用户输入错误,比如"FirstName LastName,",请纠正这些错误,并通 知用户.同时你还需要记录输入错误次数.当用户输入结束后,给列表排序,然后以"姓,名" 的顺序显示. 输入输出示例(你不需要完全按照这里的例子完成):
%nametrack.py
Enter total number of names:5
Please enter name0:Smith,Joe
Please enter name1:Mary Wong
>>Wrong format... should be Last,First.
>>You have done this 1 time(s) already. Fixing input...
Please enter name2:Hamilton,Gerald
Please enter name3:Royce,Linda
Please enter name4:Winston Salem
>>Wrong format... should be Last,First.
>>You have done this 2 time(s) already. Fixing input...
The sorted list(by last name) is:
Hamilton,Gerald
Royce,Linda
Salem,Winston
Smith,Joe
Wong,Mary