иногда я также испытываю вечный цикл, если currentItem и rnd равны
Они не должны быть равными, чтобы испытать бесконечный цикл.Когда число 0
добавляется в список, тогда это условие
currentItem !in selectionList
всегда false
делает все условие
(rnd !in selectionList) and (currentItem !in selectionList)
также false
, поэтому циклбудет выполняться бесконечно.Непонятно, зачем вам нужен currentItem
.Если вам нужно исключить его значение из чисел, добавленных в список, измените это:
currentItem !in selectionList
на следующее:
currentItem != rnd
число, которое уже существует в моем спискевсе еще добавлено
это то, что вам нужно отладить и выяснить, в каком случае это происходит.С предоставленным вами кодом это кажется невозможным. Важное примечание : не используйте битовый оператор and
в логических выражениях.Используйте &&
(логический оператор AND
). Редактировать Название вашего вопроса содержит "и / или" .... может быть вы пробовали or
вместо and
в состоянии?Если бы вы это сделали, вы могли бы получить дубликаты в списке.