class WordComparator:
def compare(self, word1: str, word2: str) -> int:
"Вернет -1 если первое слово лучше, 1 если второе слово лучше, 0 если они одинаково хороши"
raise NotImplementedError #реализации у нас нет
class LongestWordWins(WordComparator):
def compare(self, word1: str, word2: str) -> int:
l1, l2 = len(word1), len(word2)
if l1 > l2:
return -1
elif l1 < l2:
return 1
else:
return 0
class ShortestWordWins(WordComparator):
def compare(self, word1: str, word2: str) -> int:
l1, l2 = len(word1), len(word2)
if l1 > l2:
return 1
elif l1 < l2:
return -1
else:
return 0
im = Image.open('IMG_7760.JPG')
a = np.asarray(im) # a - трёхмерный массив numpy (высота; ширина; каналы)
for bb in a: # перебираешь элементы по первому индексу (высоте), т.е. строки изображения
np.random.random((1,1,1)) * a #умножаешь каждый элемент (кортеж RGB) строки на одно и то же случайное число
#и всё. Полученное произведение выбрасывается за ненадобностью. Оригинальное значение ты не заменяешь ведь.
im = Image.fromarray(bb) #*строку* превращаешь в объект PIL.Image
im.save('2222.JPG') #и сохраняешь этот объект в файл
print(bb) #и выводишь на экран
startfile() returns as soon as the associated application is launched. There is no option to wait for the application to close, and no way to retrieve the application’s exit status.
# HELP
bot.remove_command("help")
@bot.command(command/help.py)
# PROFILE
bot.remove_command("profile")
@bot.command(command/profile.py)
session_id = requests.post(
"https://yug-krdr-itv04.svc.iptv.rt.ru/api/v2/user/sessions",
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)", "session_id": sess_id},
json={"login": email, "login_type": "email", "password": "1234567"},
).json() # значение session_id может быть не только строкой, но и целым числом, словарём, списком или None
return {"san": san, "session_id": session_id, "uid": ud} #в словарь оно пишется как есть
def requestBuilderWink(url, data=None, params=None, json=None, method=None):
register = regAccount()
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
"session_id": register["session_id"], # а потом используется как заголовок - тоже как есть
"x-rt-uid": register["uid"],
"x-rt-san": register["san"],
}
# вместо client.event может быть bot.event, смотря как названа переменная с объектом бота
@client.event
async def on_message(message):
# отсеиваем сообщения, которые отправили мы сами
if message.author == client.user:
return
# а вот тут мы проверяем содержимое сообщения. Это пример.
# Реальную логику проверки, разумеется, пишешь самостоятельно, под свои нужды.
if message.content.startswith('$hello'):
await message.channel.send('Hello!')
import asyncio
loop = asyncio.get_event_loop()
bot = Bot(token=TOKEN)
dp = Dispatcher(bot=bot)
async def delay_exit():
#запускаем input() без параметров в отдельном потоке
# await не продолжит выполнение, пока поток не отработает
# но в то же время цикл бота будет работать независимо от этого потока
await loop.run_in_executor(None, input)
dp.stop_polling()
await dp.wait_closed()
await bot.close()
if __name__ == '__main__':
loop.create_task(delay_exit()) # планируем выполнение delay_exit() и продолжаем
loop.run_until_complete(dp.start_polling()) # работаем, пока dp.start_polling() не выполнится