
Alex
20.11.2018
21:21:53
```
code
```

Чингачгук
20.11.2018
21:23:10
И ещё: переменные S и N объявлены вне функции cos

?? Eugene
20.11.2018
21:24:29
Питон должен их найти по идее

Alex
20.11.2018
21:24:47

Google

Alex
20.11.2018
21:25:36
питон пытается присвоить значение локальной переменной n взяв значение локальной же переменной n + 1, которая не определена

Маришка
20.11.2018
21:25:41
Питон должен их найти по идее
Ней, если бы он их просто использовал бы то нашел бы, а так он изменять значение переменных пытается которые находятся во внешнем скоупе

Alex
20.11.2018
21:26:51
очень сумбурным языком, переменная внутри функции не может быть одновременно и локальной и глобальной

?? Eugene
20.11.2018
21:26:53

Alex
20.11.2018
21:28:40
тем же сумбурным языком, при загрузке функции если в оной есть присваивание значения и нет global - имя считается локальным, вне зависимости от того была ли попытка к ней (переменной) доступа до присваивания.

?? Eugene
20.11.2018
21:29:59

hachiman
20.11.2018
21:34:20
@yui_meow Ну рожай уже

^^
20.11.2018
21:43:53
Что значит f перед строкой? Код с гитхаба, инвалид синтаксис в моём интерпретаторе

Маришка
20.11.2018
21:44:04

hachiman
20.11.2018
21:44:21

Маришка
20.11.2018
21:44:39

?? Eugene
20.11.2018
21:45:09

^^
20.11.2018
21:45:17
Ясно

Google

^^
20.11.2018
21:46:15
Заменю на "***".format и взлетит

Маришка
20.11.2018
21:46:43

hachiman
20.11.2018
21:46:44

K_Oleksandr7
20.11.2018
22:35:53

Никита
20.11.2018
22:50:55
Кусок функции, которая запускается как таска через ensure_future
BaseException не обрабатывается except'ом. Почему?

ツィッギー
20.11.2018
23:04:46
from operator import mul
from functools import reduce
from decimal import Decimal
def fact(n):
return Decimal(reduce(mul, range(1, n + 1)))
def tailor_cos(x, n=1000):
return sum([Decimal(1)] + [Decimal((-1) ** k * x ** (2 * k + 1)) / fact(2 * k) for k in range(1, n + 1)])
from math import cos
print(tailor_cos(0.3), cos(0.3), sep='\n')
круто, полагаю, можно было бы еще задействовать xrange для большей сохранности памяти, или из-за того, что range в генераторе, это никакой роли не сыграет?
как правило следует decimal использовать в численных вычислениях? я узнал только что об этом модуле отсюда

Иван
20.11.2018
23:08:30
Вообще не используй BaseException) Он тебе не нужен.

Мой любимый
20.11.2018
23:11:44

Slam! 538
20.11.2018
23:12:06
Одновременно в двух потоках производится перемещение os.chdir
Возможно, одновременная работа с файловой системой невозможна

ツィッギー
20.11.2018
23:12:40

Мой любимый
20.11.2018
23:13:18

ツィッギー
20.11.2018
23:13:34
круто, однако

Никита
20.11.2018
23:16:26

Иван
20.11.2018
23:20:33
дело не в этом
А почему? Насколько я знаю, except отлавливает или ошибку или его потомков.

Никита
20.11.2018
23:20:58
А, оно таки обрабатывает. Но мне теперь неясно почему не обрабатывает try/except с запуском таски

Google

Mr
20.11.2018
23:21:17
с комбинаторикой туго чего-то сегодня, как с помощью itertools.permutations найти уникальные сочетания объектов '0' и '1' длиною 3 ?

Иван
20.11.2018
23:21:22

Никита
20.11.2018
23:22:03
неужто только exception_handler ставить надо

Иван
20.11.2018
23:22:55
Так, просто ensuere_future - не дождётся результата

Никита
20.11.2018
23:22:59
А try/except ом не обработает

Иван
20.11.2018
23:23:09
Он тебе вернёт объект Future
Тебе её надо сделать await
Точнее объект Task

Никита
20.11.2018
23:23:38
Так я хочу не дожидаться ответа. Мне не нужен ответ

Иван
20.11.2018
23:24:13
Тогда обрабатывай ошибку внутри

Мой любимый
20.11.2018
23:24:46

Иван
20.11.2018
23:24:48
Тебе всеравно надо сохранить таску, что бы в случае завершения программы коректно завершить таску.

Mr
20.11.2018
23:25:43
пока что вот это дает нужный результат set(list(permutations([1,1,1,0,0,0],3))) но чую set здесь лишнее и запрос к первичной функции задать можно более правильно

Ильдар
20.11.2018
23:27:35

Иван
20.11.2018
23:27:43

Мой любимый
20.11.2018
23:28:44

Google

Никита
20.11.2018
23:29:33

Мой любимый
20.11.2018
23:29:37
а set() от чего именно? выхлоп должен быть вот такой ['000','111','001','010','100','011','101','110']
Пермутейшенс даст тебе повторы 1,0,1, например, я думал уникальность = без повторов. Оказалось, суть не в этом.

Никита
20.11.2018
23:31:03
@ivan_krivosheev получится так, что при вызове корутины через ensure_future без await'a, она запустится и мы не получим от нее ексепшена, так как не дожидаемся ответа. И получается она проскакивает мимо try/except'a

Mr
20.11.2018
23:33:50
n**repeat просто, выходит

Slam! 538
20.11.2018
23:49:07
Проблему решил, указал абсолютный путь директории, а не относительный от папки с проектом

Мой любимый
21.11.2018
00:21:35

Александр
21.11.2018
00:51:57
Есть тут кто знает фреймворк aiohttp?

Mr
21.11.2018
02:23:33

SetazeR
21.11.2018
02:41:44

Александр
21.11.2018
03:09:59
Аай блотб

Маришка
21.11.2018
03:56:33


Caterina
21.11.2018
04:18:30
#вакансия #python
Город: Москва (Арбат)
Название компании: Chatfuel
Формат работы: офис
Занятость: полная
Зарплатная вилка: $ 3000 (net)
Описание вакансии:
Требования
Опыт программирования на Java, C++, C#, Go или Python.
Умение писать многопоточный код.
Знание основных алгоритмов и структур данных.
Опыт проектирования и разработки высоконагруженных систем (только для Senior).
Дополнительным плюсом будет:
Знание Kotlin или других языков программирования для JVM.
Опыт работы с MongoDB, Redis, Elasticsearch, Docker.
Обязанности
Наш стартап растет по экспоненте, и отсюда возникает множество задач, связанных с масштабированием сервисов и автоматизацией инфраструктуры. Поэтому мы расширяем команду — ищем как опытных инженеров, так и перспективных junior-ов.
Вам предстоит разрабатывать ядро платформы — движок, который обрабатывает сообщения пользователей и отвечает от имени ботов. Это сложная распределенная система, которая состоит из множества сервисов, работающих под непрерывной нагрузкой.
Условия
• Успешный технологический стартап с большими перспективами.
• Достойная зарплата в $US.
• Полный рабочий день.
• Хорошая медицинская страховка со стоматологией.
• Полное соблюдение ТК.
• Комфортный офис в центре Москвы.
https://www.facebook.com/headIThunter
Контакты: @colibrisempre


Grigore
21.11.2018
06:23:04
Добрый времени суток, может кто-то подскажет странное поведение. Написана программа которая создает несколько процессов (для тестированя два). Так вот если в цикле выполняются те же действия, что и в двух процессах, то они занимают порядка 2 секунд, а если это происходит при помощи создания других процессов, то это занимает уже 18 секунд, разница колосальна. Прошелся профайлером и заметил странную вещь 34025 15.947 0.000 15.947 0.000 {method 'timestamp' of 'datetime.datetime' objects} то есть 15.9 секунд занимает конвертация в timestamp в то время, когда в одном процессе время тратится на конвертацию значительно меньше (менее секунды). Может профайлер врет, или какой-то баг?
68050 0.084 0.000 0.084 0.000 {method 'timestamp' of 'datetime.datetime' objects} если один процесс, а прогон в цикле

Tishka17
21.11.2018
06:40:20
А что ты там с процессами делаешь ?
Есть какое-то взаимодействие?

Grigore
21.11.2018
06:58:10
import time
from multiprocessing import Pool
from datetime import datetime
def worker(file_name):
with open(file_name, 'r+') as file:
for line in file:
date = datetime.now()
date.timestamp()
if name == "__main__":
start = time.time()
args = ['FLT-TEST', 'FLT-TEST']
pool = Pool()
pool.map(worker, args)
# worker('FLT-TEST')
print(f'Executing in {time.time() - start} s.’)

Google

Tishka17
21.11.2018
06:59:39
Магия

Grigore
21.11.2018
06:59:48
Если запускать без создания дочерних процессов, то занимает Executing in 0.16368794441223145 s.

Tishka17
21.11.2018
07:00:11
А если без файлов?

Grigore
21.11.2018
07:00:24
если уже с двумя процессами одновременно, что видно по коду (у меня два кора), то занимает Executing in 66.31291604042053 s.
Файл 95к строк

Tishka17
21.11.2018
07:01:02
И что говорит комнанда time? Какое время в основном? System?

Grigore
21.11.2018
07:03:13
Вот без файлов
def worker(num):
print(f'Process {num}')
for _ in range(95000):
date = datetime.now()
date.timestamp()
if __name__ == "__main__":
start = time.time()
args = [1, 2]
pool = Pool()
pool.map(worker, args)
# worker(1)
print(f'Executing in {time.time() - start} s.')
Если 1 процесс без размножений то Executing in 0.16229772567749023 s.
с размножением Process 1
Process 2
Executing in 67.27635598182678 s.
Серьезно, можно запустить и проверить, в чем проблемма я чет не понимаю

Tishka17
21.11.2018
07:06:34
Черт, на мобилке не работает
А если убрать вызов now и поставить какое-то конкретное время
Ну или там использовать счётчик, чтобы не константа