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

Страница 39 из 1885
Aleshka
09.06.2016
19:04:00
Кто подскажет в чем проблема Пытаюсь переписать достаточно объемный код со второго питона на третий, несколько мест поправил, теперь вылезает ошибка DeprecationWarning: 'U' mode is deprecated

делаю все это в jupyter notebook

Zart
09.06.2016
19:04:24
это про флаг U для open()

Aleshka
09.06.2016
19:04:53
можно поподробнее? я новичок, хз что это значит

Google
Zart
09.06.2016
19:05:12
новичок, но портирует кучу кода с 2 на 3? это как?

Aleshka
09.06.2016
19:06:04
ну вот так, я для себя, вообще у меня оба питона стоят, но бесит переключаться каждый раз чтобы юзать этот код, сам пишу на третьем, вот решил переписать

Andrey
09.06.2016
19:06:38
можно поподробнее? я новичок, хз что это значит
Посмотри на все конструкции open()

Zart
09.06.2016
19:06:50
https://docs.python.org/2/library/functions.html#open

когда функции open передан флажок U, то включается универсальная обработка переводов строк

полагаю достаточно выкинуть U во всех случаях

Aleshka
09.06.2016
19:08:02
f = open(filepath,'w')

Zart
09.06.2016
19:08:14
это на запись

Aleshka
09.06.2016
19:08:18
а вот чет похожее

f = open(filepath, 'rU')

Zart
09.06.2016
19:08:23
U только для чтения работает

вот. поменяй 'rU' на 'r'

Aleshka
09.06.2016
19:09:25
спасибо, помогло

Google
Aleshka
09.06.2016
19:35:30
Чет не пойму как это работает, TypeError: Can't convert 'bytes' object to str implicitly

указывает на data = np.genfromtxt(StringIO('\n'.join([line[:-2] for line in data_only_lines])), delimiter = delimiter, missing_values = '', filling_values = None)

суть ошибки понял

не понял как поправить, знаю что в третьем питоне StringIO больше нет, но его можно импортировать из io

декодинг не помогает

то, что помогает чувакам на stackowerflow не помогает мне

)

Zart
09.06.2016
20:02:51
твой новый код возвращает байты, а ты пытаешься либо распечатать либо свести со строками общего решения нет, надо понимать где какой тип и приводить

Марк
09.06.2016
20:47:04
И так, господа, вернемся, к предмету, от которого у меня пердак перманентно горит

Допустим, что ()[] - это петонвей

Допустим

Zart
09.06.2016
20:47:38
тред закрыт

Марк
09.06.2016
20:48:03
Допустим, что это логичный и разумный шаг

Хорошо.

Aleshka
09.06.2016
20:48:22
скажите че за петонвей

Марк
09.06.2016
20:49:09
Где предсказуемость? То есть, где такую же конструкцию я могу спрогнозировать?

Zart
09.06.2016
20:49:43
ты всё еще продолжаешь не понимать что нет никакой конструкции ()[]

поэтому объяснять чтото дальше бессмысленно

Марк
09.06.2016
20:50:14
Я понимаю, о чем ты, но для удобства пишу про конструкцию

То есть, попробую сформулировать вопрос иначе и точнее: в каких функциях можно писать [] следом?

Google
Zart
09.06.2016
20:52:34
f() - здесь скобки - это вызов функции () - здесь скобки - литерал для пустого тупла (1+1) и (1, 1) - здесь скобки являются частью выражения, для задания приоритетов вычислений [] - литерал для пустого списка x[0] - доступ к элементам сиквенса/маппинга [... for ... in ...] - лист компрехеншен

a = f() b = a[123] эквивалентно b = f()[123]

Janek
09.06.2016
20:54:00
Ну и чо непонятно?

Даже до мня дошло

Zart
09.06.2016
20:54:29
писать следом можешь всегда и везде, бля. если скобки - это вызов функции - то если она возвращает сиквенс или маппинг если в скобках сиквенс или маппинг - то квадратными скобками после этого мы получаем доступ к значению внутри

{1: 2}[1] - это мы дергаем из дикта значение по ключу

[1, 2, 3][2] - дергаем значение из списка по индексу (1, 2, 3)[2] - абсолютно то же самое, но из тупла

это всё комбинации двух вещей - чего-либо до, и взятия элемента после

Марк
09.06.2016
20:56:05
---> 1 re.search('\d',10)[0] /usr/lib/python2.7/re.pyc in search(pattern, string, flags) 140 """Scan through string looking for a match to the pattern, returning 141 a match object, or None if no match was found.""" --> 142 return _compile(pattern, flags).search(string) 143 144 def sub(pattern, repl, string, count=0, flags=0): TypeError: expected string or buffer

Zart
09.06.2016
20:56:06
если ты и этого не понимаешь до сих пор, то я хз...

Марк
09.06.2016
20:56:17
Шота не работает "всегда и везде"

Zart
09.06.2016
20:56:25
ты дятел

Zart
09.06.2016
20:56:36
второй аргумент re.search хавает строки, а ты скормил целое

вот он и матерится что ждёт строку

до [0] там даже не дошло

Марк
09.06.2016
20:57:18
In [53]: re.search('\d','10')[0] --------------------------------------------------------------------------- TypeError Traceback (most recent call last) /home/devel/dev_python/<ipython-input-53-06385d43dee4> in <module>() ----> 1 re.search('\d','10')[0] TypeError: '_sre.SRE_Match' object has no attribute '__getitem__'

Zart
09.06.2016
20:57:46
потому что re.search не возвращает секвенса/маппинга или объекта с их интерфейсом

Omni
09.06.2016
20:58:17
Не пойму, о чём вы спорите. Можно ли делать ((1,2),(3,4))[0][1] или низзя?

Zart
09.06.2016
20:58:21
все эти случаи реализованы через метод __getitem__, которого в этом случае нет

Google
Zart
09.06.2016
20:58:28
я не знаю что он курит

Janek
09.06.2016
20:59:14
Можно

Zart
09.06.2016
20:59:38
писать можешь везде где хочешь

свободная страна нах

Omni
09.06.2016
20:59:47
Можно
Понятное дело. Я просто не пойму, о чём спор

Zart
09.06.2016
20:59:52
но я не утверждал что это будет работать

Admin
ERROR: S client not available

Марк
09.06.2016
21:00:16
? Не, Зарт, это подлый слив

Zart
09.06.2016
21:00:23
слив чего?

Janek
09.06.2016
21:00:32
Аутизм какой-то

Zart
09.06.2016
21:00:39
вот даже ре.сёрч свой возьми

Janek
09.06.2016
21:00:40
Спор вообще не понимаю о чем

Zart
09.06.2016
21:00:53
он возвращает либо sre.Match, либо None

Janek
09.06.2016
21:01:16
Аж грустно стало

Спокойной ночи. Пацы

Zart
09.06.2016
21:01:47
поэтому re.search(...).groups(0) писать можно, но тогда будут исключения на попытках брать аттрибут groups у None, если матча нет

Марк
09.06.2016
21:02:21
Вот берем абстрактную фунцию в пайтоне. Как по ней я могу угадать, могу ли я юзать после [] или нет?

Zart
09.06.2016
21:02:28
не можешь

Google
Janek
09.06.2016
21:02:49
На возврат функции смори

Zart
09.06.2016
21:02:51
только при условии что оно вернет объект с нужным протоколом

но вот большинство функций имеет вполне заранее известные типы возвращаемых значений

Марк
09.06.2016
21:05:00
На возврат функции смори
При чем тут вообще возврат функции

Zart
09.06.2016
21:05:19
ты сам сказал про функцию

[...] ты применяешь к тому что она вернет

Марк
09.06.2016
21:05:55
секундочку

Zart
09.06.2016
21:06:05
f()[...] - это обычное выражение, вычисляется слева-направо

т.е. сперва f(), потом результат сабскриптится

Марк
09.06.2016
21:06:48
In [56]: (lambda x:x)[10] --------------------------------------------------------------------------- TypeError Traceback (most recent call last) /home/devel/dev_python/<ipython-input-56-9bd98792864b> in <module>() ----> 1 (lambda x:x)[10] TypeError: 'function' object has no attribute '__getitem__' In [57]: (lambda x:x)(10) Out[57]: 10 In [58]: (lambda x:x)[10]

Не едут лыжи так.

Zart
09.06.2016
21:07:18
(lambda x:x) - это ты создал функцию, в скобочках

но не вызвал

у самой функции нет подэлементов, не пашет [] на ней

почему до тебя очевидное всё еще не дошло?

Марк
09.06.2016
21:10:30
Почему передача аргумента пашет?

Zart
09.06.2016
21:11:40
(10) - это ты вызываешь созданную лямбду

Марк
09.06.2016
21:12:12
Это разве не передача аргумента?

Zart
09.06.2016
21:12:19
[10] - пытаешься извлечь 10й элемент. из лямбды....

нет

Марк
09.06.2016
21:12:43
In [60]: a = lambda x:x[10] Вот так лыжи едут. Ток непоняно, что происходит

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

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