零基础学Python 基础班 第六章 Python代码小练习一
第六章 Python代码小练习一
1 求所有水仙花数
1.1 概念:
。水仙花数(Narcissistic number)也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
. 1.2 实现:
。 目标 思路 工具
2 输出九九乘法表
代码块如下:
输出效果如下:
3 给用户9次机会在1-10 十个数字中随机来猜数字。如果随机的数字和用户输入的数字一致,则表示正确;反之,则表示错误。最终结果要求用户怎么也猜不对。
方法1 代码块如下;
执行结果如下:
方法2 超纲需要用到random模块,代码块如下:![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/bce62f37556335e73b89fde6a1177c35.png)
执行结果如下:
4获取用户输入的数,判断是否为质数
4.1概念:
。质数又称素数。指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。
4.2 实现
5 求100以内的质数(代码及优化)
5.1代码块:
5.2 执行结果:
5.2 优化方案1
需要用到time模块,把范围从100扩展到2000,代码块如下:
. 从上可以看到当数字范围扩展到2000的时候,需要4.7秒才能执行完毕。
优化方案1 :当i一旦能整除第一个j时,即可停止判断该i;代码和执行结果如下:
. 由上可以看出,时间从4.7降低到了0.6
优化方案2 :j的数值判断到i**0.5即可
. 由上可以看出,经过第二次优化之后,执行时间降低到了0.06秒
优化的核心在于减少执行的过程,从而减少执行时间。