Рубрики
Без рубрики

Для петель в Python

Автор оригинала: FreeCodeCapm Team.

Для выписок петлей

Python использует петлю для итерации по поводу перечень элементов. В отличие от C или Java, которые используют цикл для изменения значения в шагах и доступа к чему-тому, как массив, использующий это значение.

Для циклов итайте по поводу структур данных на основе сбора, такие как списки, кортежи и словари.

Основной синтаксис:

for value in list_of_values:
  # use value inside this block

В общем, вы можете использовать что-либо в качестве значения итератора, где могут быть назначены записи ITERable. Например. Вы можете распаковывать кортежи из списка кортежей:

list_of_tuples = [(1,2), (3,4)]

for a, b in list_of_tuples:
  print("a:", a, "b:", b)

С другой стороны, вы можете включить все, что является нерешеным. Вы можете вызвать функцию или использовать список литерала.

for person in load_persons():
  print("The name is:", person.name)
for character in ["P", "y", "t", "h", "o", "n"]:
  print("Give me a '{}'!".format(character))

Некоторые способы, которыми используются петли:

Итерация по диапазону () функции

for i in range(10):
    print(i)

Вместо того, чтобы быть функцией, диапазон на самом деле является неизмеренным типом последовательности. Вывод будет содержать результаты от нижней границы I.e 0 на верхнюю границу I.e 10, но исключая 10. По умолчанию нижняя граница или начальный индекс устанавливается на ноль. Выход:

>
0
1
2
3
4
5
6
7
8
9
>

Кроме того, можно указать нижнюю границу последовательности и даже шаг последовательности путем добавления второго и третьего параметра.

for i in range(4,10,2): #From 4 to 9 using a step of two
    print(i)

Выход:

>
4
6
8
>

Функция xrange ()

По большей части xrange и диапазон имеют то же самое с точки зрения функциональности. Они оба обеспечивают способ создания списка целых чисел для вас, однако вы, пожалуйста. Единственное отличие состоит в том, что диапазон возвращает объект списка Python, и Xrange возвращает объект xrange. Это означает, что Xrange на самом деле не генерирует статический список во время выполнения, как диапазон. Это создает значения, поскольку они нуждаются в них со специальной техникой, называемой данными. Эта техника используется с типом объекта, известного как генераторы.

Еще одна вещь, чтобы добавить. В Python 3.x функция Xrange больше не существует. Функция диапазона теперь делает то, что делает xrange в Python 2.x

Итайте за ценности в списке или кортеж

A = ["hello", 1, 65, "thank you", [2, 3]]
for value in A:
    print(value)

Выход:

>
hello
1
65
thank you
[2, 3]
>

Итайте по ключам в словаре (aka hashmap)

fruits_to_colors = {"apple": "#ff0000",
                    "lemon": "#ffff00",
                    "orange": "#ffa500"}

for key in fruits_to_colors:
    print(key, fruits_to_colors[key])

Выход:

>
apple #ff0000
lemon #ffff00
orange #ffa500
>

Итайте в течение двух списков одного размера в одной петле с функцией ZIP ()

A = ["a", "b", "c"]
B = ["a", "d", "e"]

for a, b in zip(A, B):
  print a, b, a == b
  

Выход:

>
a a True
b d False
c e False
>

Итайте переписывают список и получите соответствующий индекс с функцией перечисления ()

A = ["this", "is", "something", "fun"]

for index,word in enumerate(A):
    print(index, word)

Выход:

>
0 this
1 is
2 something
3 fun
>

Общий корпус использования итерация по поводу словаря:

for name, phonenumber in contacts.items():
  print(name, "is reachable under", phonenumber)

Если вам абсолютно необходимо получить доступ к текущему индексу вашей итерации, сделать Не использовать Диапазон (Len (потенциал)) ! Это чрезвычайно плохая практика и доставит вам множество смесь от старших разработчиков Python. Используйте встроенные функции перечислять () вместо:

for index, item in enumerate(shopping_basket):
  print("Item", index, "is a", item)

для/else заявления

Pyhton позволяет вам использовать больше для петлей, остальный случай выполнен, когда ни одно из условий в корпусе цикла не была удовлетворена. Использовать остальное, что мы должны использовать Перерыв Заявление, так что мы можем вырваться из цикла на Satsfied Code. Если мы не вырываемся, то часть будет выполнена.

week_days = ['Monday','Tuesday','Wednesday','Thursday','Friday']
today = 'Saturday'
for day in week_days:
  if day == today:
    print('today is a week day')
    break
else:
  print('today is not a week day')

В приведенном выше случае выход будет Сегодня не выходной день Так как перерыв в цикле никогда не будет выполнен.

Итайте через список, используя функцию inline Loop

Мы также могли бы также передать линию наличия Python, например, если нам нужно прописные все слова в списке из списка, который мы могли бы просто сделать следующее:

A = ["this", "is", "awesome", "shinning", "star"]

UPPERCASE = [word.upper() for word in A]
print (UPPERCASE)

Выход:

>
['THIS', 'IS', 'AWESOME', 'SHINNING', 'STAR']
>

Больше информации: