全国咨询/投诉热线:400-618-9090

首页技术文章正文

Python循环知识点讲解

更新时间:2017-11-24 来源:黑马程序员 浏览量:

import math

for i in range(50, 100 + 1):

for j in range(2, int(math.sqrt(i)) + 1):

if i % j == 0:

break

else:

print i

#第二个:把else的位置与if处于同一缩进。

import math

for i in range(50, 100 + 1):

for j in range(2, int(math.sqrt(i)) + 1):

if i % j == 0:

break

else:

print i

#第三个:在else后加一个break语句。

import math

for i in range(50, 100 + 1):

for j in range(2, int(math.sqrt(i)) + 1):

if i % j == 0:

break

else:

print i

break

###idea###

for语句是python中的循环控制语句。可用来遍历某一对象,还具有一个附带的可选的else块,主要用于处理for语句中包含的break语句。

如果for循环未被break终止,则执行else块中的语句。

break 在需要时终止for循环

continue 跳过位于其后的语句,开始下一轮循环。

for语句的格式如下:

>>>for <> in <对象集合>:

... if <条件>:

... break

... if <条件>:

... continue

... <其他语句>

...else:

... <>

...

#关于第一个程序

在这里,我解释一下为何导入math模块:导入math模块就是为了开方。

如果导入了math模块,然后对 i 进行开方,可以减少运算次数。

求一个数是否质数。只需对它进行这样的运算:

将这个数n,循环与 2 到 这个n的开平方 进行相除

如果这个区间内的所有整数不能整除n,则n为质数。

这样,就节省了运算 ‘大于n的开平方 小于n’ 之间这段运算的时间。

第二,我解释一下那‘+1’:

int(math.sqrt(i)) 输出的是比 i的开平方 小 的最大整数。

比如说:math.sqrt(51) 结果比7大一点,而 int(math.sqrt(51)) 输出的是7

而且在range(m, n)这里,range()函数产生的是一个从 m至n-1的整数列表,因而需要‘+1’,使运算完整。

顺便提一下range()函数。

range([start,] stop [, step])

# start 可选参数,起始数

#stop 终止数,如果 range 只有一个参数x,则产生一个包含 0 至 x-1 的整数列表

#step 可选参数,步长

#第二个程序

else那行不对,如果else放在那个地方的话,一旦有某个数遇到不能整除自己的数,就会输出i,直道找到一个整除自己等于0的数。那样就会连续输出这个数。

例如:i = 77,他不是质数,但是也会连续输出5次77,懂不?

只不过,只是自己不明白当else与if位于同一缩进的话,它是怎样运行的。

你解释得很详细,用‘茅塞顿开'来形容一点都不过分。

而且,我必觉得画图是理解循环一个非常好的办法。


本文版权归黑马程序员人工智能+Python学院所有,欢迎转载,转载请注明作者出处。谢谢!


作者:黑马程序员人工智能+Python培训学院


首发:http://python.itheima.com/


javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

http://www.itcast.cn/subject/uizly/index.shtml?seozxuids

14天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

8天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

0天免费试学

基础班入门课程限时免费

申请试学名额

12天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

10天免费试学

基础班入门课程限时免费

申请试学名额
在线咨询 我要报名