@ru_python

Страница 7591 из 9768
Max
01.01.2019
21:21:19
Логика такова, сначала идёт перебор из списка b, после находится сумма 0-3 элемента списка, потом 3-6 и.т.д, затем эти значения отправляются в список m

Когда суммы одинаковые, цикл должен остановиться

Aragaer
01.01.2019
21:22:16
это логика. А на самом деле происходит следующее: До тех пор, пока все элементы в списке не будут одинаковыми делать следующее: - пробежать по всем перестановкам и для каждой перестановки заменить список на набор значений.

как результат, после окончания прохода по всем перестановкам твой список содержит значения, соответствующие последней перестановке

Google
Aragaer
01.01.2019
21:22:52
вывод - твое использование while некорректно

тебе вообще нужен всего один проход по всем перестановкам

поэтому ... убери нафиг while. Вот совсем

while это условная конструкция. Это не значит "как только условие выполнилось, сразу все". Это значит "проверить условие. Если оно истинно, то выполнить все, что в теле цикла, а потом еще раз проверить"

Max
01.01.2019
21:27:08
Все, спасибо передал с if, и все работает

Aragaer
01.01.2019
21:27:23
if и break я надеюсь 8)

Max
01.01.2019
21:27:49
if и break я надеюсь 8)
Естественно

Политический глобус
01.01.2019
22:30:09
Есть один скрипт... нужно запускать его через прокси, только у меня не получается этого сделать. Вроде бы мануалов в интернете сплошь да рядом, но при попытке определить свою геолокацию через скрипт мне выдаёт своё же местоположение. Как мне с этим быть?

Политический глобус
01.01.2019
23:00:25
Владимир
01.01.2019
23:10:59
requests
Ему надо передавать прокси в параметрах метода

dd if=/dev/zero of=/dev/null
01.01.2019
23:31:09
посовейтусь прокси модуль какой нитть

Google
Artem
01.01.2019
23:48:55
thread или asyncio?

Никита
01.01.2019
23:49:06
thread или asyncio?
Для чего?

Artem
01.01.2019
23:49:19
Для бота

Мне как то порекомендовали aiogram, но я неочень в asyncio

Скрудж
01.01.2019
23:55:42
Асинк конечно

Потоки дорогие

Никита
01.01.2019
23:56:31
Для CPU bound задач лучше потоки

Denis
01.01.2019
23:57:28
Для CPU bound задач лучше rust

Никита
01.01.2019
23:57:45
Для io - go :)

Artem
02.01.2019
00:12:11
Асинк конечно
Есть где нормальный туториал по asyncio?

Никита
02.01.2019
00:19:32
Есть где нормальный туториал по asyncio?
Любой в топ 10 выдаче Гугла норм

Скрудж
02.01.2019
00:29:43
Владимир
02.01.2019
00:30:53
Для CPU bound задач лучше потоки
Потоки для CPU-bound в питоне сделают больно.

Никита
02.01.2019
00:31:24
Потоки для CPU-bound в питоне сделают больно.
Эх, это да Как то Гил вылетает из головы)

Dark
02.01.2019
05:00:17
Как связать питон и приложение на сишарп

Приложение должно быть запущено всегда, и генерить результаты когда питон попросит

Maxim robox
02.01.2019
05:02:29
X
02.01.2019
05:27:10
Как связать питон и приложение на сишарп
Сокеты? База? Файл? Они могут общаться через что угодно

Ы.
02.01.2019
06:11:06
Приложение должно быть запущено всегда, и генерить результаты когда питон попросит
Ну, пускай питон создаёт файл с логами которые должен подхватить Шарп, и отправляет запрос на включение Шарпа. Шарп в свою очередь после включения чекает файл и берет оттуда данные.

Google
Cepmol
02.01.2019
06:12:41
эти криворукие программисты не научили при миграции - мигрировать еще внутренние индексы самой кибаны ничего при этом не разломав

Сергей
02.01.2019
07:47:01
import asyncio import grequests import time async def snmp(): request = grequests.get('https://medium.com/) print(time.time()) async def main(): while True: await snmp() loop = asyncio.get_event_loop() loop.create_task(main()) loop.run_forever() и как получить и обработать респонс?
import asyncio from aiohttp import ClientSession import time async def snmp(session, url): async with session.get(url) as response: print(response.status, time.time()) text = await response.text() # Обработка async def main(): async with ClientSession() as session: while True: await snmp(session, 'https://medium.com/') loop = asyncio.get_event_loop() loop.create_task(main()) loop.run_forever()

Обещал вариант с aiohttp ^^^^

Сергей
02.01.2019
08:17:42
Все же зря все эти async await добавили в язык ради одного asyncio
Эти конструкции есть во многих языках, типа нельзя отставать от современных тенденций.

Aragaer
02.01.2019
08:18:12
в каких многих?

Владимир
02.01.2019
08:19:09
Джс видимо)))

Сергей
02.01.2019
08:19:13
Навскидку: JS, C#

Aragaer
02.01.2019
08:19:38
второе и первое места в списке языков, с которыми я не хочу иметь ничего общего. Как символично 8)

Владимир
02.01.2019
08:19:42
Эти конструкции есть во многих языках, типа нельзя отставать от современных тенденций.
Я не очень согласен. В питоне все это привязано к библиотеке асинкайо. Получился франкенштейн. Конструкции вставили в язык, а для работы нужен асинкайо

Aragaer
02.01.2019
08:20:44
мне больше нравится как в го асинхронщина сделана

Сергей
02.01.2019
08:20:58
Новым языкам в чем то легче, они проектируются уже с учетом асинхронного выполнения (Golang, например), а что делать старым языкам?

Владимир
02.01.2019
08:21:10
мне больше нравится как в го асинхронщина сделана
Го изначаельно же под это затачивался. Там все это незаметно, скрыто от пользователя

Никита
02.01.2019
08:21:50
Admin
ERROR: S client not available

Владимир
02.01.2019
08:21:55
Новым языкам в чем то легче, они проектируются уже с учетом асинхронного выполнения (Golang, например), а что делать старым языкам?
Использовать сторонние решения, если не получилось органично встроить. Можно же было Гевент использовать, да и сопрограммы уже больше 10 лет существуют в питоне. Все это можно было давно уже делать. Использование и появление асинкайо просто слегка загадили язык. Разве что Светлов теперь может обучающие курсы по асинайо продавать ))

Сергей
02.01.2019
08:23:38
Гвидо очень было трудно, какое бы решение он не принял, всегда найдутся довольные и недовольные этим решением (взять хотя бы "моржика" := )

Владимир
02.01.2019
08:24:33
И моржик, и асинкайо видимо и были причины, по которым он свалил со словами: "Я устал, я ухожу"

Концепт кооперативного исполнения был, его использовали. Я так и до сих пор и не понимаю зачем было впихивать этого франкенштейна. Жизнь он совсем не облегчил, программы чище сильно не стали)

Google
Сергей
02.01.2019
08:25:49
В защиту async/await могу сказать, что можно их и не использовать, пользоваться синхронным способом или использовать gevent

он не захотел быть пусть даже добродушным, но диктатором: "как я сказал, так и будет". Вместо этого были дискуссии

Maxim
02.01.2019
09:23:12
например, правильный код обрабатывает 500 запросов за 11,3 секунды: import requests import asyncio def get_resp(): r = requests.get('https://medium.com') return r.text async def main(): futures = [ loop.run_in_executor( None, get_resp, ) for i in range(500) ] for response in await asyncio.gather(*futures): pass #print(response) if __name__ == '__main__': a=time.time() loop = asyncio.get_event_loop() loop.run_until_complete(main()) print(time.time()-a)

проблема в том, что вышеуказанный код выдает все реузльтаты вместе, а не по мере получения

Сергей
02.01.2019
09:25:15
спасибо, но такой вариант не дает никакого прироста скорости по сравнению с синхрнонным,
А он и не даст, именно поэтому я вчера сказал, что здесь не нужна асинхронщина. Для тех целей, что ты описал, вообще не нужна асинхронщина

Сергей
02.01.2019
09:27:58
но этот же дает?
Что он даёт? В нем ты делаешь 500 запросов, почти одновременно, ждёшь, когда они всё выполнятся, потом обрабатываешь результаты. Как 500 запросов за короткое время поможет информировать, что данные на странице изменились?

Maxim
02.01.2019
09:28:54
ну он дает скорость 50 запросов/ответов в секунду

Замени return на yield
не работает)

Сергей
02.01.2019
09:30:09
ну он дает скорость 50 запросов/ответов в секунду
Зачем такая скорость реагирования? Тебя быстро забанят на этом сайте

Maxim
02.01.2019
09:30:39
ну не 50, а максимально допустимая без бана чтобы среагировать на изменение контента как можно быстрее

Сергей
02.01.2019
09:35:29
Потому что в первом варианте ты ответы получишь только через 11 секунд (все 500 сразу), какой в этом для тебя смысл. В моем (точнее, в твоём варианте, переделанным для aiohttp) первый ответ ты получишь через 1/3 секунды, т.е. будешь получать 3 ответа в секунду тут же, а не через 11 секунд

Maxim
02.01.2019
09:38:20
да, но почему в твоем варинте не получается через 1/20 получать? т.е. начинаем асинхронно отправлять запросы через 1/20 секунды и через 1/3 секунды начинают приходить овтеты

это логично же ,нет?

Сергей
02.01.2019
09:39:06
Асинхронный код чаще всего используют именно как в первом варианте, но не для быстрого реагирования, а для максимального количества операций за определенное время (скачивание картинок, скрапинг)

Maxim
02.01.2019
09:39:48


Google
Maxim
02.01.2019
09:40:22
а что использовать для быстрого реагирования)?

Страница 7591 из 9768