19. Двенадцать дней Рождества.
Условие:
«Двенадцать дней Рождества» (The Twelve Days of Christmas) – старая английская песня, построение которой базируется на постоянно увеличивающемся списке подарков в каждый из 12 дней Рождества.
В первый день был послан один подарок, в следующий – второй и т. д.
Первые три куплета песни приведены ниже. Полностью текст песни можно без труда найти в интернете.
On the first day of Christmas
my true love sent to me:
A partridge in a pear tree.
On the second day of Christmas
my true love sent to me:
Two turtle doves,
And a partridge in a pear tree.
On the third day of Christmas
my true love sent to me:
Three French hens,
Two turtle doves,
And a partridge in a pear tree.
Напишите программу, которая будет сама строить куплеты этой песенки. В программе должна присутствовать функция для отображения номера дня в первой строке каждого куплета.
В качестве входного параметра она должна принимать порядковый номер дня. Далее в основной программе эта функция должна быть вызвана 12 раз подряд. Каждая строка с очередным подарком должна присутствовать в вашей программе лишь раз.
Нужно создать свою библиотеку, которая будет храниться в том же каталоге, что и эта программа. Функцию для библиотеки можно взять из предыдущего упражнения. Я назвал файл библиотеки "my_lib.py". Обращаться к нему я буду: "import my_lib".
Код:
import my_lib
digits = range(1, 13)
lines = ("", "Two turtle doves,", "Three French hens,", "Four calling birds,", "Five golden rings", "Six geese-a-laying,", "Seven swans-a-swimming,", "Eight maids-a-milking,", "Nine drummers drumming,", "Ten pipers piping,", "Eleven ladies dancing,", "Twelve lords-a-leaping,")
count = 0
plus = str()
print()
for a, b in zip(digits, lines):
if count == 0:
print("On the", my_lib.my_function(a) , "day of Christmas")
print("my true love sent to me:")
print("A partridge in a pear tree.")
print()
else:
print("On the", my_lib.my_function(a) , "day of Christmas")
print("my true love sent to me:")
plus = b + "\n" + plus
print(plus, end="")
print("And a partridge in a pear tree.")
print()
count += 1
Код библиотеки:
def my_function(digit):
our_dict = {
1: "first",
2: "second",
3: "third",
4: "fourth",
5: "fifth",
6: "sixth",
7: "seventh",
8: "eighth",
9: "ninth",
10: "tenth",
11: "eleventh",
12: "twelfth"
}
return our_dict[digit]