Решение natural sum 0 for number in range(101) natural sum number print(natural sum) 5050
Скачать 23.84 Kb.
|
Задача: найдите сумму целых чисел от 0 до 100. Решение: natural_sum = 0 for number in range(101): natural_sum += number print(natural_sum) 5050 Для решения этой задачи мы инициализировали переменную natural_sum. По мере того, как будут выполняться итерации цикла, в ней будет накапливаться сумма. Счетчик в этом цикле - это переменная number. В первой итерации цикла number будет равна 0, в следующей - 1, и так далее до 100. Каждый раз переменная number будет прибавляться к natural_sum. На 101 итерации цикл прервется и интерпретатор перейдет к инструкции print. Вот пример цикла for с строкой: letters = "blue" for letter in letters: print(letter) b l u e А что делать, если индексы все же нужны? В этом случае есть ключевое слово enumerate. Получать индексы в цикле for, используя его, можно так: >>> colors = ["red", "green", "yellow", "magenta"] >>> for i, color in enumerate(colors): ... print(i, color) 0 red 1 green 2 yellow 3 magenta Кроме циклов for, в Python есть циклы, которые еще называют циклами while. Посмотрите на цикл while, который выводит целые числа от 0 до 3: i = 0 while i <= 3: print(i) i += 1 print("Done!") 0 1 2 3 "Done" Инициализируется словарь вот так: phonebook = { "Andrey": "+79757647210", "Natalia": "+79754297401", "Ruslan": "+79757493711", "Diana": "+79758990112" } phonebook["Diana"] # +79758990112 Стало проще! А еще теперь гораздо легче извлекать телефон человека по имени, по крайней мере, не нужно специально писать для этого циклы. Кстати, словари еще и работают быстрее списков: из-за хитрых алгоритмов поиск значения по ключу не требует перебора всех пар. Тип называется dict, это сокращение от dictionary, словарь: >>> type(phonebook) Словари могут хранить любые объекты в качестве значений. Вот пример словаря, в котором ключами являются строки, а значениями другие типы: { "name": "Anton Lapenko", "age": 34, "occupations": [ "engineer", "journalist", "artist", "worker" ], "address": None, "married": False } Видно, что значениями могут быть строки, числа, списки и другие значения. В качестве значения могут выступать и другие словари, то есть, словари бывают вложенными: users = { "Bob": { "age": 25, "gender": "male" }, "Rose": { "age": 35, "gender": "female" } } Ключи уникальны, двух одинаковых ключей в словаре быть не может, а если Вы попробуете добавить две пары с одинаковым ключом, то они "схлопнутся" и выживет только последняя: phonebook = { "Andrey": "+79757647210", "Andrey": "+79754297401" } phonebook # {'Andrey': '+79754297401'} А вот одинаковые значения в словаре могут быть (хоть это и несколько странно с точки зрения нашего примера): phonebook = { "Andrey": "+79757647210", "Natalia": "+79757647210", } phonebook # {'Andrey': '+79757647210', 'Natalia': '+79757647210'} 1. Создание словаря В Python есть несколько способов создать словарь, вот два самых распространенных. Первый -- с помощью литералов словаря, этот способ вы уже видели: phonebook = { "Andrey": "+79757647210", "Natalia": "+79754297401", "Ruslan": "+79757493711", } Второй - используя конструктор явно: phonebook = dict( Andrey = "+79757647210", Natalia = "+79754297401", Ruslan = "+79757493711" ) 2. Добавление элемента Также можно создать пустой словарь и добавлять в него элементы по одному, эффект будет тот же: phonebook = {} phonebook["Andrey"] = '+79754297401' 3. Изменение записи Изменить запись можно, присвоив новое значение уже существующему ключу: phonebook["Andrey"] = '+79757647210' 4. Извлечение элемента Получить значение можно двумя способами. Первый - запросить значение по ключу через квадратные скобки: >>> phonebook["Andrey"] +79757647210 этот способ пишется покороче, но его недостаток в том, что в словаре может не быть ключа, который вы ищете. В этом случае программа остановится с ошибкой: >>> phonebook["Maria"] KeyError: 'Maria' Поэтому в этом случае обращение по ключу пишут с условием: if "Maria" in phonebook: print(phonebook["Maria"]) Если писать условия, проверяющие наличие ключа в словаре неудобно, то получить значение по ключу можно еще с помощью метода get(). Если элемента с ключом Maria нет в словаре, то возвращается значение None. Если None как значение по умолчанию не устраивает, то можно выбрать любое другое вот таким способом: >>> phonebook.get("Maria") >>> phonebook.get("Maria", "такого контакта в книге нет") 'такого контакта в книге нет' 5. Удаление элемента Та же проблема есть с удалением элементов из словаря. Можно использовать ключевое слово del: >>> del phonebook["Maria"] >>> phonebook["Maria"] KeyError: 'Maria' Но если такого ключа в словаре нет, то эта операция возбуждает исключение KeyError. Поэтому в словари добавили еще один способ удалить элемент из словаря: метод pop(). Если pop() получает второй параметр, то он возвращает его значение, если искомого ключа в словаре не найдется. Это позволяет безопасно удалять элементы из словаря: >>> phonebook.pop("Maria", None) >>> phonebook.pop("Maria", "не получилось удалить") 'не получилось удалить' Удалить весь словарь можно также с помощью оператора del: >>> del phonebook >>> phonebook NameError: name 'phonebook' is not defined 6. Вхождение элемента Проверить принадлежность элемента словарю можно операциями in и not in: >>> "Maria" not in phonebook True 7. Длина словаря Здесь тоже никаких новостей: >>> len(phonebook) 3 вернет количество пар ключ-значение в словаре. |