Невозможно гарантировать, что две функции будут выполняться синхронно друг с другом, что похоже на то, что вы хотите сделать.
Лучшее, что вы можете сделать, это разделить функцию на несколько шагов, затем подождите, пока оба будут завершены в критических точках синхронизации, используя Process.join
, как упоминает ответ @ aix.
Это лучше, чем time.sleep(10)
, потому что вы не можете гарантировать точное время. При явном ожидании вы говорите, что функции должны выполняться, выполняя этот шаг, прежде чем переходить к следующему, вместо того, чтобы предполагать, что это будет сделано в течение 10 мс, что не гарантируется на основе того, что еще происходит на машине.
Вы назвали randint следующим образом:
randint(1,0)
Это говорит randint, чтобы вернуть значение, начинающееся с 1 и заканчивающееся на 0. Диапазон чисел от 1 до нуля - это то, что вы, несомненно, реализуете пустой диапазон , Следовательно, ошибка:
empty range for randrange()
Поверьте мне, random
работает просто отлично. Вы вызываете randint
с b
& lt; a
:
>>> random.randint(1, 0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\random.py", line 228, in randint
return self.randrange(a, b+1)
File "C:\Python27\lib\random.py", line 204, in randrange
raise ValueError, "empty range for randrange() (%d,%d, %d)" % (istart, istop
, width)
ValueError: empty range for randrange() (1,1, 0)
randint
возвращает значение между первым аргументом и вторым аргументом.
b < a
– bgporter
22 December 2010 в 22:22
random.randint(1, 0)
возвращает ошибку, потому что всякий раз, когда вы используете random.randint(a, b)
a, должно быть меньше b. Попробуйте изменить random.randint(1, 0)
на random.randint(0, 1)
, чтобы получить правильный результат.
Нажмите здесь для получения дополнительной информации о random.randint
Если вы вызвали randint()
самостоятельно, это, безусловно, приведет к ошибке. Вы должны предоставить randint()
диапазон выбора. randint(a, b)
, где a и b являются целыми числами, должны работать, а если это не так, ваша установка Python будет нарушена.
Это также вызвало бы исключение, если b меньше, чем a. Подумайте об этом, как будто вы поставляете диапазон: было бы целесообразно сначала поставить нижнюю границу, не так ли? Поэтому сначала поставьте меньшую привязку.
Если вы действительно хотите сравнить ваш модуль random
с правильным, источник находится в http://svn.python.org/view/python/branches/release27-maint/ Lib / random.py? вид = разметка