设为首页 收藏本站
查看: 1119|回复: 0

[经验分享] 关于Python中的for循环控制语句

[复制链接]

尚未签到

发表于 2015-4-23 06:18:19 | 显示全部楼层 |阅读模式
  #第一个:求 50 - 100 之间的质数
  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位于同一缩进的话,它是怎样运行的。
你解释得很详细,用‘茅塞顿开'来形容一点都不过分。
而且,我必觉得画图是理解循环一个非常好的办法。
DSC0000.png
  
  原帖地址(LZ是本人):http://tieba.baidu.com/f?kz=798217685

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-59712-1-1.html 上篇帖子: Python下划线与命名规范 下篇帖子: Python小技巧1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表