Циклы Python while — Что на самом деле делает этот код

#python #loops

Вопрос:

Я новичок в python и просто пытаюсь понять это упражнение:

 i=0 
while i<len(seq) :
      j=0 
      while(j<i) :
                print(seq[j:i])
                j = j 1
      i = i 1

 

Я запустил код, но у меня возникли некоторые проблемы с пониманием того, что на самом деле делает этот фрагмент кода

Я понимаю, что это некоторые базовые вещи, но я просто пытаюсь использовать подход «учиться на практике», и это меня зацепило

Заранее спасибо

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

1. Можете ли вы сказать, что это seq

2. С какой частью у вас возникли трудности?

3. Это упражнение посвящено нарезке.

4. Знаете ли вы, что делает цикл while, как работают срезы/индексы и как работает назначение переменных? Когда вы это сделаете, вы, вероятно, сможете узнать, что он делает, просматривая код строка за строкой и сохраняя состояние программы в своей голове.

Ответ №1:

Код генерирует все возможные подпоследовательности seq. Первая инструкция while выбирает конечный индекс подпоследовательности, а вторая-начальный индекс. Начальный индекс должен быть ниже второго индекса.

Ответ №2:

Я постараюсь сделать все возможное, чтобы объяснить это. Я предположил seq , что это какая-то ценность. Строка: while i<len(seq) : скажите python, чтобы он выполнял цикл до i тех пор, пока не будет больше или равно len(seq) количеству символов в строке.

Процесс —

Внутри него:

  1. j присваивается 0
  2. while (j<i): , означает, что цикл до j тех пор, пока не будет больше, чем i .
  3. print(seq[j:i]) является нарезкой и индексированием: print(seq[j:i]) печатает символы, начиная с индекса j до индекса i-1 .
  4. j=j 1 означает, что j переназначено его исходное значение плюс 1.

Это будет продолжаться до тех пор, пока j<i . Затем он вырывается из внутреннего цикла. Затем i переназначается его исходное значение 1: i=i 1 и снова процесс будет продолжаться до i тех пор, пока не станет не менее len(seq)

 seq="Hello"
i=0 
while i<len(seq) :
    j=0 
    while(j<i) :
        print(seq[j:i])
        j = j 1
    i = i 1

 

Ответ №3:

 i = 0
 

Я уверен, что вы понимаете эту часть, но это просто определение меня для следующего цикла while.

 while i<len(seq):
 

В этой части кода говорится, что до тех пор, пока я Список Seq также может быть строкой, в этом случае каждый символ будет иметь свое собственное место в списке.

 j = 0
 

Определение j для следующего цикла while.

 while j < i:
 

Этот цикл будет выполняться до тех пор, пока j меньше i.

 print(seq[j:i])
 

Печатает все в списке «seq», начиная с индекса j до индекса i.

 j = j   1
i = i   1
 

Добавление 1 к обоим целым числам. Многие программисты на python также любят использовать j = 1 / i = 1 для этого.