# Python tasks Оставляю подсказочки, но сперва попробуй сам решить ## 1. Среднее арифметическое Дан массив чисел. Найти среднее арифметическое. ```python= def average(nums): #implement me numbers = [10, 20] avg = average(numbers) print(avg) ``` :::warning :::spoiler Подсказочка У питона есть стандартные ф-ции для нахождения суммы, а также для определения длинны листа. Если суммировать "руками", то нужно создать переменную с изначальным значением 0 и в цикле суммировать каждый элемент массива в нее. ::: ## 2. Найти самого младшего человека Дан класс Human. Реализовать ф-цию, которая найдет самого младшего человека в списке. ```python= class Human: def __init__(self, name, age): self.name = name self.age = age def __str__(self): return f'My name is {self.name} and I am {self.age} years old.' def find_youngest(list_of_humans): # implement me humans = [ Human('Peter', 33), Human('Julia', 25), Human('Simon', 22), Human('Amanda', 31), Human('Stew', 40) ] youngest = find_youngest(humans) print(youngest) # Should print: # My name is Simon and I am 22 years old. ``` :::warning :::spoiler Подсказочка Можно использовать дополнительную переменную, которая и будет обозначать самого молодого и до цикла присвоить, к примеру первого человека в списке. В цикле проверять, если возраст текущего меньше, чем возраст человека в этой переменной, то присвоить текущего человека ей. ::: ## 3. Игра Fizz Buzz Правила игры Fizz Buzz просты: * называются вслух числа подряд от 1; * Если число делится на 3, то вместо этого числа произносится Fizz. * Если число делиться на 4, то вместо него произноситься Buzz. * Если число делится и на 3 и на 5, то произносится FizzBuzz Реализовать ф-цию, которая принимает число до которого считать и возвращает последовательность FizzBuzz. ```python= def fizz_buzz(n): result = [] # implement me return result sequence = fizz_buzz(15) print(sequence) # Should print: # [1, 2, 'Fizz', 'Buzz', 5, 'Fizz', 7, 'Buzz', 'Fizz', 10, 11, 'FizzBuzz', 13, 14, 'Fizz'] ``` :::warning :::spoiler Подсказочка Для прохода от 1 до n можно использовать либо цикл while, либо сгенерировать список чисел от 1 до n и потом использовать for. Для определения делится ли число на другое число на целом нужно использовать операцию остаток от деления (если 0 - значит делится нацело) и добавлять в список result либо число, либо нужное слово. ::: ## 4. Заменить слова в шаблоне письма Дан шаблон письма, которое приходит сотруднику в первый день работы: ``` Hello, [Employe]! Welcome to [Company], we are very excited to see you here. Your first assignment is [Assignment], please complete it before [DueDate]. Cheers, [Sender] ``` Написать ф-цию compile_welcome_email, которая заменит переменные в письме на значения из переменной типа WelcomeEmailVariables. ```python= import datetime class WelcomeEmailVariables: def __init__(self, employe, company, assignment, due_date, sender): self.employe = employe self.company = company self.assignment = assignment self.due_date = due_date self.sender = sender def compile_welcome_email(vars): template = """Hello, [Employe]! Welcome to [Company], we are very excited to see you here. Your first assignment is [Assignment], please complete it before [DueDate]. Cheers, [Sender]""" # implement me vars_of_vasya = WelcomeEmailVariables('Vasya', 'Slaves Corp.', 'to do very important task', datetime.date(2020, 12, 30), 'Your boss') email = compile_welcome_email(vars_of_vasya) print(email) # Should print: # Hello, Vasya! # # Welcome to Slaves Corp., we are very excited to see you here. # Your first assignment is to do very important task, please complete it before 2020-12-30. # # Cheers, # Your boss ``` :::warning :::spoiler Подсказочка Тут достаточно использовать стандартный метод строки .replace(old, new) :::