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" passelif x < 0: print "Statement C" passelse: print "Statement D" passprint "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))