Don’t create a session per request. Most likely you need a session per application which performs all requests altogether.
import asyncio
import aiohttp
async def call_url(url, session):
print('Starting {}'.format(url))
async with session.get(url) as response:
response = await session.get(url)
data = await response.text()
print('{}: {} bytes: {}'.format(url, len(data), data))
return data
async def run(urls):
async with aiohttp.ClientSession() as session:
futures = [call_url(url, session) for url in urls]
result = await asyncio.gather(*futures)
return result
if __name__ == '__main__':
urls = ['http://www.google.com',
'http://www.yandex.ru', 'http://www.python.org']
ioloop = asyncio.get_event_loop()
data = ioloop.run_until_complete(run(urls))
print(data)
ioloop.close()
>>> l = [{'name': 'C', 'price': 5}, {'name': 'A', 'price': 2}, {'name': 'B', 'price': 1}]
>>> newlist = sorted(l, key=lambda k: k['price'])
>>> newlist
[{'name': 'B', 'price': 1}, {'name': 'A', 'price': 2}, {'name': 'C', 'price': 5}]
>>> from operator import itemgetter
>>> newlist = sorted(l, key=itemgetter('price'))
>>> newlist
[{'name': 'B', 'price': 1}, {'name': 'A', 'price': 2}, {'name': 'C', 'price': 5}]
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('localhost', 9090)
print('starting up on {} port {}'.format(*server_address))
sock.bind(server_address)
sock.listen(1)
while True:
print('waiting for a connection')
connection, client_address = sock.accept()
try:
print('connection from', client_address)
while True:
data = connection.recv(1024)
print('received {!r}'.format(data))
if data:
print('sending data back to the client')
input_data = (data.decode())
expression = input_data[0] + input_data[2] + input_data[1]
result = eval(expression)
connection.sendall(str(result).encode())
else:
print('no data from', client_address)
break
finally:
connection.close()
import socket
sock = socket.socket()
sock.connect(('localhost', 9090))
a = input("a= ")
b = input("b= ")
do = input("+ - / * ")
message = a + b + do
sock.send(message.encode())
data = sock.recv(1024)
res = data.decode()
print(res)
sock.close()
print(["Bad","Good"][int(input() == "CC{Maybe_long_but_not_so_wise_snek}")])
>>> s = """))'''ALkFbIzIDWE}vJ=`}vJ?ehgP>fRpMXe4yS(`@HO|F;5SGcG)GsLhMM;cf-OzbU4S<EwNMdXzMMTSMgG<ev4SKoG)G)KN-O|ukDG@nm4SH(^nMkEE-OO#kDG1uv4SfPM*GdFYMMgEE-O+MU4S@=J;OZ}zfGSvD-Ouc@ePWS`fGVQW-O%8E-Oyl1fPpA`fGtWj^M1*kDGwoAfPpT0pMjLhMMMr=eGqs3NMqJM*GrKR^MO7`EGfVm4SXbM*Gp2{+Oz{D-OsoAfPbg_nMnEI^MBiqEGYoAfPo1rEGu134S8f_fG;of-O-8wNMh{-+OkilDGvNN-OkilDGXKR^M7WqEG;u@ePeQlDG{h&4SM}_fG?bv4SxRqMM!)bfPRMMgGqUqMM@=J;Oy!SfPO7`EG)KN-OUoG)Gz7C4S|ukDG!TW-OyOP`Lqo)-O|ukDG;tv4S$m_nMjLhMMAH=eG)u@ePjKE-OiLhMMzQJ;O*JU4SvS`fGNd+MMaQJ;O1uv4SvS`fGNd+MMhQf-O*JU4SvS`fGNd+MMkuJ;O{h&4S|}@iOvd+MMSG`fG!of-OkilDGkXzMMiKE-OjRqMM|}@iO$KN-OET=eG$)AfPqg~oMq#LNMkuJ;ObRqMMFQlDGrEE-OM}_fG)oAfP)50pMzcs^MET=eGuWf-OWoC*G}yoySB2k;O%7+3Se`k;O&V-xSZ=q)G0c%;Ojnn*G;G{?Cn+VjYebR&a*?ejfYz*%aL(}ZAC+IAa<{scG7CIoWCuw6c|#ByaFD8aAB+f7b*c+nC6J*Sbn4|?C1b9)Z1U*YbP9r1b-a9)Z~B(nWt{03b-a9)ZLb#&aC+D>X'''(cеxe(cexe;cеxe sa edoced58b tropmi 46esab morf"""
>>> s[::-1]
"from base64 import b85decode as exеc;exec(exеc('''X>D+Ca&#bLZ)9a-b30{tWn(B~Z)9a-b1r9PbY*U1Z)9b1C?|4nbS*J6Cn+c*b7f+BAa8DFayB#|c6wuCWoIC7Gcs{<aAI+CAZ}(La%*zYfje?*a&RbeYjV+nC?{G;G*nnjO;%c0G)q=ZSx-V&O;k`eS3+7%O;k2BSyoy}G*CoWO-fWuGe=TEM^sczMp05)PfAo)Gf_}MO-EErGDlQFMMqRbO;JukMNL#qMo~gqPfA)$Ge=TEO-NK$Oi@}|MMqRjO-EKiMMzXkGDlikO-fo!Gf`GSMM+dvOi@}|S4&h{O;JukMM+dNGf`SvS4UJ*O-fQhMM+dNGf`SvS4vu1O;JQaMM+dNGf`SvS4UJ*O;JQzMMhLiO-EKjPe@u)Ge=HAMMhLjMn_m$S4vt;GDku|O-)oqL`POyO-WT!GDku|S4C7zG)GoUO-NK)GE`7OPfS!yO;J=@MMqUqGgMMRPfb)!MMqRxS4vb?Gf_}MS4&h{GDlQePe@u;GEqW7M^RKXGDlikO-NNvGDlikO+-{hMNw8-O-fo;Gf_f8S431uGEr1oPfAoYGEqiBM^IEnMn_gbPfAosO-D{zO+{2pG*MbXS4mVfGE`7OM^RKrG*MJqMN3sqGe=rMMMhLjMp0TpPfAowGDk*1M^jWtGf`ApPf1lyO-E8%O-WQVGf`SWPe@cuO-DvSGfz}ZO;J=@S4UM+O-EEgMMYFdG*MPfS4vu1GDk#OO-EEkMn^(HS4mn@GDku|O-NK)G)GoKS4ve<GgMSTMMzXdMNwE<S4UbzO-fc;MMhLsG)GcGS5;F|OH@`(Sy4eXMpRf>Pghe?Jv}`=Jv}EWDIzIbFkLA'''))"
>>> from base64 import b85decode as exеc
>>> exеc('''X>D+Ca&#bLZ)9a-b30{tWn(B~Z)9a-b1r9PbY*U1Z)9b1C?|4nbS*J6Cn+c*b7f+BAa8DFayB#|c6wuCWoIC7Gcs{<aAI+CAZ}(La%*zYfje?*a&RbeYjV+nC?{G;G*nnjO;%c0G)q=ZSx-V&O;k`eS3+7%O;k2BSyoy}G*CoWO-fWuGe=TEM^sczMp05)PfAo)Gf_}MO-EErGDlQFMMqRbO;JukMNL#qMo~gqPfA)$Ge=TEO-NK$Oi@}|MMqRjO-EKiMMzXkGDlikO-fo!Gf`GSMM+dvOi@}|S4&h{O;JukMM+dNGf`SvS4UJ*O-fQhMM+dNGf`SvS4vu1O;JQaMM+dNGf`SvS4UJ*O;JQzMMhLiO-EKjPe@u)Ge=HAMMhLjMn_m$S4vt;GDku|O-)oqL`POyO-WT!GDku|S4C7zG)GoUO-NK)GE`7OPfS!yO;J=@MMqUqGgMMRPfb)!MMqRxS4vb?Gf_}MS4&h{GDlQePe@u;GEqW7M^RKXGDlikO-NNvGDlikO+-{hMNw8-O-fo;Gf_f8S431uGEr1oPfAoYGEqiBM^IEnMn_gbPfAosO-D{zO+{2pG*MbXS4mVfGE`7OM^RKrG*MJqMN3sqGe=rMMMhLjMp0TpPfAowGDk*1M^jWtGf`ApPf1lyO-E8%O-WQVGf`SWPe@cuO-DvSGfz}ZO;J=@S4UM+O-EEgMMYFdG*MPfS4vu1GDk#OO-EEkMn^(HS4mn@GDku|O-NK)G)GoKS4ve<GgMSTMMzXdMNwE<S4UbzO-fc;MMhLsG)GcGS5;F|OH@`(Sy4eXMpRf>Pghe?Jv}`=Jv}EWDIzIbFkLA''')
b'import codecs;exec(codecs.getencoder(\'rot-13\')("sebz onfr64 vzcbeg o32qrpbqr nf rkr\xd1\x81;rkrp(rkr\xd1\x81(\'ZI4TXLMVZW4KVMYOBWMTP6WBZMMT63YVZI4PDWMJTL3GRAGTTMFQRZOJTV3QPAMGTL2GTAEGTDMQNAEMTMFQBZOJZL3GRAMHTVLQZZEGTLMGVAEHTL2GZZMJZL3QVAEITVLQZZWKTZMQNAEIT43QZZWGTRMJRAEIT43QZZWJZZMQDAEIT43QZZWGTRMQDZEFTLMGVBOHZR3GNAEFTMFGXZWJZL2GBAMMTEDGVZMIUR2GBAWETL4GVLMHTZ2TPAOLTLMQTZEGUR3TRAOMTMEGTZWJTV3QPAWKTZ2GTZOHZV2QBAGQT42GZZMHUN2GZZMDTEEQVZMJZV3QBAWDTH2QTZOJT42QFAGPTEFGVAOJTHMGNZMETL4QZAWIT42TPAGQTH4QTZEKUN3GZAEFTMFQZAOJTL2GFAGSTH3QTZOIUNMGRZMIT43QZAOHTLMGFA3OTLMQTZWGURMGTAEETH4QVMWJZZ2GDZMGTEFGBAWIZR2GBAMHTZ4GVBWJUR3TTAEHTEEQXZWGZDMJVZEFTV4GRBWUSRKTVMYQA5FTXXOWSR======\'))")[0])'
>>> import codecs
>>> codecs.getencoder('rot-13')("sebz onfr64 vzcbeg o32qrpbqr nf rkr\xd1\x81;rkrp(rkr\xd1\x81(\'ZI4TXLMVZW4KVMYOBWMTP6WBZMMT63YVZI4PDWMJTL3GRAGTTMFQRZOJTV3QPAMGTL2GTAEGTDMQNAEMTMFQBZOJZL3GRAMHTVLQZZEGTLMGVAEHTL2GZZMJZL3QVAEITVLQZZWKTZMQNAEIT43QZZWGTRMJRAEIT43QZZWJZZMQDAEIT43QZZWGTRMQDZEFTLMGVBOHZR3GNAEFTMFGXZWJZL2GBAMMTEDGVZMIUR2GBAWETL4GVLMHTZ2TPAOLTLMQTZEGUR3TRAOMTMEGTZWJTV3QPAWKTZ2GTZOHZV2QBAGQT42GZZMHUN2GZZMDTEEQVZMJZV3QBAWDTH2QTZOJT42QFAGPTEFGVAOJTHMGNZMETL4QZAWIT42TPAGQTH4QTZEKUN3GZAEFTMFQZAOJTL2GFAGSTH3QTZOIUNMGRZMIT43QZAOHTLMGFA3OTLMQTZWGURMGTAEETH4QVMWJZZ2GDZMGTEFGBAWIZR2GBAMHTZ4GVBWJUR3TTAEHTEEQXZWGZDMJVZEFTV4GRBWUSRKTVMYQA5FTXXOWSR======\'))")
...
...
from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer
class HttpProcessor(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('content-type','text/html')
self.end_headers()
self.wfile.write("hello!")
serv = HTTPServer(("0.0.0.0",8080),HttpProcessor)
serv.serve_forever()
pip install -U pip --force-reinstall
I believe the error that you have was a bug in pip. You may want to try upgrading the pip that you have in your virtual environment.
x1,y1───────────┐
│ │
│ │
│ │
│ │
└───────────x2,y2
Прямоугольники (0,3,4,0), (4,7,7,3) и (7,3,10,0) будут выглядеть примерно так:
* * *
* * *
* * *
* * *
* * * * * * *
* * * * * * *
* * * * * * *
Рассмотрим три прямоугольника (0,3,4,0), (2,5,5,1) и (4,7,7,4):
* * *
* * *
* * + * *
* * *
* * + + *
* * + + *
* * * *
Рассмотрим прямоугольники (0,3,4,0), (2,5,5,1) и (3,3,0,6)
* * *
* * *
* * + x + *
* * + x + *
* * * + * *
A = (12 + 12 + 9) - (4 + 3 + 4) + (2) = 33 - 11 + 2 = 24
A = S1 - S2 + S3 - S4 + S5 - S6 + S7 - S8 + ...
S1 = 12 + 12 + 9
S2 = 4 + 3 + 4
S3 = 2
def bounding_box(rects):
return (min(r[0] for r in rects),
max(r[1] for r in rects),
max(r[2] for r in rects),
min(r[3] for r in rects))
def area(rect):
a, b, c, d = rect
return (c - a) * (b - d)
def clip(bb, rects):
if not rects:
return []
(x1, y1, x2, y2) = rects[0]
rs = rects[1:]
(a1, b1, a2, b2) = bb
if a1 == a2 or b1 == b2:
return []
if a1 >= x2 or a2 <= x1 or y1 <= b2 or y2 >= b1:
return clip(bb, rs)
result = [(max(a1, x1), min(b1, y1), min(a2, x2), max(b2, y2))]
return result + clip(bb, rs)
def cover(bb, rects):
if not rects:
return 0
rc = rects[0]
rs = rects[1:]
(a1, b1, a2, b2) = bb
(x1, y1, x2, y2) = rc
top = (a1, b1, a2, y1)
bottom = (a1, y2, a2, b2)
left = (a1, y1, x1, y2)
right = (x2, y1, a2, y2)
sum_area = sum(cover(x, clip(x, rs)) for x in [top, bottom, left, right])
return area(rc) + sum_area
def main():
width_canvas = 10
height_canvas = 10
rect1 = (0, 3, 4, 0)
rect2 = (2, 5, 5, 1)
rect3 = (3, 3, 6, 0)
rs = [rect1, rect2, rect3]
painted_area = cover(bounding_box(rs), rs)
canvas_area = width_canvas * height_canvas
unpainted_area = canvas_area - painted_area
print("Canvas area:", canvas_area)
print("Painted area:", painted_area)
print("Unpainted area:", unpainted_area)
if __name__ == '__main__':
main()
def listsum(numList):
if len(numList) == 1:
return numList[0]
else:
return numList[0] + listsum(numList[1:])
print(listsum([1,3,5,7,9]))
>>> data = [('config.h', '.\\mb_config.h', '83A7A716'), ('mainCpp.cpp', '.\\mainCpp.cpp', '30FCD925')]
>>> import pickle
>>> with open('data.pickle', 'wb') as fp:
... pickle.dump(data, fp)
...
>>> with open('data.pickle', 'rb') as fp:
... data_new = pickle.load(fp)
...
>>> data_new
[('config.h', '.\\mb_config.h', '83A7A716'), ('mainCpp.cpp', '.\\mainCpp.cpp', '30FCD925')]
An incoming HTML or XML entity is always converted into the corresponding Unicode character.
>>> from urllib.request import urlopen
>>> from bs4 import BeautifulSoup
>>> html = urlopen('https://beton24.ru/sochi/beton/')
>>> bs = BeautifulSoup(html.read(), 'lxml')
>>> result = bs.findAll("span", "catalog-index__link-text")[1]
>>> result.text.replace(u'\xa0',' ').replace(u'\u2009', '')
'от 3836 ₽'