新人求助!
x = 7i = 1
y = (x % 6 == 5) and (x % 5 == 4) and (x % 3 == 2) and (x % 2 == 1)
while i <= 100:
if y = True:
print ('楼梯阶数是', x)
else:
i += 1
请问报错的原因及如何修改呢? x = 7
i = 1
test = 0
while i <= 100:
if (x % 6 == 5) and (x % 5 == 4) and (x % 3 == 2) and (x % 2 == 1):
test = 1
print ('楼梯阶数是', x)
break
else:
i += 1
x = (i+1)*7
不清楚你的代碼用意,不過你的報錯是 == 你寫成一個 =
if y == True
赋值才是单个 = 号,判断是否相等是两个 == 号,
如果 前者 本来就是一个得出布尔值的表达式,建议用 is ,
还有,你这逻辑铁定有问题,x 的值肯定是会变的,
即使你把x的值变了,代码也会死循环,因为一旦进入 if 语句,i 的值就不会再改变了,
x = 7
i = 1
y = (x % 6 == 5) and (x % 5 == 4) and (x % 3 == 2) and (x % 2 == 1)
while i <= 100:
if y is True:
print('楼梯阶数是', x)
i += 1
else:
i += 1
楼主 赋值问题前面兄弟讲清楚了后面还有个问题是:你如果Y不设置成2楼兄弟7步倍数的话
一定记得 把 i <= 100 改成i<=1000这样print(x)就直接是答案了~
语法问题:if y == True:
数学逻辑问题:这个数除以6余5,就必然除以3余2,除以2余1,所以后面两个条件不用加
思路问题:看法2,这个数除以6余5,除以5余4,除以3余2,除以2余1,那么,这个数加上1,就能够被这四个数都整除,所以,只要它加上1能被30整除,这个数就是你要的结果
#方法1
x=1
while x <= 100:
y = (x % 6 == 5) and (x % 5 == 4) #and (x % 3 == 2) and (x % 2 == 1)
if y == True:
print ('楼梯阶数是', x)
x += 1
#方法2
x=1
while x<=100:
y=x+1
if y%30==0:
print('楼梯阶数是', x)
x+=1
页:
[1]