逢7就跳过的python实现及pass、continue、exit()及break的区别
今天在实验楼上练习python,一个小游戏,搞了比较久,感受也颇丰,该游戏集合了int 类型、变量、运算符、while循环、条件判断等知识点,相信搜到这篇博文的,应该对该游戏已经很有认识了,不过,还是把题目再讲一下:
1 | 打印100内数字的逢7过(7的倍数不打印,数字中包含7的不打印): |
逢7就跳过的python实现
实验楼 上给的提示还是很不错的,引用如下:
开发中,我们经常要先构思框架,再优化功能。
所以在这个挑战中,你可以先用循环,写出打印出 1 到 100 间的数字的程序,之后再往里面加条件判断。
是的,有的时候,说起来容易,做起来难,我自己的设想是:
step 1:先把1-100的数字打印出来
step 2:把题目中要求去除的数字用程序语言表达出来
step 3:实现题目要求,把100以内逢7过的数字呈现出来
下面一步一步来说:
step 1 :把1-100的数字打印出来
1 | a = 0 |
输出呈现如下:
1 | >>> a = 0 |
这一步很简单。
step 2:把题目中要求去除的数字用程序语言表达出来
s2.1 7 的倍数,可以理解为除以 7 余数为 0 的数;
1 | a % 7 == 0 |
s2.2 个位上是 7 的数,即除以 10 余 7 的数;
1 | a % 10 == 7 |
s2.3 十位上是 7 的数,即除以 10 取整数为 7 的数。
1 | a // 10 == 7 |
这里用到了数学运算符%
和//
,不清楚的,可以去百度一下,为了方便,这里就给个菜鸟教程 的Python 运算符 的链接啦。
上面已经展示了7的倍和包含7的数字的python表达方式,我们要做的就是把这个条件整体表达出来:
1 | a % 7 == 0 or a % 10 == 7 or a //10 == 7 |
step 3:实现题目要求,把100以内逢7过的数字呈现出来
对,这里,耽误了我比较久的时间,究其原因,还是基本规则没搞清楚,当然,另一个原因也是练习的太少。
最自然的语言实现:
1 | #jump7 prog.0 |
我通过自己的试错,又分别用了pass和continue实现了结果(当然,这里面有很多实现方法,我仅举几种可能性):
使用pass语句
正确实现1:
1 | #jump7 prog.1 |
正确实现2:
1 | #jump7 prog.2 |
貌似正确的错误实现3:
1 | #jump7 prog.3 |
对,这个程序,错就错在了初始数字是0
。
使用continue语句
正确实现:
1 | #jump7 prog.4 |
错误实现:
1 | #jump7 prog.5 |
强行终止程序后,错误提示是 File "<stdin>", line 1, in <module>
错误修改后实现:
1 | #jump7 prog.6 |
pass、continue、exit()及break的区别
为此,我翻查了下,看到了深藍写的pass、continue、exit()及break的区别:
做下调整引用:
- pass
pass:不做任何事情,只起到占位的作用
如#jump7 prog.0 - 2
- continue
continue:跳出本次循环,执行下一次
Python continue 语句跳出本次循环,而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。
如#jump7 prog.4 - 6
其中,#jump7 prog.5的错误是,跳出本次循环,后续语句就不再执行,a的赋值未变,所以,程序陷入死循环;而#jump7 prog.6 则是在continue之前,提前给a进行赋值,这样就不再会进入死循环了。
- break
break:跳出循环,不再执行
Python break语句,就像在C语言中,打破了最小封闭for或while循环。
break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
break语句用在while和for循环中。
如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
- exit()
exit():结束整个程序
本文链接: https://yangluom.github.io/2019/09/19/逢7就跳过的python实现及pass、continue、exit-及break的区别/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!