>>> u'сайт.рф'.encode('idna')
b'xn--80aswg.xn--p1ai'
>>> b'xn--80aswg.xn--p1ai'.decode('idna')
'сайт.рф'
from urllib.parse import urlparse,ParseResult,quote
u = urlparse("http://сайт.рф/тест/тест2")
encoded_url=ParseResult(u.scheme,u.netloc.encode('idna').decode('ascii'),quote(u.path),u.params,u.query,u.fragment).geturl()
>>> 'http://xn--80aswg.xn--p1ai/%D1%82%D0%B5%D1%81%D1%82/%D1%82%D0%B5%D1%81%D1%822'
class MyClient(discord.Client):
...
async def on_voice_state_update(self, member, before, after):
if after.channel and after.channel!=before.channel:
print(f"Пользователь {member.name} зашол на {after.channel.name}")
if before.channel and after.channel!=before.channel:
print(f"Пользователь {member.name} вышел с {before.channel.name}")
pip install <название пакета>
pip install --find-links C:\TEMP <название пакета>
from random import random
N = 100
#Создадим список компаний из 100 компаний цена от 2000 до 3000, качество от 150 до 200 единиц
orders = [{"name":"Company {0:03d}".format(x),"price":2000+int(random()*1000),"quality":150+int(random()*50)} for x in range(N)]
#отсортируем по отноцению цена/качество наиболее выгодные будут в внчале списка
orders = sorted(orders,key=lambda x: x["price"]/x["quality"])
print("Top 5:"+",\t".join(orders[0].keys()))#заголовок
#выведем 5 первых по выгоде
print("\n".join([",\t".join(map(str,x.values())) for x in orders[:5]]))
self.answer1 = Button(
frame, text="2", command=lambda: self.check(2)
)