from abc import ABC, abstractmethod
from math import sin, cos, pi
class Figure(ABC):
def __init__(self, height=2):
assert 1 < height < 20 # незачем больше
self.height = height
@abstractmethod
def draw(self):
pass
class Triangle(Figure):
def draw(self):
for i in range(self.height - 1):
print(f'{"/":>{self.height - i}}{"":>{i * 2}}\\')
print('─' * (self.height * 2))
class Square(Figure):
def draw(self):
w = self.height * 2 - 2
print('┌', '┐', sep='─' * w)
for _ in range(self.height - 2):
print('│', '│', sep=' ' * w)
print('└', '┘', sep='─' * w)
class Ellipse(Figure):
def __init__(self, height=7, width=None):
assert 6 < height < 20 # меньше никак
if width is None:
width = height
else:
assert 6 < width < 20
self.height, self.width = height, width
def draw(self):
buf = [[' '] * (self.width * 2) for _ in range(self.height)]
rx, ry = self.width - 1., self.height / 2 - .5
for i in range(100):
φ = i * pi / 50
buf[round(ry * (1 + sin(φ)))][round(rx * (1. + cos(φ)))] = '*'
for row in buf:
print(''.join(row))
Triangle(7).draw()
Square(7).draw()
Ellipse(7).draw()
Ellipse(17, 7).draw()
from itertools import combinations
print(*max(filter(lambda p: p[0] > p[1] and not sum(p) % 120,
combinations([int(input()) for _ in range(int(input()))], 2)), key=sum))
l, best = [-1] * 120, -1
for _ in range(int(input())):
x = int(input())
y = l[-x % 120]
if x < y > best - x:
yx, best = (y, x), y + x
l[x % 120] = max(l[x % 120], x)
print(*yx)
def print_shopping_list(*recipes):
res = {}
for recipe in recipes:
for k, v in recipe.items():
res[k] = res.get(k, 0.) + v
for k, v in res.items():
print(f'{k}: {v}')
print('------------------------------')
print_shopping_list(pizza, salad)
print_shopping_list(pizza, pizza, pizza)
matrix = [[int(input("Никитос, ну скоро уже? Давай, вводи."))
for x in range(100500)] for y in range(100500)]
randrange
на hash(input())
, и попробовать пропихнуть как решение.from numpy import zeros, uint32
from random import randrange
from sys import getsizeof
N = 10 ** 6
hashes = zeros(N, uint32)
print(f'hashes занимает {getsizeof(hashes)} байт')
control = set() # здесь считаем по-честному
for i in range(N):
# вместо строк я использую большие случайные числа
r = randrange(0x4000000000000000)
control.add(r)
# сохраняем последние 4 байта r - больше не лезет
hashes[i] = r & 0xffffffff
hashes.sort()
a, cnt = hashes[0], 1
for b in hashes:
if a != b:
a = b
cnt += 1
print(f'control - целых {getsizeof(control)} байт (для строк длиной до 1к было бы больше)')
print(f'{cnt:8} разных хэшей\n{len(control):8} разных чисел')
bitmap, cnt = bytearray(0x400000), 0
for _ in range(int(input())):
h, f = hash(input()), 0
for _ in range(16):
m = b'\x01\x02\x04\x08\x10\x20\x40\x80'[h & 7]
h = ((h >> 4) ^ i) | ((h & 15) << 60)
if not bitmap[h & 0x3fffff] & m:
bitmap[h & 0x3fffff] |= m
f = 1
cnt += f
print(cnt)
Средний рейтинг: 7.93
Средняя длина: 135.93
Средний бюджет: 37.96
Средние сборы: 347.99
def print_mean(data, column):
total = 0
for row in data:
total += row[column]
mean = total / len(data)
print('{:.2f}'.format(mean))
print_kwargs(wine='merlot') # переменная = "строковый литерал"
{'wine': 'merlot'} # {'строковый литерал': "строковый литерал"}
wine = merlot # переменная = переменная, вот только
# переменная merlot должна быть тобою прежде введена, например
merlot = "merlot"
'wine' = 'merlot' # Ну а это уж вовсе ересь
a = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'
a = list(a)
b = a
print(id(a) == id(b)) # True, a и b - один и тот же list
b = a[:]
print(id(a) == id(b)) # False, теперь разные
for i in a:
b += [i.upper()]
print(b)