По какой-то причине этот код:Если заявление действующего как в то время как заявление Python3
def display_jan_appointments():
for item in appointment_dates:
if item[0:2] == "01" and item[3:5] == "01" and not adding:
pygame.draw.ellipse(screen, BLUE, [915, 275, 20, 20])
jan_1_index.append(appointment_dates.index(item))
jan1 = True
global jan1
Бесконечно добавляет индекс элемента в списке jan_1_index. Я не уверен, почему, так как оператор if должен повторяться только один раз, потому что это не утверждение while. Это связано с тем, что код находится в функции, или это что-то еще?
Edit: При печати списка, оно выводит:
[0]
[0, 0]
[0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0, 0]
и так далее.
Двойное редактирование: я подготовил небольшой раздел кода со всем необходимым.
appointment_dates = ["01/01", "01/01"]
jan_1_index = []
adding = False
for item in appointment_dates:
if item[0:2] == "01" and item[3:5] == "01" and not adding:
jan_1_index.append(appointment_dates.index(item))
print(jan_1_index)
Этот код, однако, выводит список, как предполагается, только [0, 0]. Почему это?
Может вы проверяете, что jan_1_index указывает не на тот же объект, что и assign_dates? – DAXaholic
@DAXaholic Они - два отдельных массива. – Kronyklos
Как вы определили, что он добавляет «бесконечно»? Если программа блокируется, как вы узнаете, что конкретный список становится бесконечно большим? Нет, если утверждения не превращаются внезапно в бесконечные циклы, потому что они находятся внутри функций, которые были бы непригодными ... – TessellatingHeckler