@python_beginnersЭта группа больше не существует

Страница 155 из 1885
Denis
16.07.2016
22:10:18
Темный
16.07.2016
22:12:58
if not s.startswith('http'):
да, теперь записался именнно этот .txt

вобщем это задание на степике сломалось, ссылка обрывается, должно было вернуться что-то вроде начинающегося с "We"

вобщем это задание на степике сломалось, ссылка обрывается, должно было вернуться что-то вроде начинающегося с "We"
если кому-то вдруг интересно, то вот сломанное задание https://stepic.org/lesson/Установка-дополнительных-модулей-3378/step/3?course=Программирование-на-Python&unit=961

Google
Pavel
17.07.2016
02:04:48
так быстрее чем os.
я тоже так думал, пока пару дней назад мне не потребовалось пачку скриптов перенести с windows машины на linux. в общем, не надо лениться и хардкодить слеши в строках, если есть os.path.join.

Viktor
17.07.2016
09:15:40
сделал так with open('text.txt', 'r') as a: for line in a: data_line = data_line + line.strip().lower() + " "
with open(...) as f: lines = [line.strip().lower() for line in f.readlines()] data_line = ' '.join(lines)

Темный
17.07.2016
09:20:47
И там и там 3 строки

Viktor
17.07.2016
09:20:58
Строки в питоне не изменяемы

Потому ты каждый раз копируешь уже прочитанное в новую строку

Темный
17.07.2016
09:21:44
Конкатенация

Viktor
17.07.2016
09:21:47
А тут ты читаешь все в список, и потом соединяешь в одну строку

По крайней мере foo = foo + bar не будет конкатенацией точно

Google
Viktor
17.07.2016
09:22:33
Ни в одном нормальном языке

Темный
17.07.2016
09:23:36
with open(...) as f: lines = [line.strip().lower() for line in f.readlines()] data_line = ' '.join(lines)
Так у тебя выходит что ты хранишь огромный список и потом его еще переписывает в другую переменную

А у меня все в 1

Viktor
17.07.2016
09:25:14
Запилите кто-нибудь проверку на время

Темный
17.07.2016
09:26:16
И на потребляемую память

Viktor
17.07.2016
09:32:00
Далее идёт ничем не подкреплённый бред: foo = foo + bar Мы должны выделить память под новое значение foo, то есть size(foo) + size(bar) Затем мы должны скопировать старый foo в новый Потом докопировать bar И только потом освободить старый foo То есть у нас будет в определённый момент выделена память 2*size(foo) + 2*size(bar) Теперь вариант со списком: мы постепенно будем выделять память под новые bar'ы, и в конце концов у нас получится список занимающий память близкую к конечному foo (минус ращмер пробелов, плюс размер указателей) Затем мы выделим место под конечный foo, скопируем в него постепенно список, и освободим список По идее будет занято максимум 2*size(foo) памяти

Denis
17.07.2016
09:33:56
Таки линейно

Viktor
17.07.2016
09:39:07
Причём в варианте со списком у нас будет n раз выделено size(bar) памяти, и 1 раз size(конечный foo) Затем освободится весь список В варианте с конкатенацией и присваиванием будет n раз выделятся и почти сразу же освобождаться (2*(1..n)*size(bar) + size(bar)) памяти На этом моменте я окончательно запутался

А s = s + str(i)?

⬗VLAD⌶K⬖
17.07.2016
09:42:17
break?!
да я для себя этот брек сделал, проверить=)

Denis
17.07.2016
09:45:25
Да, джойн таки быстрее

Viktor
17.07.2016
09:50:51
А если строки подлиннее?

Попробуй там str(i) * 20 например

Denis
17.07.2016
09:52:53
0.755

С джойном 0.726

Sergey
17.07.2016
09:57:15
Для бенчмарков лучше timeit использовать https://docs.python.org/3.5/library/timeit.html

Denis
17.07.2016
09:58:40
А + ?
0.805

Sergey
17.07.2016
09:58:48
Thx cap
Чет я не вижу его на скриншотах выше, ваш Cap

Google
Denis
17.07.2016
09:59:44
timeit не так удобен, когда кода больше 1 строки

Sergey
17.07.2016
10:02:13
В ipython очень даже удобен

Viktor
17.07.2016
10:02:46
Sergey
17.07.2016
10:02:50
Хотя, никто не мешает и без него

А что бы нет?

Denis
17.07.2016
10:04:03
Нет у меня ipython

Sergey
17.07.2016
10:04:21
Соболезную

Denis
17.07.2016
10:04:24
Есть qpython и ssh с cpython

Viktor
17.07.2016
10:05:59
Извращенец

Sergey
17.07.2016
10:06:11
Есть qpython и ssh с cpython
Зачем себя так мучить, когда есть https://termux.com?

Denis
17.07.2016
10:06:41
Зачем себя так мучить, когда есть https://termux.com?
Там хоткеи неудобные, juicessh проще

Sergey
17.07.2016
10:08:29
Хоткеи стандартные, как и в любом терминале. Единственное - лучше клавиатуру нормальную использовать вроде hackers keyboard, где есть все модификаторы

Denis
17.07.2016
10:08:47
Мне стрелочки удобнее))0

Viktor
17.07.2016
10:08:57
memory_profiler кто-нибудь попробуйте

Denis
17.07.2016
10:09:35
Зачем профилировать память, если у меня 6 гигов оперативы?

Viktor
17.07.2016
10:10:17
Denis
17.07.2016
10:10:18
Нет

Viktor
17.07.2016
10:12:14
И на потребляемую память

Темный
17.07.2016
10:13:36
Так мы и о памяти спорили же
про память так и не ясно все таки

Viktor
17.07.2016
10:13:54
Ты не согласен с моими рассуждениями?

Google
Темный
17.07.2016
10:14:02
по джоин понял, но это не тот случай что бы спорить о времени

и то и то приемлимо

Sergey
17.07.2016
10:14:35
memory_profiler кто-нибудь попробуйте
Пользуясь случаем порекламирую ещё %memit и %prun в ipython

Admin
ERROR: S client not available

Denis
17.07.2016
10:14:48
ipython нинужен

Viktor
17.07.2016
10:15:08
Пользуясь случаем порекламирую ещё %memit и %prun в ipython
Пользуясь случаем пошлю тебя нахер

Sergey
17.07.2016
10:15:31
Пользуясь случаем пошлю тебя нахер
Уважаемый, вы что так резко реагируете?

Denis
17.07.2016
10:16:05
Предлагаю запретить пропаганду ipython в этом чате

Sergey
17.07.2016
10:17:05
Предлагаю запретить пропаганду ipython в этом чате
В чате для начинающих? Серьёзно? По-моему это первый инструмент, который ставиться для экспериментов.

Viktor
17.07.2016
10:17:06
Уважаемый, вы что так резко реагируете?
Потому что я неуравновешенный и чересчур агрессивный

Denis
17.07.2016
10:18:11
В чате для начинающих? Серьёзно? По-моему это первый инструмент, который ставиться для экспериментов.
Первый инструмент - cpython. А то понаставят всяких выебонов и потом задают тупые вопросы, почему у них что-то не так работает

Sergey
17.07.2016
10:19:29
Denis
17.07.2016
10:20:37
Фреймворки используются в продакшне, а вот ipython я ни разу не видел

Sergey
17.07.2016
10:23:37
Не путайте тёплое с мягким. В чате для начинающих говорить, что удобный инструмент для изучения языка не нужен по меньшей мере странно

Nobue
17.07.2016
10:29:40
я на самом деле частично согласен с оратором который катит бочку на iPython, пусть и не так категорично

он и правда сильно изменяет язык и "улучшает" его, после чего этот питон уже нельзя назвать стандартным

Google
Nobue
17.07.2016
10:31:05
там довольно много вещей которые ванильном питоне вообще не работают или работают иначе

это скорее минус чем плюс

в особенности для обучения

если это можно отключить, лучше во время обучения отключать

просто это как учится на убунте чтобы потом работать на дебиане

какое-то некорректное обучение получается

Nobue
17.07.2016
10:39:44
например что на дебиане нет PPA, rolling release и внутри многие вещи сделаны иначе

для новичка эти отличия очень критичны

это нам уже старым кажется что разницы нет

а он наткнётся на /etc/network вместо network manager и это будет конец пути сразу

ну я образно, но думаю мысль понятна

Темный
17.07.2016
10:42:34
и все же начинать нубу с дебиана это сильно

Nobue
17.07.2016
10:42:52
так если ему работать потом на дебиане

Denis
17.07.2016
10:42:57
Я начинал с дебиана

Nobue
17.07.2016
10:43:00
и везде в мире дебиан

Страница 155 из 1885

Эта группа больше не существует Эта группа больше не существует