8-1.条件语句。请看下面的代码:
# statement A
if x > 0:
# statement B
pass
elif x < 0:
# statement C
pass
else:
# statement D
pass
# statement E
(a)如果x<0,上面哪个语句(A,B,C,D,E)将被执行?
(b)如果x=0,上面哪个语句将被执行?
(c)如果x>0,上面哪个语句将被执行?
【答案】
(a)ACE
(b)ADE
(c)ABE
可以实验一下这个代码,代码如下:
x = int(raw_input('Please input X ... ')) print "Statement A" if x > 0: print "Statement B" pass elif x < 0: print "Statement C" pass else: print "Statement D" pass print "Statement E"
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。
【答案】
代码如下:
f = raw_input("Please input start number ... ") t = raw_input("Please input end number ... ") i = raw_input("please input step number ... ") for i in range(int(f), int(t) + 1, int(i)): print i
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]
【答案】
代码如下:
>>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> range(3,19,3) [3, 6, 9, 12, 15, 18] >>> range(-20,861,220) [-20, 200, 420, 640, 860] >>>
8-4.素数。我们在本章已经给出了一些代码来确定一个数字的最大约数或者它是否是一个素数。请把相关代码转换为一个返回布尔值的函数,函数名为isprime()。如果输入的是一个素数,那么返回True,否者返回False.
【答案】
代码如下:
【答案】
代码如下:
def isprime(number): switch = True if number <= 1: switch = False for i in range(2, number / 2 + 1): if number % i == 0: switch = False return switch number = raw_input("Please input your number ... ") print isprime(int(number))
8-5.约数。完成一个名为getfactors()的函数。它接受一个整型作为参数,返回它所有约数的列表,包括1和它本身。
【答案】
代码如下:
def getfactors(number): factorList = [] for i in range(1, number + 1): if number % i == 0: factorList.append(i) return factorList number = raw_input("Please input your number ... ") print getfactors(int(number))