Ищете лучший способ генерировать ключ для диктатора, глобальные целые числа?

77
7

Я хочу, чтобы каждый ключ находился в последовательности предыдущего ключа для этого списка. Например, первый ключ должен быть 1, а следующий будет 2, затем 3... n для каждого вызова метода. Мой код работает:

all_randomly_generated_intigers = {}

def new_ID():
y = random.randint(0,5)
x = 0
while x in all_randomly_generated_integers:
x+=1
all_randomly_generated_integers[x] = y

Однако цикл будет выполняться x раз для каждого вызова new_ID(). Я решил, что могу просто называть x глобальным, но мой метод не видит x, если я это делаю:

all_randomly_generated_intigers = {}

global x

def new_ID():
y = random.randint(0,5)
while x in all_randomly_generated_integers:
x+=1
all_randomly_generated_integers[x] = y

Почему это не работает?

спросил(а) 2021-01-25T15:12:40+03:00 4 месяца, 3 недели назад
1
Решение
64

Глобальный x должен быть объявлен внутри функции.

ответил(а) 2021-01-25T15:12:40+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема