第一题: give you two var a and b, print the value of a+b, just do it!
根据提议,给出两个变量 a 和 b 并打印出 a+b的值.
1
2
|
a, b = 1 , 2 print a + b |
当然也可以这么做
1
2
3
|
a = 1 b = 2 print a + b |
第二题: 给你一个list, 如 L = [2, 8, 3, 5], 对L进行升序排序并输出。
1
2
3
4
5
6
|
L = sorted (L) print L #或 # sort() 内置函数会对列表自身排序而 sorted() 会生成一个新的排序列表 L.sort() print L |
第三题: 给你一个字符串a, 如a = ‘12345', 对a进行逆序输出。
1
2
3
|
# 通过步进来逆序输出字符串。 a = a[:: - 1 ] print a |
第四题: 给你一个字典a = {1:1, 2:2, 3:3}, 输出字典a的key ,以',' 连接,如 ‘1,2,3'。
1
2
|
# dict.keys() 会以list返回字典的key.而join会把list按,字符串',' 连接起来。 print ',' .join(a.keys()) |
第五题: 给你一个字符串a, 输出字符串奇数位置的字符串,如 a = ‘12345', 则输出 ‘135'
1
2
|
# 通过列表解析(也称列表推导式)来判断下表选取奇偶数。 print ''.join([a[x] for x in range ( len (a)) if x % 2 = = 0 ]) |
第六题: 输出所有100以内的素数, 素数之间以空格区分。
1
2
3
4
5
|
# 在加一行print 才能运行通过 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, 输出其面积和周长,以一个空格隔开
1
|
print a * b, 2 * (a + b) |
第八题: 给你一个list, 如 L = [0, 1, 2, 3, 4] 输出L的中位数
1
2
3
|
# 中位数是指 对已排序的数集取其中间数,数集为偶数 取中间两数的平均 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 |
第九题: 给你两个正整数a和b, 输出它们的最大公约数。
1
|
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 ]]) |
第十题: 给你两个正整数a和b, 输出它们的最小公倍数.
1
|
print min ([x for x in range (a, a * b + 1 ) if x % a = = 0 and x % b = = 0 ]) |
附加题: 利用map/reduce 函数实现数的阶乘 如 5!+4!+3!+2!+1!.
1
2
3
4
|
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函数 实现素数
1
|
print filter ( lambda x: not [x % i for i in range ( 2 ,x) if x % i = = 0 ], range ( 2 , 101 )) |