Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 1
- class Human:
- def __init__(self, name, age, gender, profit, ubitok):
- self.type = 'Человек'
- self.name = name
- self.age = age
- self.gender = gender
- self.profit = profit
- self.ubitok = ubitok
- def getProfit(self):
- return sum(self.profit)/len(self.profit)
- def getUbitok(self):
- return sum(self.ubitok)/len(self.ubitok)
- def getInfo(self):
- return f'{self.type} {self.name}:\nВозраст: {self.age} лет\nПол: {self.gender == 0 and "Мужчина" or "Женщина"}\nСредний доход за {len(self.profit)} месяцев: {self.getProfit()}\nСредний убыток за {len(self.ubitok)} месяцев: {self.getUbitok()}'
- class PreSchool(Human):
- def __init__(self, name, age, gender, profit, ubitok):
- super().__init__(name, age, gender, profit, ubitok)
- self.type = 'Дошкольник'
- class Pupil(Human):
- def __init__(self, name, age, gender, profit, ubitok):
- super().__init__(name, age, gender, profit, ubitok)
- self.type = 'Школьник'
- class Student(Human):
- def __init__(self, name, age, gender, profit, ubitok):
- super().__init__(name, age, gender, profit, ubitok)
- self.type = 'Студент'
- class Worker(Human):
- def __init__(self, name, age, gender, profit, ubitok):
- super().__init__(name, age, gender, profit, ubitok)
- self.type = 'Работающий'
- print('Выбери род занятости:')
- print('0. Дошкольник')
- print('1. Школьник')
- print('2. Студент')
- print('3. Работающий')
- type = input()
- try:
- type = int(type)
- except:
- print('Введено не число')
- exit()
- print('Введи ФИО человека')
- name = input()
- print('Введи возраст человека')
- age = input()
- try:
- age = int(age)
- except:
- print('Введено не число')
- exit()
- print('Выбери пол человека:')
- print('0. Мужской')
- print('1. Женский')
- gender = input()
- try:
- gender = int(gender)
- except:
- print('Введено не число')
- exit()
- print('Введи через пробел доход человека за несколько месяцев (можно оставить пустым)')
- profit = input()
- profitArray = profit != '' and [int(x) for x in profit.split(' ')] or []
- print('Введи через пробел расход человека за несколько месяцев (можно оставить пустым)')
- ubitok = input()
- ubitokArray = ubitok != '' and [int(x) for x in ubitok.split(' ')] or []
- print('\n')
- human = None
- if type == 0:
- human = PreSchool(name, age, gender, profitArray, ubitokArray)
- elif type == 1:
- human = Pupil(name, age, gender, profitArray, ubitokArray)
- elif type == 2:
- human = Student(name, age, gender, profitArray, ubitokArray)
- elif type == 3:
- human = Worker(name, age, gender, profitArray, ubitokArray)
- else:
- human = Human(name, age, gender, profitArray, ubitokArray)
- print(human.getInfo())
- #2
- import math
- class Circle:
- def __init__(self, r):
- self.radius = r
- def getSquare(self):
- return math.pi * self.radius * self.radius
- def getPerimeter(self):
- return math.pi * 2 * self.radius
- class Rectangle:
- def __init__(self, w, h):
- self.width = w
- self.height = h
- def getSquare(self):
- return self.width * self.height
- def getPerimeter(self):
- return 2 * (self.width + self.height)
- class Triangle:
- def __init__(self, a, b, c):
- self.a = a
- self.b = b
- self.c = c
- def getSquare(self):
- p = self.getPerimeter()/2
- return math.sqrt(p * (p-self.a) * (p-self.b) * (p-self.c))
- def getPerimeter(self):
- return self.a + self.b + self.c
- print('Выбери тип фигуры:')
- print('0. Круг')
- print('1. Прямоугольник')
- print('2. Треугольник')
- type = input()
- try:
- type = int(type)
- except:
- print('Введено не число')
- exit()
- if type == 0:
- radius = input('Введи радиус круга: ')
- try:
- radius = int(radius)
- except:
- print('Введено не число')
- exit()
- print('\n')
- circle = Circle(radius)
- print(f'Периметр круга: {circle.getPerimeter()} ({circle.getPerimeter()/math.pi} π)\nПлощадь круга: {circle.getSquare()} ({circle.getSquare()/math.pi} π)')
- elif type == 1:
- sides = input('Введи ширину и высоту прямоугольника через пробел: ')
- try:
- sides = [int(a) for a in sides.split(' ')]
- sides[1]
- except:
- print('Ты ввел меньше 2х чисел')
- exit()
- print('\n')
- rectangle = Rectangle(sides[0], sides[1])
- print(f'Периметр прямоугольника: {rectangle.getPerimeter()}\nПлощадь прямоугольника: {rectangle.getSquare()}')
- elif type == 2:
- sides = input('Введи три стороны треугольника через пробел: ')
- try:
- sides = [int(a) for a in sides.split(' ')]
- sides[2]
- except:
- print('Ты ввел меньше 3х чисел')
- exit()
- print('\n')
- triangle = Triangle(sides[0], sides[1], sides[2])
- print(f'Периметр треугольника: {triangle.getPerimeter()}\nПлощадь треугольника: {triangle.getSquare()}')
- #3
- import time
- def benchmark(func):
- def decorator():
- start = time.time()
- val = func()
- print(f'Функция выполнилась за {time.time() - start} секунд')
- return val
- return decorator
- @benchmark
- def func():
- x = 1
- for i in range(1,10000):
- x = x * i
- return x
- func()
- #4
- def decorator(func):
- def fancy():
- val = func()
- print(f'1 + 1 = {val}')
- return val
- return fancy
- @decorator
- def count():
- return 1+1
- print(count())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement