Найти в Дзене
Без названия

Словари

Задание №1

Ранее мы выполняли задание связанное с ветеринарной клиникой. В той задаче нам предстояло вывести информацию о питомце на экран. Сейчас нам необходимо создать словарь pets = {}

Примерный вид будет следующим:

pets = {
  "Имя питомца": {
    'Вид питомца': # придумайте каким образом сюда внести информацию,
    'Возраст питомца': # придумайте каким образом сюда внести информацию,
    'Имя владельца': # придумайте каким образом сюда внести информацию
  }
}

У нас должен получиться словарь, с ещё одним словарём внутри. То есть, есть словарь pets. Он в себе хранит ещё один словарь, который обозначается именем питомца. Имя питомца также нужно каким-то образом вносить туда.

Задача не будет считаться выполненной, если мы захотим сразу внести информацию, не прибегая в функции input()

Например:

pets = {
  "Мухтар": {
    "Вид питомца": "Собака",
    "Возраст питомца": 9,
    "Имя владельца": "Павел" 
  }
}

Так должен будет выглядеть результируюший словарь, но первоначальный его вид - пустой. Его необходимо заполнить пользовательским вводом через консоль с помощью функции input(), а не вписать значения уже в самом коде.

Возраст питомца должен быть типа int Всё остальное - строки

Так как возраст питомца указывается типом int. Необходимо, в соответствии с указанным возрастом выводит год, года или лет. Например:

Его возраст: 24 года
Его возраст: 21 год
Его возраст: 19 лет

И теперь осталось только получить всю информацию о питомце в виде строки, как из задания "Ввод-вывод и базовые переменные", но с небольшими изменениями. Для получения информации необходимо воспользоваться методами словаря keys() и values():
Это желторотый питон по кличке "Каа". Возраст питомца: 19 лет. Имя владельца: Саша

Решение задания № 1:

I ВАРИАНТ

pets ={}

pets2={}

while (True):

k=input("Введите имя питомца  (клавиша enter - выход): ")

if k=='':

break

else:

k1=input('Вид питомца: ')

k2=int(input('Возраст питомца: '))

year_case = ''

if k2 % 10 == 1 and k2 != 11 and k2 % 100 != 11:

year_case = 'год'

elif 1 < k2 % 10 <= 4 and k2 != 12 and k2 != 13 and k2 != 14:

year_case = 'года'

else:

year_case = 'лет'

k3=input('Имя владельца:  ')

pets2={'Вид питомца:':k1, 'Возраст питомца:':k2, 'Имя владельца:':k3  }

pets[k]=pets2

print("Это", pets2['Вид питомца:'], "по кличке", pets.keys(),". Возраст питомца:", pets2['Возраст питомца:'], year_case, "Имя владельца:", pets2['Имя владельца:'])

II ВАРИАНТ

pets ={}

pets2={}

while (True):

k=input("Введите имя питомца  (клавиша enter - выход): ")

if k=='':

break

else:

k1=input('Вид питомца: ')

k2=int(input('Возраст питомца: '))

year_case = ''

if k2 % 10 == 1 and k2 != 11 and k2 % 100 != 11:

year_case = 'год'

elif 1 < k2 % 10 <= 4 and k2 != 12 and k2 != 13 and k2 != 14:

year_case = 'года'

else:

year_case = 'лет'

k3=input('Имя владельца:  ')

pets2={'Вид питомца:':k1, 'Возраст питомца:':k2, 'Имя владельца:':k3  }

pets[k]=pets2

for key in pets.keys():

print("Это", pets2['Вид питомца:'], "по кличке", key,". Возраст питомца:", pets2['Возраст питомца:'], year_case, "Имя владельца:", pets2['Имя владельца:'])

III ВАРИАНТ

pets ={}

pets2={}

while (True):

k=input("Введите имя питомца  (клавиша enter - выход): ")

if k=='':

break

else:

k1=input('Вид питомца: ')

k2=int(input('Возраст питомца: '))

k3=input('Имя владельца:  ')

pets2={'Вид питомца:':k1, 'Возраст питомца:':k2, 'Имя владельца:':k3  }

pets[k]=pets2

for key, value in pets.items():

vid=value['Вид питомца:']

vozrast=value['Возраст питомца:']

imy=value['Имя владельца:']

year_case = ''

if vozrast % 10 == 1 and vozrast != 11 and vozrast % 100 != 11:

year_case = 'год'

elif 1 < vozrast % 10 <= 4 and vozrast != 12 and vozrast != 13 and vozrast != 14:

year_case = 'года'

else:

year_case = 'лет'

print("Это", vid, "по кличке", key,". Возраст питомца:", vozrast, year_case, "Имя владельца:", imy)

Задание №2

С помощью цикла создайте словарь, в котором ключи будут, например от числа 10, до -5 (включительно). А значениями этих ключей будут сами эти числа возведённые в степени равных этим числам

Например:

my_dict = {
  10: 10000000000,
  9: 387420489,
  # и так далее ...
  -5: -0.00032
}

Решение задания № 2:

new_dict = {}

for z in range(10, -6,-1):

new_dict[z] = z ** z

print(new_dict)