Главная страница
Навигация по странице:

  • print . Вот пример цикла for

  • 1. Создание словаря

  • 2. Добавление элемента

  • 3. Изменение записи

  • 5. Удаление элемента Та же проблема есть с удалением элементов из словаря. Можно использовать ключевое слово del

  • KeyError

  • Решение natural sum 0 for number in range(101) natural sum number print(natural sum) 5050


    Скачать 23.84 Kb.
    НазваниеРешение natural sum 0 for number in range(101) natural sum number print(natural sum) 5050
    Дата03.03.2023
    Размер23.84 Kb.
    Формат файлаdocx
    Имя файлаpython 6 i 7.docx
    ТипРешение
    #966168

    Задача: найдите сумму целых чисел от 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

    вернет количество пар ключ-значение в словаре. 


    написать администратору сайта