文章详情页
python小白基础问题 关于while循环
问题描述
题目:用python打印100以内所有的偶数
第一段代码:
n = 1i = 2*nwhile i <= 100: print(i) n+=1
代码执行结果:无限的打印数字2
第二段代码:
n = 1i = 2*nwhile i <= 100: print(i) n+=1 i = 2*n
代码执行结果:打印正确
我的问题:为什么第一段代码打印出来结果是错的,第二段代码仅仅只是在while循环里面加上i=2*n结果就对了?难道第一段代码中,n+=1的这一段,n在不断地加1的过程中,无法改变i的值么?为什么?
问题解答
回答1:在循环中,没有执行 i = 2*n,它的值又怎么会改变. 只有执行了相应的语句,才会改变的. 初始赋值 i = 2*n, i的值不会动态的随n的改变而改变,只有执行了相应的语句才会改变.
回答2:是的,第一段代码n加1并没有改变i的值,i一直是2.
while循环的语法是:while 条件: code...
只要条件满足True,就一直循环。
第一段的条件一直是 i < 100, 即 2 < 100, 满足条件,所以会不断循环。
上一条:Python2中code.co_kwonlyargcount的等效写法下一条:python3.x - python3.5使用pyinstaller打包报错找不到libpython3.5mu.so.1.0等文件求解?
相关文章:
1. objective-c - iOS开发支付宝和微信支付完成为什么跳转到了之前开发的一个app?2. 在mac下出现了两个docker环境3. docker images显示的镜像过多,狗眼被亮瞎了,怎么办?4. docker-compose 为何找不到配置文件?5. 在windows下安装docker Toolbox 启动Docker Quickstart Terminal 失败!6. angular.js - angular内容过长展开收起效果7. PHP中的$this代表当前的类还是方法?8. macos - mac下docker如何设置代理9. dockerfile - [docker build image失败- npm install]10. java - 我用Tomcat访问SQL server数据库时,出现以下错误,该怎么解决?
排行榜