实例 36

题目

求 100 之内的素数。

分析

所谓素数就是除 1 和自身外,无法被其他数整除的数,那就循环比这个数的平方根还小的数,并取模,如果都不能整除,那么这个数就是素数。

代码

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @version : 1.0
  4. # @Time : 2021/4/10 11:02
  5. # @Author : cunyu
  6. # @Email : 747731461@qq.com
  7. # @Site : https://cunyu1943.site
  8. # 公众号 : 村雨遥
  9. # @File : 36.py
  10. # @Software: PyCharm
  11. # @Desc : 练习实例36
  12. if __name__ == '__main__':
  13. count = 0
  14. for i in range(1, 101):
  15. if i > 1:
  16. for j in range(2, i):
  17. if (i % j == 0):
  18. break
  19. else:
  20. print(i, end='\t')
  21. count += 1
  22. if (count % 5 == 0):
  23. print()
  24. print("共有素数 %d 个" % count)

结果

Python3 编程实例(36 - 40) - 图1

实例 37

题目

对 10 个数进行排序。

分析

利用选择法,即从后 9 个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后 8 个进行比较,并进行交换。

代码

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @version : 1.0
  4. # @Time : 2021/4/10 11:09
  5. # @Author : cunyu
  6. # @Email : 747731461@qq.com
  7. # @Site : https://cunyu1943.site
  8. # 公众号 : 村雨遥
  9. # @File : 37.py
  10. # @Software: PyCharm
  11. # @Desc : 练习实例37
  12. if __name__ == '__main__':
  13. lists = []
  14. for i in range(10):
  15. lists.append(int(input("请输入" + str(i + 1) + "个整数\n")))
  16. print("排序前的数")
  17. for item in lists:
  18. print(item, end='\t')
  19. # 排序
  20. for i in range(9):
  21. min = i
  22. for j in range(i + 1, 10):
  23. if lists[min] > lists[j]:
  24. min = j
  25. tmp = lists[i]
  26. lists[i] = lists[min]
  27. lists[min] = tmp
  28. print("\n排序后的数")
  29. for item in lists:
  30. print(item, end='\t')

结果

Python3 编程实例(36 - 40) - 图2

实例 38

题目

求一个 3 * 3 矩阵主对角线元素之和。

分析

分别输入矩阵的 9 个元素,然后求对角线元素之和,对角线元素的行列坐标相等。

代码

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @version : 1.0
  4. # @Time : 2021/4/10 12:36
  5. # @Author : cunyu
  6. # @Email : 747731461@qq.com
  7. # @Site : https://cunyu1943.site
  8. # 公众号 : 村雨遥
  9. # @File : 38.py
  10. # @Software: PyCharm
  11. # @Desc : 练习实例38
  12. if __name__ == '__main__':
  13. lists = []
  14. sum = 0.0
  15. for i in range(3):
  16. lists.append([])
  17. for j in range(3):
  18. lists[i].append(float(input("输入元素\n")))
  19. print("这个矩阵是:")
  20. for i in range(3):
  21. for j in range(3):
  22. print(lists[i][j], end='\t')
  23. print("\n")
  24. for i in range(3):
  25. sum += lists[i][i]
  26. print("主对角线元素和是:" + str(sum))

结果

Python3 编程实例(36 - 40) - 图3

实例 39

题目

有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

分析

调用 sorted_add(s, number),表示在有序列表 s 中正确位置插入 number 元素;

代码

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @version : 1.0
  4. # @Time : 2021/4/10 12:49
  5. # @Author : cunyu
  6. # @Email : 747731461@qq.com
  7. # @Site : https://cunyu1943.site
  8. # 公众号 : 村雨遥
  9. # @File : 39.py
  10. # @Software: PyCharm
  11. # @Desc : 练习实例39
  12. def sorted_add(lists, num):
  13. for i in range(len(lists)):
  14. if lists[i] > num:
  15. lists.insert(i, num)
  16. break
  17. if i == len(lists) - 1:
  18. lists.append(num)
  19. if __name__ == '__main__':
  20. lists = [1, 4, 5, 6, 9, 19]
  21. print("加入前")
  22. print(lists)
  23. num = int(input("\n输入你要加入的数\n"))
  24. sorted_add(lists, num)
  25. print("加入后")
  26. print(lists)

结果

Python3 编程实例(36 - 40) - 图4

实例 40

题目

将一个数组逆序输出。

分析

直接用第一个与最后一个交换即可。

代码

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @version : 1.0
  4. # @Time : 2021/4/10 13:11
  5. # @Author : cunyu
  6. # @Email : 747731461@qq.com
  7. # @Site : https://cunyu1943.site
  8. # 公众号 : 村雨遥
  9. # @File : 40.py
  10. # @Software: PyCharm
  11. # @Desc : 练习实例40
  12. if __name__ == '__main__':
  13. lists = [23, 43, 54, 234, 3, 5, 9]
  14. print("逆序前")
  15. print(lists)
  16. size = len(lists)
  17. for i in range(len(lists) // 2):
  18. lists[i], lists[size - i - 1] = lists[size - i - 1], lists[i]
  19. print("逆序后")
  20. print(lists)

结果

Python3 编程实例(36 - 40) - 图5