第一題: give you two var a and b, print the value of a+b, just do it!
根據(jù)提議,給出兩個變量 a 和 b 并打印出 a+b的值.
a, b = 1, 2print a + b
當(dāng)然也可以這么做
a = 1b = 2print a + b
第二題: 給你一個list, 如 L = [2, 8, 3, 5], 對L進(jìn)行升序排序并輸出。
L = sorted(L)print L#或# sort() 內(nèi)置函數(shù)會對列表自身排序而 sorted() 會生成一個新的排序列表 L.sort()print L
第三題: 給你一個字符串a(chǎn), 如a = ‘12345', 對a進(jìn)行逆序輸出。
# 通過步進(jìn)來逆序輸出字符串。a = a[::-1]print a
第四題: 給你一個字典a = {1:1, 2:2, 3:3}, 輸出字典a的key ,以',' 連接,如 ‘1,2,3'。
# dict.keys() 會以list返回字典的key.而join會把list按,字符串',' 連接起來。print ','.join(a.keys())
第五題: 給你一個字符串a(chǎn), 輸出字符串奇數(shù)位置的字符串,如 a = ‘12345', 則輸出 ‘135'
# 通過列表解析(也稱列表推導(dǎo)式)來判斷下表選取奇偶數(shù)。print ''.join([a[x] for x in range(len(a)) if x % 2 == 0])
第六題: 輸出所有100以內(nèi)的素數(shù), 素數(shù)之間以空格區(qū)分。
# 在加一行print 才能運(yùn)行通過L = [x for x in range(2, 101) if not [y for y in range(2, x) if x%y == 0]]for i in L: print L,print
第七題: 已知矩形長a, 寬b, 輸出其面積和周長,以一個空格隔開
print a * b, 2 * (a+b)
第八題: 給你一個list, 如 L = [0, 1, 2, 3, 4] 輸出L的中位數(shù)
# 中位數(shù)是指 對已排序的數(shù)集取其中間數(shù),數(shù)集為偶數(shù) 取中間兩數(shù)的平均print sorted(L)[len(L)/2] if len(L) % 2 != 0 else / (sorted(L)[Len(L)/2] + sorted(L)[len(L)/2 -1 ])/2.0
第九題: 給你兩個正整數(shù)a和b, 輸出它們的最大公約數(shù)。
print max([x for x in range(1, a+1) if x in [y for y in range(1, b+1) if b%y == 0]])
第十題: 給你兩個正整數(shù)a和b, 輸出它們的最小公倍數(shù).
print min([x for x in range(a, a*b+1) if x%a==0 and x%b==0])
附加題: 利用map/reduce 函數(shù)實(shí)現(xiàn)數(shù)的階乘 如 5!+4!+3!+2!+1!.
print map(lambda x: reduce(lambda y,z: y*z, range(1, x+1)), range(1,6))# print [1, 2, 6, 24, 120], 所以在用reduce合起來print reduce(lambda a, b: a+b, map(lambda x: / reduce(lambda y, z: y*z, range(1, x+1)),range(1,6)))
附加題: 使用filter函數(shù) 實(shí)現(xiàn)素數(shù)
print filter(lambda x: not [x%i for i in range(2,x) if x%i==0], range(2, 101))
新聞熱點(diǎn)
疑難解答
圖片精選