vudzendzi 发表于 2020-3-29 12:35:15

第六讲的动手题第二题求助

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) # 根据题意,x一定是7的整数倍,所以每次乘以7
    i += 1

if flag == 1:
    print('阶梯数是:', x)
else:
    print('在程序限定的范围内找不到答案!')


我一直理解的“if...else"是选择其中一个条件,为什么会出来符合 if 又符合 else的 119 呢 {:10_266:}
不知道是哪里理解错了,请大神指教{:10_266:}

ba21 发表于 2020-3-29 12:37:59

你先说说哪里 出来符合 if 又符合 else的?????????

如果条件满足if,永远不可能再执行ellse。我道是想听听你的见解

vudzendzi 发表于 2020-3-29 12:40:55

ba21 发表于 2020-3-29 12:37
你先说说哪里 出来符合 if 又符合 else的?????????

如果条件满足if,永远不可能再执行ellse。 ...

啊 爱因斯坦的题目不是要找一个符合这两个条件的数吗{:10_250:}
我是不是哪里理解错了
看了其他的提问也没懂
我是个菜鸡
{:10_250:}{:10_250:}

yexing 发表于 2020-3-29 12:47:23

本帖最后由 yexing 于 2020-3-29 12:49 编辑

你理解错了,只要符合 if 的条件就不会执行 else 里的内容。
循环里的 else 内容的意思就是如果找不到符合阶梯数 (if 的条件) 的数就继续找。

qiuyouzhi 发表于 2020-3-29 12:48:16

vudzendzi 发表于 2020-3-29 12:40
啊 爱因斯坦的题目不是要找一个符合这两个条件的数吗
我是不是哪里理解错了
看了其他的提问 ...

if, else是两者只有其一,如果if符合,就不执行else

vudzendzi 发表于 2020-3-29 12:52:27

yexing 发表于 2020-3-29 12:47
你理解错了,只要符合 if 的条件就不会执行 else 里的内容。
循环里的 else 内容的意思就是如果找不到符合 ...

是不是之前定义了 x=7,
然后if:后面的就已经是 某个是7的整数,又符合(x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5)
如果上面的条件不符合才会 else:x = 7*(i+1) 呀
{:10_254:}{:10_254:}

vudzendzi 发表于 2020-3-29 12:53:15

qiuyouzhi 发表于 2020-3-29 12:48
if, else是两者只有其一,如果if符合,就不执行else

啊啊啊 懂了
不好意思数学渣渣
问了很白痴的问题
{:10_250:}{:10_250:}{:10_250:}{:10_250:}

yexing 发表于 2020-3-29 12:53:39

vudzendzi 发表于 2020-3-29 12:52
是不是之前定义了 x=7,
然后if:后面的就已经是 某个是7的整数,又符合(x%2 == 1) and (x%3 == 2) and...

是的

vudzendzi 发表于 2020-3-29 12:54:56

yexing 发表于 2020-3-29 12:53
是的

明白惹!{:10_250:}{:10_250:}
谢谢!!!
(小白渣渣太不容易了)

qiuyouzhi 发表于 2020-3-29 12:57:51

vudzendzi 发表于 2020-3-29 12:53
啊啊啊 懂了
不好意思数学渣渣
问了很白痴的问题

那就结了帖子,把最佳答案设了吧~
页: [1]
查看完整版本: 第六讲的动手题第二题求助