Advertisement
doxzter

Untitled

Dec 11th, 2022 (edited)
744
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.17 KB | None | 0 0
  1. # 1
  2. class Human:
  3.     def __init__(self, name, age, gender, profit, ubitok):
  4.         self.type = 'Человек'
  5.         self.name = name
  6.         self.age = age
  7.         self.gender = gender
  8.         self.profit = profit
  9.         self.ubitok = ubitok
  10.    
  11.     def getProfit(self):
  12.         return sum(self.profit)/len(self.profit)
  13.    
  14.     def getUbitok(self):
  15.         return sum(self.ubitok)/len(self.ubitok)
  16.  
  17.     def getInfo(self):
  18.         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()}'
  19.  
  20. class PreSchool(Human):
  21.     def __init__(self, name, age, gender, profit, ubitok):
  22.         super().__init__(name, age, gender, profit, ubitok)
  23.         self.type = 'Дошкольник'
  24.  
  25. class Pupil(Human):
  26.     def __init__(self, name, age, gender, profit, ubitok):
  27.         super().__init__(name, age, gender, profit, ubitok)
  28.         self.type = 'Школьник'
  29.  
  30. class Student(Human):
  31.     def __init__(self, name, age, gender, profit, ubitok):
  32.         super().__init__(name, age, gender, profit, ubitok)
  33.         self.type = 'Студент'
  34.  
  35. class Worker(Human):
  36.     def __init__(self, name, age, gender, profit, ubitok):
  37.         super().__init__(name, age, gender, profit, ubitok)
  38.         self.type = 'Работающий'
  39.  
  40. print('Выбери род занятости:')
  41. print('0. Дошкольник')
  42. print('1. Школьник')
  43. print('2. Студент')
  44. print('3. Работающий')
  45.  
  46. type = input()
  47. try:
  48.     type = int(type)
  49. except:
  50.     print('Введено не число')
  51.     exit()
  52.  
  53. print('Введи ФИО человека')
  54. name = input()
  55.  
  56. print('Введи возраст человека')
  57. age = input()
  58. try:
  59.     age = int(age)
  60. except:
  61.     print('Введено не число')
  62.     exit()
  63.  
  64. print('Выбери пол человека:')
  65. print('0. Мужской')
  66. print('1. Женский')
  67. gender = input()
  68. try:
  69.     gender = int(gender)
  70. except:
  71.     print('Введено не число')
  72.     exit()
  73.  
  74. print('Введи через пробел доход человека за несколько месяцев (можно оставить пустым)')
  75. profit = input()
  76. profitArray = profit != '' and [int(x) for x in profit.split(' ')] or []
  77.  
  78. print('Введи через пробел расход человека за несколько месяцев (можно оставить пустым)')
  79. ubitok = input()
  80. ubitokArray = ubitok != '' and [int(x) for x in ubitok.split(' ')] or []
  81.  
  82. print('\n')
  83.  
  84. human = None
  85. if type == 0:
  86.     human = PreSchool(name, age, gender, profitArray, ubitokArray)
  87. elif type == 1:
  88.     human = Pupil(name, age, gender, profitArray, ubitokArray)
  89. elif type == 2:
  90.     human = Student(name, age, gender, profitArray, ubitokArray)
  91. elif type == 3:
  92.     human = Worker(name, age, gender, profitArray, ubitokArray)
  93. else:
  94.     human = Human(name, age, gender, profitArray, ubitokArray)
  95.  
  96. print(human.getInfo())
  97.  
  98. #2
  99. import math
  100.  
  101. class Circle:
  102.     def __init__(self, r):
  103.         self.radius = r
  104.  
  105.     def getSquare(self):
  106.         return math.pi * self.radius * self.radius
  107.    
  108.     def getPerimeter(self):
  109.         return math.pi * 2 * self.radius
  110.  
  111. class Rectangle:
  112.     def __init__(self, w, h):
  113.         self.width = w
  114.         self.height = h
  115.  
  116.     def getSquare(self):
  117.         return self.width * self.height
  118.    
  119.     def getPerimeter(self):
  120.         return 2 * (self.width + self.height)
  121.  
  122. class Triangle:
  123.     def __init__(self, a, b, c):
  124.         self.a = a
  125.         self.b = b
  126.         self.c = c
  127.  
  128.     def getSquare(self):
  129.         p = self.getPerimeter()/2
  130.         return math.sqrt(p * (p-self.a) * (p-self.b) * (p-self.c))
  131.    
  132.     def getPerimeter(self):
  133.         return self.a + self.b + self.c
  134.  
  135. print('Выбери тип фигуры:')
  136. print('0. Круг')
  137. print('1. Прямоугольник')
  138. print('2. Треугольник')
  139.  
  140. type = input()
  141. try:
  142.     type = int(type)
  143. except:
  144.     print('Введено не число')
  145.     exit()
  146.  
  147. if type == 0:
  148.     radius = input('Введи радиус круга: ')
  149.     try:
  150.         radius = int(radius)
  151.     except:
  152.         print('Введено не число')
  153.         exit()
  154.  
  155.     print('\n')
  156.  
  157.     circle = Circle(radius)
  158.     print(f'Периметр круга: {circle.getPerimeter()} ({circle.getPerimeter()/math.pi} π)\nПлощадь круга: {circle.getSquare()} ({circle.getSquare()/math.pi} π)')
  159. elif type == 1:
  160.     sides = input('Введи ширину и высоту прямоугольника через пробел: ')
  161.     try:
  162.         sides = [int(a) for a in sides.split(' ')]
  163.         sides[1]
  164.     except:
  165.         print('Ты ввел меньше 2х чисел')
  166.         exit()
  167.  
  168.     print('\n')
  169.  
  170.     rectangle = Rectangle(sides[0], sides[1])
  171.     print(f'Периметр прямоугольника: {rectangle.getPerimeter()}\nПлощадь прямоугольника: {rectangle.getSquare()}')
  172. elif type == 2:
  173.     sides = input('Введи три стороны треугольника через пробел: ')
  174.     try:
  175.         sides = [int(a) for a in sides.split(' ')]
  176.         sides[2]
  177.     except:
  178.         print('Ты ввел меньше 3х чисел')
  179.         exit()
  180.  
  181.     print('\n')
  182.  
  183.     triangle = Triangle(sides[0], sides[1], sides[2])
  184.     print(f'Периметр треугольника: {triangle.getPerimeter()}\nПлощадь треугольника: {triangle.getSquare()}')
  185.  
  186. #3
  187. import time
  188.  
  189. def benchmark(func):
  190.     def decorator():
  191.         start = time.time()
  192.         val = func()
  193.         print(f'Функция выполнилась за {time.time() - start} секунд')
  194.         return val
  195.  
  196.     return decorator
  197.  
  198. @benchmark
  199. def func():
  200.     x = 1
  201.     for i in range(1,10000):
  202.         x = x * i
  203.     return x
  204.  
  205. func()
  206.  
  207. #4
  208. def decorator(func):
  209.     def fancy():
  210.         val = func()
  211.         print(f'1 + 1 = {val}')
  212.         return val
  213.  
  214.     return fancy
  215.  
  216. @decorator
  217. def count():
  218.     return 1+1
  219.  
  220. print(count())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement