Last active
March 23, 2023 11:52
-
-
Save yakreved/4f6007dffb4cde069e601f8ba7a5652e to your computer and use it in GitHub Desktop.
Задачки для собеседования джуна Python
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Удобно спрашивать через шар экрана и https://www.online-python.com/ | |
import datetime | |
import math | |
import json | |
from typing import List | |
# 1. Создайте класс Студнт с полями Имя, Факультет, Дата Рождения | |
class Student(): | |
def __init__(self, name: str, faculty: str, birth_date: datetime.datetime): | |
self.name, self.faculty, self.birth_date = name, faculty, birth_date | |
# 2. Создайте в Классе студент метод age, возвращающий возраст | |
def age(self): | |
return math.floor((datetime.datetime.now() - self.birth_date).days/365) | |
def first_letters_same(self): | |
names = self.name.split() | |
letter = names[0][0] | |
for n in names: | |
if n[0] != letter: | |
return False | |
return True | |
def __str__(self): | |
# 3* Сделайте печать списка студентов ровной | |
return f'{self.name:50s} {self.faculty:30s} {self.age()}' | |
# 0. Дан список студентов | |
student_1 = Student('Иванов Иван Иванович', 'Математический', datetime.datetime(1992,1,1)) | |
student_2 = Student('Петров Петр Петрович', 'Математический', datetime.datetime(1995,5,5)) | |
student_3 = Student('Медведева Мария Михайловна', 'Филологический', datetime.datetime(1993,3,3)) | |
student_4 = Student('Хлыщеборщ Ядвига Вениаминовна', 'Исторический', datetime.datetime(1995,5,5)) | |
student_5 = Student('Ульянов Владимир Ильич', 'Исторический', datetime.datetime(1870,10,22)) | |
students = [student_1, student_2, student_3, student_4, student_5] | |
# 3. Сделайте функцию, печатающую список студентов | |
def print_students(students: List[Student]): | |
for s in students: | |
print(s) | |
print_students(students) | |
# 4. Создайте функцию, возвращающую стдентов, у которых имя, фамилия и отчество начинаются на одну и ту-же букву | |
def filter_first_letters_same(students: List[Student]): | |
return list(filter(lambda x: x.first_letters_same(), students)) | |
print('\n\n') | |
print_students(filter_first_letters_same(students)) | |
# 5. Создайте функцию, возвращающую стдентов заданного факультета | |
def filter_students_by_faculty(faculty: str, students: List[Student]): | |
return list(filter(lambda x: x.faculty == faculty, students)) | |
print('\n\n') | |
print_students(filter_students_by_faculty('Исторический',students)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment