Найти - Пользователи
Полная версия: Конкатенация строк выполняется в противоречии с правилами.
Начало » Python для новичков » Конкатенация строк выполняется в противоречии с правилами.
1
minin
Друзья! Тут читаем:

Two string literals next to each other are automatically concatenated; the first line above could also have been written word = ‘Help’ ‘A’; this only works with two literals, not with arbitrary string expressions:
То есть ТОЛЬКО ДВЕ строки могут соединяться меж собой, если они идут друг за другом и не больше. (В оригинале далее зачем-то следует использование метода strip)

 >python
Python 3.1.1 (r311:74483, Aug 17 2009, 17:02:12) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 'H''e''l''l''o'
'Hello'
>>>

5 строк успешно друг за другом соединились. Может кто-нибудь это объяснить? Спасибо, кто откликнется.
doza_and
minin
То есть ТОЛЬКО ДВЕ
Нет, написано что не работает с произвольными выражениями дающими строки.

Думаю так после того как два литерала конкатенировались, можно опять применять правило к новой строке и остатку.
4kpt_IV
Поясню проще

 #
>>> a = "12" "3"
>>> a
Out[3]: '123'
>>> a = "12" str("3")
  File "<ipython-input-4-7152a804bc5b>", line 1
    a = "12" str("3")
               ^
SyntaxError: invalid syntax
py.user.next
python.org. tutorial. strings
Two or more string literals (i.e. the ones enclosed between quotes) next to each other are automatically concatenated.
This only works with two literals though, not with variables or expressions:
Всё правильно написано.

minin
Может кто-нибудь это объяснить? Спасибо, кто откликнется.
1) Английский подучить не мешало бы.
2) Не надо читать старые документации (ко второму питону, к старым релизам типа 3.1), читай свежую.
Документация всё время улучшается и свежая всегда доступна по адресу https://docs.python.org/3/ , а свежайшая - https://docs.python.org/dev/ .
minin
py.user.next
1) Английский подучить не мешало бы.
ну это-то понятно. Но всё-таки “two string” это “”two string“ а не ”“two string or more”, какой бы там английский ни был.

py.user.next
2) Не надо читать старые документации (ко второму питону, к старым релизам типа 3.1), читай свежую.
я какой питон использую, такую документацию и читаю. Я использую питон 3.1.1, о чём написал в первом сообщении, следовательно и читаю документацию к нему. И там не написано “two or more”, там написано “two string literals” ну и так далее.

Зачем вы к моему питону 3.1.1 даёте документацию к 3.5.2, непонятно.

Причины неперехода на 3.5.2 более чем уважительные, но они не относятся к теме.
4kpt_IV
Вам написали, что документация также развивается как и версии питона. Это как книга, которая переиздается. Что Вас конкретно смущает? Вы не можете с такими расхождения писать код?
minin
4kpt_IV
Что Вас конкретно смущает?
меня смущает, почему версия питона у меня 3.1.1, а документацию мне показали для версии питона 3.5.2

Лучше объяснить не удастся, так что не уточняйте.
py.user.next
minin
ну это-то понятно. Но всё-таки “two string” это “”two string“ а не ”“two string or more”, какой бы там английский ни был.
Не, тут дело в том, что там тоже неплохо написано. Любой англоговорящий поймёт это однозначно. Просто твой английский на таком уровне, когда ты переводишь слова (и связи между ними) дословно, что не принято делать. Такой уровень получается при изучении английского в школе, где его преподают учителя, которые никогда не общались с иностранцами.

Вот мы берём фразу из 3.1.1
Two string literals next to each other are automatically concatenated; the first line above could also have been written word = ‘Help’ ‘A’; this only works with two literals, not with arbitrary string expressions:
Вот это место this … , not … - распространённая конструкция в английском языке. Просто тебе в школе про неё никто не рассказал. Поэтому ты и непонимаешь, что местоимение this относится к not определённым образом (фактически this несёт функцию подлежащего для not, так как not без this здесь никак нельзя использовать, а сказать эту часть с not надо).

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

minin
Зачем вы к моему питону 3.1.1 даёте документацию к 3.5.2, непонятно.
Эти питоны находятся в пределах одной мажорной версии, поэтому большая часть документации для 3.5.2 обратно совместима с 3.1.1. Но даже для второй версии надо читать документацию к третьему питону, потому что сама документация ко второму не так ясна, как та же самая документация к третьему. Очень часто бывает так, что человек, прочитавший документацию ко второму питону, знает про особенности второго питона меньше, чем человек, прочитавший ту же документацию к третьему питону.
minin
py.user.next
а ты нам тут втираешь
Ну что сказать, оттоптался ты по мне знатно. Ладно, хер с ним, утрусь. Надеюсь тебя в моих темах больше не увидеть.
py.user.next
minin
Ну что сказать, оттоптался ты по мне знатно.
Ты хотел выпендриться, типа умный, а не получилось, потому что здесь тоже не тупые сидят. У тебя же так и прёт “я умнее разработчиков документации” - значит, какая-то проблема с самооценкой. Потому что реально ты не знаешь ничего, а гонору - выше крыши, будто бы перед нами гений какой-то.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB