for else语句小tips : RUNOOB python练习题36

用来练手的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语句,这个数是一个素数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386899.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

用来练手的Python练习题,原题链接: python练习实例37 题干: 对10个数进行排序 在我们使用Numpy模块时,这个问题是非常简单的,下面放出降序排列和升序排列的代码: 升序排列 import numpy as npresult np.zeros(10) for i in range(result…

逆向学习-IDApython(一)

背景 IDAPython 由三个分离的模块组成,他们分别是 idc,idautils 和 idaapi。 idc(注意大小写,不是 IDA 中的 IDC)是一个封装了 IDA 的 IDC 的兼容性模块,idautils 是 IDA 的高级实用功能模块,idaapi 允许了我们访问更加底层的数据。 基本操作 idc.Screen或者here()返回此时的地…

RUNOOB python练习题 39 数组排序

用来练手的python练习题,原题链接: python练习实例39 题干: 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 这个题目用列表List的sort,append方法非常简单,如下: 想要升序排列的话,就直接…

IIS 部署asp.net Provisional headers are shown 在VS2005返回值,部署不返回值

IIS 部署asp.net Provisional headers are shown 在VS2005调试返回值,部署到IIS不返回值 首先当时为了跨域的问题,在上面 后来把跨域的内容放在IIS去解决 其次,在每次返回结束的时候,加一句话 Response.End();

RUNOOB python练习题44

用来练手的python练习题,原题链接:python练习实例44 题干: 两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵 使用基本的List类写起来就比较麻烦,需要初始化一个3*3的全0矩阵,之后通过遍历将矩阵对应…

ImportError: No module named 'matplotlib'(python 安装各种 )

matplotlib 怎么弄啊 我应该是安装matplotlid了的 怎么还说我没有 编辑于:2017.03.22 12:28 0 分享 |评论0|收藏0|浏览7261 qq_37926784 声望: -4 3个回答 按赞数排序 用pip 也显示已经安装了matplotlib 编辑于:2018.03.26 19:43 分…

QBXT Day 5图论相关

图论是NOIP的一个非常重要的考点,换句话说,没有图论,NOIP的考纲就得少一大半(虽然很NOIP没有考纲) 图论这玩意吧,和数论一样是非常变态的东西,知识点又多又杂,但是好在一个事&#x…

RUNOOB python练习题47 交换两个变量值

用来练手的python练习题,原题链接: python练习实例47 题干: 两个变量值互换 在C语言C中我们要构造一个能交换两个变量值的函数很方便,我们可以使用指针,或者C中的引用。那么在没有指针的python中如何构造一个可以交换两个变量值的函数呢&am…

lambda函数 RUNOOB python练习题49

用来练手的python练习题,原题链接python练习实例49 该练习题主要是关于lambda函数的使用方法,本文就python中的lambda函数做出一点总结。 1. lambda函数的定义与调用 在python中,我们都知道使用def关键词来定义一个函数, 例如一个最简单的…

kubernetes(k8s)安装部署

Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制。 Kubernetes一个核心的特点就是能够自主…

python random随机数 RUNOOB python练习题50

用来练手的python练习题,原题链接: python练习实例50、 该练习题主要包含了random模块随机数的应用,下面给出几个常用的模块内函数。 1. 生成浮点型随机小数 最简单的,就是用random函数,生成 [0.0,1.0)[0.0, 1.0)[0.0,1.0)范围…

Spring Cloud Eureka Consul使用和对比

Spring Cloud简介 最大的区别是Eureka保证AP, Consul为CP。 Consul强一致性(C)带来的是: 服务注册相比Eureka会稍慢一些。因为Consul的raft协议要求必须过半数的节点都写入成功才认为注册成功 Leader挂掉时,重新选举期间整个consul不可用。保证了强一致…

符号 RUNOOB python练习题 51

用来练手的python练习题,原题链接: python练习实例51 python中的 & 和 | 使用过程中,变量类型不同,这两个符号的作用也不同。 1. 对于数字变量,&\&& 和 ∣|∣ 用于逐位运算 # 二进制逐位逻辑与门运算 a 0b110…

Python打印杨辉三角形 RUNOOB python练习题61

用来练手的python练习题,原题链接: python练习实例61 题干: 打印出杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 实现代码如下: import numpy as nptable…

使用Docker快速搭建Tensorflow开发环境

当我刚开始学习使用scikit-learn时,总是会出现各种各样的包依赖问题,兜兜转转了一遍才全部安装好,现在的机器学习算法开发者大都使用tensorflow、pytorch来实现自己的想法,但依然会面临各种包版本和依赖的问题,有一段时…

RUNOOB python 67 数组的元素互换

用来练手的Python练习题,原题链接:python练习实例67 题干: 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组 代码如下: import numpy as nptable np.array([10,4,9,3,11,25,37,15,2,231,672,22]) #定义sw…

微信小程序、微信公众号、H5之间相互跳转

一、小程序和公众号 答案是:可以相互关联。 在微信公众号里可以添加小程序。 图片有点小,我把文字打出来吧: 可关联已有的小程序或快速创建小程序。已关联的小程序可被使用在自定义菜单和模版消息等场景中。 公众号可关联同主体的10个小程…

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

用来练手的python练习题,原题链接: python练习实例68 题干: 有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数 代码如下: import numpy as np # 构造一个储存了n个整数的numpy数组 def numbers_input(n):a n…

Mac Eclipse安装lombok

Lombok是一个可以通过注解的形式可以帮助消除一些必须但是显得很臃肿的Java代码的工具,通过使用对应的注解,可以在进行编译源码的时候生成对应的方法,比如类属性的get/set/toString()/类的构造方法等. 下面记录一下在Mac Eclipse是如何安装Lo…