@ru_python

Страница 7111 из 9768
Alex
20.11.2018
21:21:53
``` code ```

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

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

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

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

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

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

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

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

Маришка
20.11.2018
21:44:04
x=int(input("Vvedit x")) def fact(x): if x==0: return 1 else: return x*fact(x-1) s=0 n=0 def cos(x): while((((-1)**n)*(x**(2*n)))/(fact(2*n))>0.0001): y=(((-1)**n)*(x**(2*n)))/(fact(2*n)) s=s+y n+=1 return s s=cos(x) print(s)
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')

?? 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
Никита
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) Он тебе не нужен.

Slam! 538
20.11.2018
23:12:06


Одновременно в двух потоках производится перемещение os.chdir Возможно, одновременная работа с файловой системой невозможна

ツィッギー
20.11.2018
23:12:40
в 3 петунии xrange = range
т.е. range из второй версии нет в третьей версии?

Мой любимый
20.11.2018
23:13:18
т.е. range из второй версии нет в третьей версии?
вроде как отдельной функцией нет, но руками сделать на изи

Никита
20.11.2018
23:16:26
Вообще не используй BaseException) Он тебе не нужен.
Я делаю проверку обработки в случае ошибки

Иван
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: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:48
Тебе всеравно надо сохранить таску, что бы в случае завершения программы коректно завершить таску.

Так я хочу не дожидаться ответа. Мне не нужен ответ
Ты никак не говоришь, что тебе нужен результат, соответсвенно и exception тоже наружу не прилетит.

Mr
20.11.2018
23:25:43
List(set(...)) чем не вкатывает?
а set() от чего именно? выхлоп должен быть вот такой ['000','111','001','010','100','011','101','110']

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

Ильдар
20.11.2018
23:27:35
Иван
20.11.2018
23:27:43
Так я хочу не дожидаться ответа. Мне не нужен ответ
Короче ты пойми чего хочешь. Но без await наружу exception не вылетит

Мой любимый
20.11.2018
23:28:44
а set() от чего именно? выхлоп должен быть вот такой ['000','111','001','010','100','011','101','110']
Тут надо не permutations а product, проблема решается сама по себе

Google
Мой любимый
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
Пермутейшенс даст тебе повторы 1,0,1, например, я думал уникальность = без повторов. Оказалось, суть не в этом.
list(product([0,1],repeat=3) - вот так нужное дает да, спасибо, тока в доке к функции нету мат. обоснования как у permuations и combinations

n**repeat просто, выходит

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

Мой любимый
21.11.2018
00:21:35
list(product([0,1],repeat=3) - вот так нужное дает да, спасибо, тока в доке к функции нету мат. обоснования как у permuations и combinations
Да есть же код def product(*args, **kwds): # product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy # product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111 pools = map(tuple, args) * kwds.get('repeat', 1) result = [[]] for pool in pools: result = [x+[y] for x in result for y in pool] for prod in result: yield tuple(prod)

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

Mr
21.11.2018
02:23:33
Да есть же код def product(*args, **kwds): # product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy # product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111 pools = map(tuple, args) * kwds.get('repeat', 1) result = [[]] for pool in pools: result = [x+[y] for x in result for y in pool] for prod in result: yield tuple(prod)
да как работает традиционное перемножение двух итераблов без повторов это элементарно, а вот с повторами не очень понятно было. Оказалось (range(2),repeat=3) просто шорткат для (range(2),range(2),range(2))

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

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 и поставить какое-то конкретное время

Ну или там использовать счётчик, чтобы не константа

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