|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 见招拆招小冬喜 于 2020-10-8 18:07 编辑
问题:
成功赋值flag等于1后,因为还没有出循环,i 还在不断变大,不再满足 if 条件,但else 还在执行,根据 x=7*(i+1),x也在不断变大,i=101出循环的时候,x 已经不是119了。那为什么后面 if 语句输出的时候想有记忆似的还是输出 flag=1 时的 x 值,而不是出循环的(也就是现在的)x值?
代码如下:
x=7
i=1
flag=0
while i<=100:
if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
flag=1
else:
x=7*(i+1)
i+=1
if flag==1:
print("楼梯阶数是:",x)
else:
print("未在设定范围内找到答案")
输出结果:
>>>
=========================== RESTART: d:/我的文档/桌面/1.py ===========================
楼梯阶数是: 119
请各位指教~
- x = 7
- i = 1
- flag = 0
- while i <= 100:
- print(i)
- print(x)
- if (x % 2 == 1) and (x % 3 == 2) and (x % 5 == 4) and (x % 6 == 5):
- flag = 1
- else:
- print('没找到x')
- x = 7 * (i + 1)
- i += 1
- if flag == 1:
- print("楼梯阶数是:", x)
- else:
- print("未在设定范围内找到答案")
复制代码
16
112
没找到x
17
119
18
119
19
119
你可以这样打印看一下,你理解的i和x是关联的,实际是:x判断的那句判断对了之后,x就固定了,不再执行else后面的代码了,x从i=17之后开始就不再变化了,一直是119,但是i还在增加变化
|
|