实例 36
题目
求 100 之内的素数。
分析
所谓素数就是除 1 和自身外,无法被其他数整除的数,那就循环比这个数的平方根还小的数,并取模,如果都不能整除,那么这个数就是素数。
代码
#!/usr/bin/env python # -*- coding: utf-8 -*- # @version : 1.0 # @Time : 2021/4/10 11:02 # @Author : cunyu # @Email : 747731461@qq.com # @Site : https://cunyu1943.site # 公众号 : 村雨遥 # @File : 36.py # @Software: PyCharm # @Desc : 练习实例36 if __name__ == '__main__': count = 0 for i in range(1, 101): if i > 1: for j in range(2, i): if (i % j == 0): break else: print(i, end='\t') count += 1 if (count % 5 == 0): print() print("共有素数 %d 个" % count)
实例 37
题目
对 10 个数进行排序。
分析
利用选择法,即从后 9 个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后 8 个进行比较,并进行交换。
代码
#!/usr/bin/env python # -*- coding: utf-8 -*- # @version : 1.0 # @Time : 2021/4/10 11:09 # @Author : cunyu # @Email : 747731461@qq.com # @Site : https://cunyu1943.site # 公众号 : 村雨遥 # @File : 37.py # @Software: PyCharm # @Desc : 练习实例37 if __name__ == '__main__': lists = [] for i in range(10): lists.append(int(input("请输入" + str(i + 1) + "个整数\n"))) print("排序前的数") for item in lists: print(item, end='\t') # 排序 for i in range(9): min = i for j in range(i + 1, 10): if lists[min] > lists[j]: min = j tmp = lists[i] lists[i] = lists[min] lists[min] = tmp print("\n排序后的数") for item in lists: print(item, end='\t')
实例 38
题目
求一个 3 * 3 矩阵主对角线元素之和。
分析
分别输入矩阵的 9 个元素,然后求对角线元素之和,对角线元素的行列坐标相等。
代码
#!/usr/bin/env python # -*- coding: utf-8 -*- # @version : 1.0 # @Time : 2021/4/10 12:36 # @Author : cunyu # @Email : 747731461@qq.com # @Site : https://cunyu1943.site # 公众号 : 村雨遥 # @File : 38.py # @Software: PyCharm # @Desc : 练习实例38 if __name__ == '__main__': lists = [] sum = 0.0 for i in range(3): lists.append([]) for j in range(3): lists[i].append(float(input("输入元素\n"))) print("这个矩阵是:") for i in range(3): for j in range(3): print(lists[i][j], end='\t') print("\n") for i in range(3): sum += lists[i][i] print("主对角线元素和是:" + str(sum))
实例 39
题目
有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
分析
调用 sorted_add(s, number)
,表示在有序列表 s 中正确位置插入 number 元素;
代码
#!/usr/bin/env python # -*- coding: utf-8 -*- # @version : 1.0 # @Time : 2021/4/10 12:49 # @Author : cunyu # @Email : 747731461@qq.com # @Site : https://cunyu1943.site # 公众号 : 村雨遥 # @File : 39.py # @Software: PyCharm # @Desc : 练习实例39 def sorted_add(lists, num): for i in range(len(lists)): if lists[i] > num: lists.insert(i, num) break if i == len(lists) - 1: lists.append(num) if __name__ == '__main__': lists = [1, 4, 5, 6, 9, 19] print("加入前") print(lists) num = int(input("\n输入你要加入的数\n")) sorted_add(lists, num) print("加入后") print(lists)
实例 40
题目
将一个数组逆序输出。
分析
直接用第一个与最后一个交换即可。
代码
#!/usr/bin/env python # -*- coding: utf-8 -*- # @version : 1.0 # @Time : 2021/4/10 13:11 # @Author : cunyu # @Email : 747731461@qq.com # @Site : https://cunyu1943.site # 公众号 : 村雨遥 # @File : 40.py # @Software: PyCharm # @Desc : 练习实例40 if __name__ == '__main__': lists = [23, 43, 54, 234, 3, 5, 9] print("逆序前") print(lists) size = len(lists) for i in range(len(lists) // 2): lists[i], lists[size - i - 1] = lists[size - i - 1], lists[i] print("逆序后") print(lists)