powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Построение строки из фрагментов, хранящихся в переменных
25 сообщений из 25, страница 1 из 1
Построение строки из фрагментов, хранящихся в переменных
    #39490102
GrayMagellan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще нуб в этом языке. Сегодня столкнулся с ним в первый раз. И вопросы тоже нубские. Есть две строки кода, которые выполняют одну и ту же работу - формируют строку из фрагментов. Но реализованы они по разному:

Первая строка:
"Cat key = %s" % str(v_catkey)

Вторая строка:
"Flat file name = " + v_flat_file

Почему в первой строке фрагменты объединяются с помощью оператора "%", а во второй строке - с помощью "+"?
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39490104
GrayMagellan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Судя по всему, в первой строке v_catkey не представляет собой строку, поэтому конвертируется в нее с помощью str(). Во второй строке, наверное, v_flat_file сразу представляет собой стразу строковую переменную, поэтому используется "+"?
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39490107
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это что, питон?
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39490116
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый случай - это форматирование строки, наподобие printf в С++, это более мощный инструмент.
Второй - это обычная конкатенация.
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39490148
GrayMagellan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не, по идее это Java.
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39490151
GrayMagellan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что такого мощного может быть в том, чтобы две строки сцепить в одну?! Обычная операция...
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39490152
GrayMagellan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или что такого сложного в том, чтобы две строки сцепить в одну?! Это же простейшие вещи!
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39490155
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrayMagellanА что такого мощного может быть в том, чтобы две строки сцепить в одну?! Обычная операция...
Конкатенация это в данном случае, но инструмент может и больше, например:

Код: python
1.
2.
>>> print "Two numbers after commaa: %.2f" % (0.1)
Two numbers after commaa: 0.10
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39490311
GrayMagellan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett,

Гм... Я правильно понимаю, что первый % в вашем примере - это символ форматирования? А второй - это какой-то особый вид конкатенации? Почему не используется такая конструкция:

Код: java
1.
>>> print "Two numbers after commaa: %.2f" + (0.1)
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39490383
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скукота... Читать документацию не пробовали? :)
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39490409
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrayMagellanПервая строка:
Код: java
1.
"Cat key = %s" % str(v_catkey)


Вторая строка:
Код: java
1.
"Flat file name = " + v_flat_file



Почему в первой строке фрагменты объединяются с помощью оператора "%", а во второй строке - с помощью "+"?
Практически всегда имеет смысл использовать конкатенацию с плюсом "+".
Для старых компилляторов типа 1.5...1.6 рекомендовалось делать StringBuilder::append(..)
но новые достаточно хорошо определяют когда нужно буферизировать.

Исключение составляют случаи когда строки нужно не конкатенировать а форматировать сложным
образом. Как например с вещественными числами или с датами.

Справочная инфа здесь https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39490419
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettСкукота...заНУБство (:
GrayMagellanПочему в первой строке фрагменты объединяются с помощью оператора "%", а во второй строке - с помощью "+"?первый вариант - форматирование, а второй - конкатенация.
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39491435
GrayMagellan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett,

пробовали искать в документации на Java все вхождения по ключевому слову "%"?
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39491438
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrayMagellan,

Зачем?
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39491440
GrayMagellan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я попробовал найти оператор % в списке операторов языка Java. Нашелся только такой (цитаты с http://proglang.su/java/operators?category=java&alias=40):

% Делит левый операнд на правый операнд и возвращает остаток A % B даст 0

А на хабрахабре https://habrahabr.ru/post/260767/ столько мути про конкатенацию пишут, что отпадает всякое желание что-либо конкатенировать в Java. И главное - конкатенации с помощью оператора % там не описано.


Ок, ладно, всем спасибо большое. Мне удалось безболезненно заменить % на +, и я так все и оставил.
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39491445
GrayMagellan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett,

Вы не обижайтесь на меня, но знаете почему автомат Калашникова так популярен во всем мире, а винтовка М-16, хотя и лучше его во много раз по ТТХ, используется только в американской армии? Я вам скажу - простота! Простые механизмы работают лучше в конечном итоге, чем сложные. Не понимаю, зачем столько нужно было накручивать вокруг простой конкатенации строк.
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39491446
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Java % - это деление по модулю.
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39491452
GrayMagellan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett,

но первая строка примера
Код: javascript
1.
"Cat key = %s" % str(v_catkey)

совсем не похожа на попытку поделить что-то...
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39491455
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так это питон, я сразу же сказал вам об этом.
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39491458
GrayMagellan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно, фиг с ним. Задача решена. Спасибо и вам большое за информацию. В моем случае все было полезным.
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39491461
GrayMagellan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett,

а ведь вы правы! сейчас пошел еще раз почитал документацию на продукт, и там действительно написано, что внутренние скрипты пишутся на Питоне. Почему у меня в голове стукнула мысль, что там используется Java??? Простите великодушно.
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39491462
GrayMagellan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно тогда эту тему перенести в профильную ветку Питона как-то?! Кому писать просьбу?
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39491517
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrayMagellanМожно тогда эту тему перенести в профильную ветку Питона как-то?! Кому писать просьбу?
http://www.sql.ru/forum/actualutils.aspx?action=notifymod&msg=20649876
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39491520
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: python
1.
"Cat key = %s" % str(v_catkey)


Вообще, конечно, часть такое наблюдаю по работе, руки оторвать хочется.
...
Рейтинг: 0 / 0
Построение строки из фрагментов, хранящихся в переменных
    #39491521
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
часто*

Модератор: Тема перенесена из форума "Java".
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Построение строки из фрагментов, хранящихся в переменных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]