如何使这行代码覆盖10倍表中的每个数字而不编码每个数字?


if count == 10 or count == 20 or count == 30 or count == 40 or count == 50 or count == 60 or count == 70 or count == 80 or count == 90:
sleep(8)

我希望这段代码永远覆盖Times 10 Times表中的每个数字,但我不想永远重复相同的代码来实现这一点。有什么方法可以编码吗?

使用mod 10,例如

if count % 10 == 0:
sleep(8)

检查count是否能被10整除,如果能,则休眠。不管count变多大

使用模算子%

if count%10 == 0:
sleep(8)

也可以写

if not count%10:
sleep(8)

但是我发现第一个版本更容易理解。

如果您想限制count的范围,则添加另一个条件,如:

if (0 < count < 100) and count%10 == 0:
sleep(8)

你要找的是模运算符:if(x % 10 == 0):

将除以10并返回余数。如果你输入一个能被10整除的数字,即乘10表,它将返回0。例如,如果输入11,它将返回1。

当您想要检查某个值是否在给定列表中时,请使用in操作符

if count in (10, 20, 30, 40, 50, 60, 70, 80, 90):
sleep(8)
if count in range(10, 100, 10):
sleep(8)

在这种情况下可以使用数学规则,如模运算符

# for any multiple of 10, like -150 or 168730
if count%10 == 0:
sleep(8)
# for multiple of 10, between 0 and 100
if (0 < count < 100) and count%10 == 0:
sleep(8)

可以使用取模运算符"%"以这种方式确定数字是否能被10整除(Modulo返回被它整除的数字的提醒符)

if count % 10 == 0:
#do something

它将检查数字的最后一位数是否不同于或等于0

您可以使用%操作符。它返回除法的余数。根据"如果x能被y整除且无余数,则x是y的倍数"的原理,我们可以求出。

:

num = 0
while True:
if num % 10 == 0:
time.sleep(8)
else:
pass
num += 1

最新更新