我一直在搜索堆叠/嵌套的if-else语句,elif的语句似乎不能满足我的需要。 其目的是打印所有偶数、平方数和立方体数,并突出显示哪些是平方数和立方体数。 这是我的代码:
import math
rn = 0
for n in range(1,100,1):
if rn is 0:
if n%2 is 0:
print(n, " is an even number")
else:
rn = 1
if math.sqrt(n) is int:
print(n, " is a square number")
if n**(1/3) is int:
print(n, " is a Cube number too")
continue
else:
print(n, "is only a square number")
continue
else:
rn = 1
if rn is 1:
if n**(1/3) is int:
print(n, " is a Cube only number")
else:
rn = 0
continue
在递增n之前,代码不会移到下一个if语句
输出:
2 is an even number
4 is an even number
6 is an even number
有没有其他方法可以继续或中断,但保持在同一个循环中? 提前谢谢
这将起作用,使用
float.is_integer()
,以前的问题是is int
为任何输入返回False
。还要注意,这将给出从1到100的所有数字>> {} is a square number
,因为你在做math.sqrt(d)
,而d
是0
,所以平方根总是整数0
相关问题 更多 >
编程相关推荐