第一天的作业题
第一题 猜数字,超过3次退出。提示相应的结果:
主要考察里面for 里面可以使用else的, _在这是不需要返回数值
1 NUMBER = 35 2 3 for _ in range(3): 4 cur = int (input('enter your number:')) 5 if cur == NUMBER: 6 print ("Your WIN!") 7 break 8 elif cur < NUMBER: 9 print ("LESS") 10 else: 11 print ("Bigger") 12 else: 13 print ("Your guess more than 3 time!") 14 ~
第二题:找到列表里面的集合(不知道啥题目)
1 (test_3.4.2) [root@Minion1 ~]# vim li1.py 2 L = [1,3,2,4,3,3,2,5,7,7,2] 3 # [1,3,2,4,5,7] 4 5 ret = list() 6 for item in L: 7 if item not in ret: 8 ret.append(item) 9 print (ret)
10 (test_3.4.2) [root@Minion1 ~]# python li1.py 11 [1, 3, 2, 4, 5, 7]
变化2:
1 (test_3.4.2) [root@Minion1 ~]# vim li2.py 2 L = [1,3,2,4,3,3,2,5,7,7,2] 3 # [1,3,2,4,5,7] 4 5 ret = list() 6 tmp = set () 7 for item in L: 8 if item not in ret: 9 ret.append(item) 10 tmp.add(item) 11 print (ret) 12 13 (test_3.4.2) [root@Minion1 ~]# python li2.py 14 [1, 3, 2, 4, 5, 7]
这个地方,例子1的执行效率没有例子2的高, 空间换时间,o(n) o(1),如果列表的数值太多,占用内存太多。
第三题:统计列表里面的素数的个数
质数(prime number)又称素数,有无限个。除了1和它本身以外不再有其他的因数。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积,最小的质数是2。
(test_3.4.2) [root@Minion1 ~]# vim ma0.py L = [2,3,5,7,10,12,6,8] count = 0 for item in L: for i in range(2,item): if item % i == 0: break else: count += 1 print (count) ~ (test_3.4.2) [root@Minion1 ~]# python ma0.py 4
变化:数字处理模块知识(math),
1 (test_3.4.2) [root@Minion1 ~]# vim ma1.py 2 import math 3 4 L = [2,3,5,7,10,12,6,8] 5 6 count = 0 7 8 for item in L: 9 for i in range(2,math.ceil(math.sqrt(item))): 10 if item % i == 0: 11 break 12 else: 13 count += 1 14 15 print (count) 16 17 ~ 18 (test_3.4.2) [root@Minion1 ~]# python ma1.py 19 4
ceil(...)
ceil(x)
Return the ceiling of x as an int.
This is the smallest integral value >= x.
sqrt(...)
sqrt(x)
Return the square root of x.