python ДЛЯ цикла 2 последовательных цикла в одной функции выполняется только 1-й цикл

#python #python-3.x #function #loops #for-loop

#python #python-3.x #функция #циклы #для цикла

Вопрос:

У меня есть два цикла FOR, которые могут нормально выполняться по отдельности. Когда я пытаюсь запустить их вместе в одной функции, выполняется только первый цикл.

Мой код выглядит следующим образом:

 def loop_code():
        for x in range(10):
            x -= 1 
            print(x)
        for y in range(10):
            y  = 1 
            print(y)

loop_code()
  

вывод:

 -1
0
1
2
3
4
5
6
7
8
  

Мне нужно вывести это вместо:

 -1
0
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
9
10
  

Спасибо за вашу помощь!

Комментарии:

1. Ваш код, похоже, работает так, как должен. Проверьте это , возможно, проблема не связана с вашим кодом напрямую. Предоставьте больше информации о вашей системе, IDE и / или о том, как вы запускаете свой код

2. Код работает нормально! В чем проблема?

3. ознакомьтесь с определением функции range(). изменение настолько простое, насколько range(12) можно было бы сделать. (подумайте об этом, вам нужно 12 экземпляров!)

Ответ №1:

Это не элегантный способ делать вещи. Изменение вашей индексной переменной во время цикла for нарушает интерес к указанному циклу for. Если вы хотите, чтобы цикл переходил от -1 к 8, используйте:

 for index in range(-1,9)
  

Затем, если вы хотите, чтобы ваш второй цикл for имел индекс от 1 до 10, используйте:

 for other_index in range(1,11)
  

Ваш вопрос может потребовать некоторого разъяснения. Я помогаю вам получить желаемый результат, но здесь может возникнуть некоторая проблема с XY. Есть ли особая причина, по которой вы хотели изменить свой индекс в цикле for?

Комментарии:

1. Это общий неспецифический вопрос о циклах FOR внутри функций в python. У меня есть более сложный код, который требует выполнения двух определенных циклов путем вызова функции. Знаете ли вы лучший способ выполнения этого действия?

Ответ №2:

ознакомьтесь с определением функции range(). изменение настолько простое, насколько range(12) можно было бы сделать. (подумайте об этом, вы хотите 12 итераций!)