#!/usr/bin/env python # coding: utf-8 # # Основы программирования в Python # # *Алла Тамбовцева, НИУ ВШЭ* # # ## Семинар 5 # ### Задача 1 # # Дан словарь с названиями разных рептилий: # In[7]: rept = {"python" : "питон", "anaconda" : "анаконда", "tortoize" : " черепаха" } # * Добавьте в словарь пару "snake" - " змея". # * Исправьте ключ "tortoize" на правильный "tortoise". # * Выведите на экран сообщения вида # # питон по-английски будет python; # # для всех слов в словаре (сообщение для каждого слова ‒ с новой строчки). # In[9]: rept["snake"] = "змея" # In[10]: # сначала добавим элемент с правильным ключом rept["tortoise"] = "черепаха" print(rept) # In[11]: # потом удалим элемент с неправильным ключом del rept["tortoize"] print(rept) # In[12]: for k, v in rept.items(): print(v, " по-английски будет ", k, ";", sep = "") # ### Задача 2 # # Дан список студентов. # In[14]: students = ["Вася", "Маша", "Петя", "Дима", "Марина", "Люба", "Коля", "Ваня"] # Оценки студентов за контрольную работу сохранены в словаре *grades*: # In[15]: grades = {"Вася" : 4, "Петя" : 9, "Марина" : 8, "Люба" : 4, "Коля" : 5, "Ваня": 10} # * Напишите программу, которая выводит на экран имя студента из списка *students* и его оценку. Если оценки студента из списка *students* нет, то на экран должно выводиться имя студента и сообщение "Контрольную работу не писал(а)". # # * Напишите программу, которая выводит на экран имена студентов, которые получили отличные оценки (8 и выше). # # * Напишите программу, которая сохраняет имена студентов, получивших хорошие и отличные оценки, в список *good*, а получивших удовлетворительные и плохие оценки ‒ в список *bad*. # In[18]: # 1 for s in students: print(s, grades.get(s, "Контрольную работу не писал(а)")) # In[19]: # 2 for st, gr in grades.items(): if gr >= 8: print(st) # In[20]: # 3 good = [] bad = [] for st, gr in grades.items(): if gr >= 6: good.append(st) else: bad.append(st) print(good) print(bad) # ### Задача 3 # # В списке *cnt* хранятся названия стран, а в списке *fh* ‒ значения индекса Freedom House для этих стран. Создайте словарь, используя в качестве ключей названия стран, а в качестве значений ‒ значения индекса. # In[21]: cnt = ["Andorra", "Belarus", "Denmark", "Kenya", "Jamaica", "Romania"] fh = [1.0, 6.0, 1.0, 4.0, 2.5, 2.0] # In[24]: d = dict(zip(cnt, fh)) d # ### Задача 4 # # Дан список, состоящий из пар чисел: # In[26]: pairs = [(2, 4), (4, 6), (0, 1), (5, 2), (9, 1), (3, 8)] # Создайте словарь *calc*, где ключами являются пары чисел, а значениями ‒ их произведение (произведение тоже должно считаться в Python, не в уме). # In[27]: calc = {} for p in pairs: calc[p] = p[0] * p [1] print(calc) # Обратите внимание: если бы `pairs` был списком списков, а не списком кортежей, ничего бы не получилось, так как списки не могут быть ключами словарей (списки, в отличае от кортежей, могут изменяться).