{}[()] = 0
word = 'what
from pydantic import BaseModel, validator
class Request(BaseModel):
text: str
client_id: str
@validator('text')
def str_to_lower(cls, text: str):
return text.lower()
print(Request(text='Lower To Lower', client_id='Client'))
text='lower to lower' client_id='Client'
import math
from collections import defaultdict
all_els = defaultdict(int)
all_els[1] = 1
max_length = 0
def new_element(el: int):
if not el % 2:
return math.ceil(el / 2)
return (3 * el) + 1
def find_length(el: int):
first_el = el
length = 1
while el != 1:
el = new_element(el)
if el in all_els:
length += all_els[el]
break
length += 1
all_els[first_el] = length
return length
for i in range(1, 10 ** 6):
if max_length < (result := find_length(i)):
max_length = result
print(max_length)
from pydantic import BaseModel, validator
keys = {
'1': 'one'
}
class User(BaseModel):
name: str = ''
key: str = ''
@validator('key')
def update_key(cls, value):
return keys.get(value, value)
user_1 = User.parse_obj({'name': 'Test User', 'key': '1'})
user_2 = User.parse_obj({'name': 'Test User', 'key': '2'})
print(user_1)
print(user_2)
name='Test User' key='one'
name='Test User' key='2'
from dataclasses import dataclass
@dataclass
class MoneyBox:
sum: float = 0
capacity: float = 100
def can_add(self, v):
v = getattr(v, 'sum', v)
return (self.sum + v) > self.capacity
def __iadd__(self, v):
if self.can_add(v):
raise ValueError('Больше нельзя')
if isinstance(v, MoneyBox):
self.sum += v.sum
elif isinstance(v, (float, int)):
self.sum += v
else:
raise TypeError(f'Не поддерживается тип {type(v)}')
return self
money_box = MoneyBox()
money_box_any = MoneyBox(10)
money_box += money_box_any
print(money_box)
money_box += 10
print(money_box)
money_box += '123'
Traceback (most recent call last):
File "C:/Users/User/PycharmProjects/test/tmp.py", line 1, in <module>
from a import load
File "C:\Users\User\PycharmProjects\test\a.py", line 34, in <module>
money_box += '123'
File "C:\Users\User\PycharmProjects\test\a.py", line 18, in __iadd__
raise TypeError(f'Не поддерживается тип {type(v)}')
TypeError: Не поддерживается тип <class 'str'>
MoneyBox(capacity=0, sum=10)
MoneyBox(capacity=0, sum=20)
from random import randint
from textwrap import wrap
json_users = {randint(10000000, 9999999999): {
"Warn": randint(1, 10), "Moderator": randint(10000000, 9999999999), "Reason": "1.3"}
for _ in range(100)
}
warns = ''
for user, data in json_users.items():
moder, reason = data['Moderator'], data['Reason']
warns += f'**Пользователь: {user}** \n**Модератор: {moder}** \n**Причина: {reason}**.\t'
for chunk in wrap(warns, 400):
print(chunk, '##new_line')
from pprint import pprint
import requests
data = requests.get('https://www.cbr-xml-daily.ru/daily_json.js').json()
pprint(data['Valute']['USD'])
{'CharCode': 'USD',
'ID': 'R01235',
'Name': 'Доллар США',
'Nominal': 1,
'NumCode': '840',
'Previous': 74.1373,
'Value': 74.1567}
from dataclasses import dataclass
@dataclass
class Summoner:
id: str = ''
accountId: str = ''
puuid: str = ''
name: str = ''
profileIconId: str = ''
revisionDate: str = ''
summonerLevel: str = ''
async def SummonerByName(self, region, summonerName):
response = await self.fetch(
await self.summoner_v4.SummonerByName(
region=region,
summonerName=summonerName,
)
)
return Summoner(**response)
def __add__(self, query):
self.arr.extend(query.arr)
return self
from pathlib import Path
backup_path = 'c:/temp/mybackups/Drive-C/Users/User/AppData/Local/Temp/scp26772/home/admin/web'
p = Path(backup_path)
index = p.parts.index('home')
new_path = Path('c:/temp/mybackups/WinScp').joinpath(*p.parts[index:])
print(new_path)
class CmdHandler:
def __init__(self, server):
self.somearg = 1
self.__dict__.update({k: v for k, v in server.__dict__.items() if not k.startswith("_")})
class Server(object):
def __init__(self):
self.event = "None Server "
self.obj = None
self.cmd = None
self.args = None
def handler(self):
return CmdHandler(self)
h = Server().handler()
print(h.event)
>None Server
#End flags
End_a=
- все это можно заменить на словарь листов или совсем убрать этот список, а просто считать количество обработок, и сравнивать их с длиной списка.>>> l = ['abc', 'apple', 'pen', 'abc', 'pen', 'pc']
>>> index_els = {v: k for k, v in reversed(tuple(enumerate(l)))}
>>> result = [index_els[k] for k in l]
>>> result
[0, 1, 2, 0, 2, 5]
from dataclasses import dataclass
@dataclass
class Record:
times: str = None
name: str = None
room: str = None
array = ["1-ая пара, предмет, аудитория", "2-ая пара, предмет, аудитория",
"2-ая пара, предмет, аудитория", "4-ая пара, предмет, аудитория"]
schedule = [Record(*v.split(',')) for v in array]
new_parsing_times = ["9:40 - 10:30", "10:40 - 12:10", "12:50 - 14:20", "14:30 - 16:00"]
for record, new_times in zip(schedule, new_parsing_times):
record.times = new_times
print(schedule)
import re
input_file = """This is line #aabbcc #ddeeff
This is line #aab66c #ddee44
This is line #aabbcc #cceeff #aa11cc #dd22ff
This is line #aabbcc #ddee00 #dd11ff"""
pattern = re.compile(r'#\w{6}')
def invert(color_to_convert):
table = "".maketrans('0123456789abcdef', 'fedcba9876543210')
return color_to_convert.lower().translate(table).upper()
def replace(s: str):
colors = [invert(color) for color in pattern.findall(s)]
s = pattern.sub("{}", s)
return s.format(*colors)
for line in input_file.split('\n'):
print(replace(line))
This is line #554433 #221100
This is line #554993 #2211BB
This is line #554433 #331100 #55EE33 #22DD00
This is line #554433 #2211FF #22EE00
import asyncio
from time import time
els = list(range(20))
async def rm_list(v):
await asyncio.sleep(5)
print(v)
async def _main():
await asyncio.gather(*(
rm_list(value) for value in els
))
start = time()
loop = asyncio.get_event_loop()
loop.run_until_complete(_main())
loop.close()
print(time() - start)
sells={
... "Маша":"Samsung 20",
... "Максим":"Iphone 6S",
... "Наташа":"Lenovo Legion"
... }
prices={
... "Samsung 20": 300,
... "Iphone 6S": 260,
... "Lenovo Legion": 450
... }
result = [name for name, tel in sells.items() if prices.get(tel, 999) < 350]
>>> print(result)
['Маша', 'Максим']