没名字能用了 发表于 2020-7-1 18:22:53

麻烦解释一下这个代码 我自己看不懂 = =! 谢谢

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('在程序范围内未找到答案!')
   




这个是python第六讲的题      谢谢

qiuyouzhi 发表于 2020-7-1 18:27:36

==是判断是否相等的啊

Twilight6 发表于 2020-7-1 18:29:39




看注释吧,哪里看不懂就问哈~:


x = 7   # 因为题目说了 阶梯一定会被 7 整除 所以阶梯一定是 7 的倍数,则设置从 7 开始
i = 1   # 这个只是初始化要循环判断的次数
flag = 0   # 这个用来判断最终是否有没找出 阶梯

while i <= 100:# 判断100次以内是否有爱因斯坦阶梯
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
      # 根据题意 除以2要剩余 1阶,除以3要剩余 2阶,除以5要剩余 4阶梯,除以6要剩余 5阶
      # 如果以上条件都满足,说明是爱因斯坦阶梯
      
      flag = 1# 讲判断条件设置为 1 表示在范围内找到了 爱因斯坦阶梯

    else: # 如果之前的阶梯不是爱因斯坦阶梯,那么就乘以 7,因为题意一定会被 7 整除,那么爱因斯坦阶梯一定是 7 的倍数
      x = 7 * (i+1)

    i += 1 # 记录循环次数 +1

if flag == 1:# 判断是否有爱因斯坦阶梯
    print('台阶数是: ',x)
else:   # 反之在 100 次 以内找不到爱因斯坦阶梯
    print('在程序范围内未找到答案!')



永恒的蓝色梦想 发表于 2020-7-1 18:35:54

qiuyouzhi 发表于 2020-7-1 18:27
==是判断是否相等的啊

这是个表情

qiuyouzhi 发表于 2020-7-1 18:43:52

永恒的蓝色梦想 发表于 2020-7-1 18:35
这是个表情

噗...

heidern0612 发表于 2020-7-1 18:57:15

永恒的蓝色梦想 发表于 2020-7-1 18:35
这是个表情

=.=这是个表情。

永恒的蓝色梦想 发表于 2020-7-1 19:00:49

heidern0612 发表于 2020-7-1 18:57
=.=这是个表情。

{:10_277:}

405794672 发表于 2020-7-1 19:27:46

解释一下:
x等于7
i等于1
flag等于0
i小于等于100的时候
      如果 x取余2等于1并且x取余3等于2并且x取余5等于4并且x取余6等于5的话
      flag等于1
      否则,x等于7乘以(i+1)
      i加等于1
如果flag等于1的话:
    打印:台阶数是:x
否则:
    打印:在程序范围内未找到答案

405794672 发表于 2020-7-1 19:32:48

405794672 发表于 2020-7-1 19:27
解释一下:
x等于7
i等于1


然后,这个代码肯定是有问题的。我看到时就想到了。因为在100次以内,你不知道符合条件的数有多少。万一,10次以内找到了,然后,程序什么措施都没有,然后继续,走完这100次。然后,得出的台阶只是那个最接近100次的。倘若你把100改为1000呢?其它的台阶统统不要了?

yhhpf 发表于 2020-7-1 21:11:17

永恒的蓝色梦想 发表于 2020-7-1 18:35
这是个表情

{:10_250:}{:10_250:}{:10_250:}
大佬...你这样会没朋友的...

永恒的蓝色梦想 发表于 2020-7-2 08:04:43

yhhpf 发表于 2020-7-1 21:11
大佬...你这样会没朋友的...

{:10_312:}有道理

harrykuo 发表于 2020-7-2 10:36:07

楼歪了。。。哈哈哈{:10_257:}
页: [1]
查看完整版本: 麻烦解释一下这个代码 我自己看不懂 = =! 谢谢