我刚刚注意到,当我运行这段代码时:
import random
import time
delay = random.randint(1,5)
for x in range(1, 101):
print(x)
time.sleep(delay)
delay
变量始终是相同的,因为它是在开头确定的。有没有办法在每个循环中为delay
变量生成一个介于1和5之间的新随机数?现在,显然我可以执行以下操作:
import random
import time
for x in range(1, 101):
print(x)
time.sleep(random.randint(1,5))
但是我想使用变量,因为我有一个庞大的代码,并且如果我做了一些更改,也不想遍历所有代码。提前非常感谢!
答案 0 :(得分:1)
您最好的选择是定义自己的功能来进行睡眠。这样,您可以随时更改它,而无需触摸其余代码。例如:
def my_sleep():
time.sleep(random.randint(1,5))
然后,您可以将对time.sleep(delay)
的呼叫替换为:
my_sleep()
您需要一次全部替换它们,但是之后您可以更改my_sleep
,而不必再次全部更改。
答案 1 :(得分:0)
结合使用您的方法和@TomKarzes:
itemExtent
在适当的时候可以使用
small_delay = 5
big_delay = 10
huge_delay = 30
def my_sleep(delay):
time.sleep(random.randint(1, delay))
或
my_sleep(small_delay) # 1-5 seconds
在您的代码中。如果要更改整体延迟范围,请在顶部修改变量。
答案 2 :(得分:0)
不确定要尝试实现什么,但是唯一可以做的就是使delay
为一个函数:
import random
def delay():
return random.randint(1,5)
for x in range(1, 101):
print(x)
time.sleep(delay())
答案 3 :(得分:0)
如果这是您当前所有引用的场景都指向同一delay
:
...omitted...
delay = random.randint(1,5)
#first for loop
for x in range(1, 101):
print(x)
time.sleep(delay)
#another for loop
for x in range(1, 101):
print(x)
time.sleep(delay)
...so on...
for x in range(1, 101):
...omitted...
恐怕您不做大量工作就无法做到。
答案 4 :(得分:0)
这样,每次循环迭代时,循环将被迫使用新的随机种子,这导致延迟时间在每次迭代中不同的可能性更高。希望我理解你的问题。
import random
import time
for x in range(1, 101):
random.seed(x)
delay = random.randint(1,5)
print(x)
time.sleep(delay)
答案 5 :(得分:-1)
import random
import time
for x in range(1, 101):
delay = random.randint(1,5)
print(x)
time.sleep(delay)