11月01日(第3天_回纹数、直方图和质数)
来源:互联网 发布:公司招人用什么软件 编辑:程序博客网 时间:2024/06/06 01:45
Morning
1. 5位数的回纹数检测
解答:
#方法一:num = 12321num1 = str(num)a = ['*' for i in range(len(num1)//2+1) if num1[i] == num1[-(i+1)] ]if len(a)==len(num1)//2+1: print('此数有回纹[1]')#方法二:不需要用列表推导式num = 12321num1 = str(num)if num1 == num1[::-1]: print('此数有回纹[2]')
2. 对t = [10,15,20,5]画直方图
解答:
- 方法一:
t = [10,15,10,5]for i in t: print(['*']*i)
输出如下:
['*', '*', '*', '*', '*', '*', '*', '*', '*', '*']['*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*']['*', '*', '*', '*', '*', '*', '*', '*', '*', '*']['*', '*', '*', '*', '*']
- 方法二:
t = [10,15,10,5]matrix = ['*'*i+' '*(max(t)-i) for i in t ]matrix
输出如下:
['********** ', '***************', '********** ', '***** ']
3. 把上一个题目画的直方图转过来
解答:
- 方法一:
t = [5,20,15,17]high = max(t)width = len(t)#生成矩阵u1 = [' ',]*width #这里的复制也要注意u = []i = 1while i<=high: u.append(u1.copy())#这里一定要留意 #错误代码:u = u.append(u1.copy()) #错误原因:'NoneType' object has no attribute 'append' i = i+1# print(u)for k in range(width): i = t[k] j = high-1 while i != 0: u[j][k]='*' i = i - 1 j = j - 1u
输出如下:
[[' ', '*', ' ', ' '], [' ', '*', ' ', ' '], [' ', '*', ' ', ' '], [' ', '*', ' ', '*'], [' ', '*', ' ', '*'], [' ', '*', '*', '*'], [' ', '*', '*', '*'], [' ', '*', '*', '*'], [' ', '*', '*', '*'], [' ', '*', '*', '*'], [' ', '*', '*', '*'], [' ', '*', '*', '*'], [' ', '*', '*', '*'], [' ', '*', '*', '*'], [' ', '*', '*', '*'], ['*', '*', '*', '*'], ['*', '*', '*', '*'], ['*', '*', '*', '*'], ['*', '*', '*', '*'], ['*', '*', '*', '*']]
- 方法二:
t = [10,15,10,5]matrix = ['*'*i+' '*(max(t)-i) for i in t ]for i in range(len(matrix[0])-1,-1,-1): print([x[i] for x in matrix])
输出如下:
[' ', '*', ' ', ' '][' ', '*', ' ', ' '][' ', '*', ' ', ' '][' ', '*', ' ', ' '][' ', '*', ' ', ' ']['*', '*', '*', ' ']['*', '*', '*', ' ']['*', '*', '*', ' ']['*', '*', '*', ' ']['*', '*', '*', ' ']['*', '*', '*', '*']['*', '*', '*', '*']['*', '*', '*', '*']['*', '*', '*', '*']['*', '*', '*', '*']
Afternoon
5. 写出100以内的所有素数。
解答:
#自己写的不对,只是判断了这个数是否为质数num = 11a = []for i in range(2,num): if num%i!=0: a.append('*') #如果等于0就为True,这样不好,因为接下来不能判断一个布尔表达式列表里只要有False结果就是False,只能判断这个列表是否为空 else: a.append('#') #说明能整除# print(a)if '#'in a: print(str(num)+'不是素数')else: print(str(num)+'是素数')
正确代码:
x = 100from math import sqrtN = xli = [p for p in range(2,N) if 0 not in [p % d for d in range(2,int(sqrt(p)) + 1)]]print(li)
输出如下:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
6. 任何一个偶数都能写成两个素数的和。
解答:
x = 100from math import sqrtN = xli = [p for p in range(2,N) if 0 not in [p % d for d in range(2,int(sqrt(p)) + 1)]]half_prime = [t for t in li if t <= x//2+1][[i,x-i] for i in half_prime if x-i in li]
输出如下:
[[3, 97], [11, 89], [17, 83], [29, 71], [41, 59], [47, 53]]
7. 把列表arrs=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]变为[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]。
解答:
arrs = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]#方法一:类似直方图的方法for i in range(len(arrs[0])): print([x[i] for x in arrs])#方法二:用zip方法[list(item) for item in list(zip(*arrs))]
输出如下:
[1, 4, 7, 10][2, 5, 8, 11][3, 6, 9, 12]Out[4]:[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]
阅读全文
0 0
- 11月01日(第3天_回纹数、直方图和质数)
- 11月02日(第4天_八皇后、递归(因数分解、阶乘))
- 11月03日(第5天_斐波那契数列、括号配对、二分查找法、关键字参数和非关键字参数)
- 10月30日(第1天_字符串练习)
- 10月31日(第2天_列表的使用)
- 11月23日——培训第3天
- 3月11日——培训第77天
- 11月06日(第6天)
- SSL2846 2017年11月9日提高组T1 质数(线性筛)
- 大本营更新公告2010年第11周(3月15日~3月19日)
- 2017年5月17日_第一篇博客
- 11月24日——培训第4天
- 11月25日——培训第5天
- 11月26日——培训第6天
- 11月27日——培训第7天
- 11月28日——培训第8天
- 11月30日——培训第9天
- 12月2日——培训第11天
- C++ auto和decltype
- CCF 201709-3 JSON查询
- Linux各文件夹的作用
- DenseNet
- linux系统基本操作——延迟
- 11月01日(第3天_回纹数、直方图和质数)
- android 常用权限和依赖
- Hibernate之批量查询
- java 计算两个日期相差的距离
- 算术运算符的应用
- Git三大特色之Stage(暂存区)
- printf的返回值
- 【队内胡策 11.1】 T1 T2
- 基础扫盲帖:比特率和波特率有什么不同?