class CustomError(Exception):
description = 'CustomError description'
def rule(self, instance, *args, **kwargs):
pass
class FileExtensionError(CustomError):
description = 'FileExtensionError description'
def rule(self, instance, *args, **kwargs):
return upload_fail(message=self.description) # сюда лучше воткнуть тело upload_fail
def decorator(controller_func):
def wrapper(instance, *args, **kwargs):
try:
return controller_func(instance, *args, **kwargs)
except CustomError as e:
return e.rule(instance, *args, **kwargs)
return wrapper
def foo(args):
other_args = do_something()
foo(other_args)
всегда приводится к видуdef foo(args):
while condition:
args = do_something()
В твоём случае эквивалентный кодdef func():
while True:
x, y = randint(1, 10), randint(1, 10)
if x == 1 and y == 1:
print(x, y)
def foo(args):
other_args = do_something()
foo(other_args)
another_args = do_something_else()
foo(another_args)
import re
def checking(s: str) -> bool:
return bool(re.match(r'^(.+ )*[a-z]+ [a-z]+ [a-z]+( .+)*', s, flags=re.I))
for i in range(0x0410, 0x0450):
print(chr(i), end='')
print()
for i in range(192, 256):
print(bytes([i]).decode('KOI8-R'), end='')
Разница понятна? class A:
def __init__(self):
self.b = 'b'
a = A()
print(type(a.b)) # <class 'str'>
Как думаешь, знает объект типа str хоть что-нибудь об объектах класса A? intro: "Испеки мне колобок"
choise:
- "по сусекам поскреби":
intro: "испекла. Что сделал колобок"
choise:
- "покатился с окна на заваленку":
intro: "встретил зайца"
choise:
- "я тебе песенку спою":
intro: "спел песенку, а навстречу волк"
choise:
- "я уже чёрствым стал":
final: "Волк поломал зубы"
- "отнеси к дедушке с бабушкой":
final: "Волк бросил колобка в речку"
- "я тебе песенку спою":
final: "колобок встретил медведя"
- "попробуй меня догнать":
intro: "прошмыгнул между ног зайца"
- "Не успел ответить":
final: "заяц его съел"
- "скатился на лавку"
- "остался остывать на окне"
- "свари мне каши":
final: "Старуха сварила кашу"
- "пойду на базар":
final: "медведь его съел"
import yaml
with open('kolobok.yaml') as f:
root = yaml.load(f, Loader=yaml.FullLoader)
def dfs(d):
if 'intro' in d:
print(d['intro'])
if 'final' in d:
print(d['final'])
exit(0)
if 'choise' in d:
print('выберите цифру ответа')
choise = d['choise']
for i, p in enumerate(choise, 1):
print(i, next(iter(p)) if type(p) is dict else p)
while True:
try:
answer = input()
i = int(answer) - 1
if not 0 <= i < len(choise):
raise ValueError
except ValueError:
print(f'ответ "{answer}" не поддерживается, пробуй ещё:')
p = choise[i]
if type(p) is dict:
dfs(p.popitem()[1])
else:
print(p)
exit(0)
dfs(root)
addr = 'topKey1/subKey1'
res = myDict
for key in addr.split('/'):
res = res[key]
print(res)
from random import randrange
data, res = [str(randrange(1000)) for _ in range(10)], 0
for le in range(max(len(s) for s in data), 0, -1):
print('data:', *data)
head, tail = [], []
for s in data:
(head if len(s) < le else tail).append(s)
data = head
for s in sorted(tail):
data.append(s[1:])
if s[0] != '9':
t = '9' + s[1:]
delta = int(t) - int(s)
res += delta
print(f'{s:>4} -> {t:<4} {delta:>4}')
print(f' итого{res:>9}')
"КОРАБЛИК"
consonants = "КРБЛ"
vovels = "ОАИ"
from itertools import permutations
# что за permutations? а вот:
for oai in permutations(vovels):
print(*oai, sep='')
print(sum(1 for krbl in permutations(consonants, 3)) # сколько перестановок согласных по 3
*
sum(1 for oai in permutations(vovels))) # и гласных
value, value2 = random.sample(range(1, 9), 2)