Skip to content

Instantly share code, notes, and snippets.

@yakreved
Last active March 23, 2023 11:52
Show Gist options
  • Save yakreved/4f6007dffb4cde069e601f8ba7a5652e to your computer and use it in GitHub Desktop.
Save yakreved/4f6007dffb4cde069e601f8ba7a5652e to your computer and use it in GitHub Desktop.
Задачки для собеседования джуна Python
# Удобно спрашивать через шар экрана и 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