Nikolay
(\d+,)*\d+
Ты што не работаеш
Aragaer
я работаю
Aragaer
вообще да, можно так
Aragaer
на самом деле можно [0-9,]*
Aragaer
то есть в строке есть цифры, запятые, а больше ничего
Artyem
на самом деле можно [0-9,]*
подряд запятые пропустит
Aragaer
но наверно надо проверить, что не начинается и не кончается запятой
Aragaer
мм.. ок
Vladislav
на самом деле можно [0-9,]*
если две запятые подряд норм
Aragaer
ноль цифр это частный случай числа
KhSV
+ это одно или более совпадений?
KhSV
Так нужно только одно совпадение.
KhSV
"1,,,3" - это не верный вариант
Maxim
ну, э, да, у меня он неверный
Maxim
1,123,3,4 у меня верный
Maxim
нужна только одна цифра? убери плюс после \d
KhSV
Запятая только одна.
Aragaer
вообще я б плюнул на регекспы и сделал all(s.isdigit() for s in line.split(","))
Tishka17
Aragaer
s and s.isdigit()
Tishka17
если это ок конечно
Tishka17
угу
Aragaer
или and ",," not in line
Artyem
это снова повторяющиеся запятые пропустит
так вроде какраз ''.isdigit() выдаст False
Tishka17
а, ок
Tishka17
сорри
Aragaer
кстати да
Антон
Чото вы парите (?:(?:\d+,)+)?\d+ Это если целые числа
Aragaer
еще больше варварство будет try: [int(s) for s in line.split()] return True except ValueError: return False
Aragaer
не захватывает
Aragaer
но зачем?
Антон
Чтоб ПАМЯТЬ ЭКОНОМИТЬ!
Антон
ᕙ( • ‿ • )ᕗ
Aragaer
да там этой памяти
Aragaer
и вообще, сразу будет высвобождена
Антон
Да я понимаю, чего ты Это просто привычка Полезно, когда много групп, а обращаться нужно к некоторым
Lolly
Как можно ревлизовать вставку точек в числа после трех чисел? Что-бы было типо так: 1.000 45.123.643
Lolly
Раньше я просто делал типо 1кк 34к
Lolly
А в голове мысля что надо в массив переводить и отсчитывать с конца, но хз
Kolyann
(чо он сразу точку не принимает я не помню честно говоря)
Антон
(чо он сразу точку не принимает я не помню честно говоря)
Локаль, может быть? В баше printf говнился так, помню
Aragaer
(чо он сразу точку не принимает я не помню честно говоря)
потому что можно либо запятую, либо пробел
Aragaer
остальное он не ест
Anonymous
CACHE = {} def squared_cache(number): if number not in CACHE: divisors = [x for x in range(1, number + 1) if number % x == 0] CACHE[number] = sum([x * x for x in divisors]) return CACHE[number] return CACHE[number] def list_squared(m, n): ret = [] for number in range(m, n + 1): divisors_sum = squared_cache(number) if (divisors_sum ** 0.5).is_integer(): ret.append([number, divisors_sum])
Anonymous
а зачем мне точное значение корня?
Tishka17
Затем что ты проверяешь целое оно или нет
Anonymous
Именно
Tishka17
Если у тебя вместо 123.0 получится 123.000000000000009?
Ilya
Python + uWSGI в 10 процессах. CPU шкалит в полку без видимых причин на каждую ручку. Поставили pyFlake. 99% времени мы в IDLE. Трейсили strace-ом, видим кучу фьютексов на свитч контекста. Из этого есть вроде бы логичная теория, что GIL ходит и свитчит контекст, попусту сжирая процессроное время. Но uWSGI по-умолчанию отключает GIL. Функции для работы с ним подменяются dummy-пустышками. Может быть так, что под uWSGI GIL все равно рабтает в каждом процессе?
Anonymous
Прогнал через 200 тестов, везде получилось 123.0 вместо 123.0000000009, как ты сказал
Tishka17
200 тестов мало. Прогони 2000000
Tishka17
мантисса + порядок
Nikita
200 тестов мало. Прогони 2000000
hypothesis натравите он сам по идее все возможные варианты прогонит
Tishka17
скорее всео конечено на твоих числах все норм будет, но вообще никаких гарантий
Tishka17
Объясни xD
>>> 0.1+0.2 0.30000000000000004
Nikita
кого?
https://hypothesis.readthedocs.io/en/latest/
Tishka17
Nikita
эм, зачем это?
ну ты спрашиваешь у человека, что будет на таком-то числе. Он их придумывает, а эта штука просто возьмет пачку разных вариантов чисел. Вместо того, чтобы придумывать, делегируй это камплюхтеру
Nikita
Если я, конечно, правильно контекст уловил ваш
Tishka17
ну вообще на входе int
Tishka17
но получается в процессе float
Aragaer
перебрать все инты, проверить, что x**0.5 % 1 == 0 тогда и только тогда, когда x является целым квадратом
Aragaer
то есть ровно 1000 раз для чисел от 0 до 999 999
Nikita
а юнит тест есть?