用来练手的python练习题,原题链接: python练习实例36

题干: 求100之内的素数

求某个范围内的素数,和之前的一个例题其实是一样的,上次的同类例题链接如下: python练习实例12

在实现题目要求时,这次用了for else语句,发现更加简便,可以省去一部分的条件语句。
源代码如下:

import numpy as np
from math import sqrt
bound = np.arange(2,101,1)
result = np.array([],dtype=int)
for k in bound:if k > 1:  for i in range(2,int(sqrt(k))+1):# 如果k存在不是1或k本身的因数i,则k不是素数if k%i == 0:breakelse: result = np.append(result, k)
print(result)

输出结果如下:

if else语句是比较常见的条件语句,但其实for else语句也是非常实用的。下面给出for else语句的基本测试:

第一种情况,在for循环中的条件语句,当条件满足时,break。

for i in range(10):if i == 7:print("aaa")break
else:print("okok")

输出结果如下:

我们发现,当循环中出现了满足条件语句的情况,循环break会直接跳出,且不会执行else语句中的命令。

那么如果循环中的所有情况都不满足条件语句,循环break之后会执行else语句中的命令,如下:

for i in range(10):if i == 11:print("aaa")# 其实这里有没有break是一样的,因为这个条件语句总是false,因此循环语句总是能完全遍历。break
else:print("okok")

在上述代码中我们知道,循环中的所有情况,都不会满足if条件语句的条件,因此循环跳出后会执行else语句中的print指令,输出结果如下:

实际我们发现,当循环中不触发break跳出循环,在循环全部完成后,总会执行else中的命令,如下:

for i in range(10):print("haohaohao")
else:print("okok")

输出结果如下:

总结: 当我们使用for else 语句时,如果循环完全遍历,没有通过break跳出,那么在循环结束后,就会执行else语句中的命令。反之,如果在循环的过程中,经由break跳出了循环,那么else语句就不会再执行了。因此for else语句非常适合存在性问题,例如在找素数的过程中,如果这个数存在除了1和它本身的因数,则跳出循环,这个数不是素数。反之如果不存在除了1和它本身的因数,那么就调用else语句,这个数是一个素数。

for else语句小tips : RUNOOB python练习题36相关推荐

  1. 关于深度学习批量处理的一些小Tips(python)

    关于深度学习批量处理的一些小Tips(python) 成为时间管理大师,我休息了但是机器不能休息! 批量运行程序 使用 shell 进行 python 运行 1. Linux 上: 2.windows ...

  2. RUNOOB python练习题 32 列表的中括号符号小tips

    用来练手的python练习题,原题链接: python练习实例32 题干: 按相反的顺序输出列表的值 拿到题目首先写下如下代码: a = [1,2,3,4] for i in range(len(a) ...

  3. RUNOOB python练习题37 对一个序列的数进行排序

    用来练手的Python练习题,原题链接: python练习实例37 题干: 对10个数进行排序 在我们使用Numpy模块时,这个问题是非常简单的,下面放出降序排列和升序排列的代码: 升序排列 impo ...

  4. RUNOOB python练习题8 numpy矩阵的索引及遍历

    用来练手的python 练习题,原链接 : python练习实例8 题干: 输出 9*9 乘法口诀表. import numpy as nptable = np.zeros((9,9)) for i ...

  5. RUNOOB python练习题2

    用来练手的python 练习题,原链接 : python练习实例2 题干 : 企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元 ...

  6. 数组元素前移后移 RUNOOB python练习题 68

    用来练手的python练习题,原题链接: python练习实例68 题干: 有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数 代码如下: import nump ...

  7. lambda函数 RUNOOB python练习题49

    用来练手的python练习题,原题链接python练习实例49 该练习题主要是关于lambda函数的使用方法,本文就python中的lambda函数做出一点总结. 1. lambda函数的定义与调用 ...

  8. RUNOOB python练习题31 根据已输入的字符判断星期几

    用来练手的python练习题31, 原题链接 : python练习实例31 题干 : 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母. 一个条件语句练习题,非常简 ...

  9. RUNOOB python练习题25 递归实现阶乘

    用来练手的python练习题,原题链接: python练习实例25 题干 : 求1+2!+3!+-+20!的和. 题干要求我们实现一个阶乘的求和,显而易见的,我们可以使用递归来实现阶乘,再使用循环语句 ...

最新文章

  1. java实现验证码输出_java实现验证码
  2. 查询选修c语言课程的学生学号和姓名,数据库实验(学生信息表)
  3. 从简单的信道预计说起
  4. 其实没事做,写写博客也不错的
  5. winCE DEBUGZONE
  6. C++安全方向openssl(二):2.2 C++代码实现base16编解码
  7. mysql 循环插入记录
  8. TWRP的使用方法/双清、三清、四清解释
  9. 每个Linux 用户都应该知道的Linux技巧
  10. 采用现场总线协议的压力变送器特性介绍
  11. 睡眠是锁定计算机怎么设置密码,电脑休眠锁屏怎么设置
  12. 成都Uber优步司机奖励政策(3月4日)
  13. React文件预览,React实现在线预览docx,xslx,pdf格式文件
  14. python开发的桌面应用程序
  15. Servlet过滤器(非法字符审核案例)
  16. Pytorch中 nn.Transformer的使用详解与Transformer的黑盒讲解
  17. Flink一站式平台 StreamX 1.2.2 正式发布, 迄今最稳定可用版本
  18. 转载给浮躁的软件业同仁 (作者不是我,但是确实是好文)
  19. pandas获取数据集数据类型分布(更细粒度的分割)
  20. 1024 程序员节“沪深城市嘉年华”,共话技术生涯的一万种可能!

热门文章

  1. 如何关掉Microsoft Office Click-to-Run服务
  2. 设计合理的实验方案来研究阳离子改性棉织物与未改性棉的染色动力学性能
  3. php中的__FUNCTION__
  4. linux 命令修改网络,linux网络命令学习
  5. clickhouse语句_篇四|ClickHouse的可视化界面与集群状态监控
  6. -又见GCD -- ACM解决方法
  7. 分布式是写出来的(六)
  8. C++迭代器使用错误总结
  9. [Linux]继续探究mysleep函数(竞态条件)
  10. xcode 创建模拟器_Xcode编译WebKit