Дополнительно
В чем разница между %s и %d при форматировании строк в Python?
Я не понимаю, что делают %s
и %d
и как они работают.
116
11
Я не понимаю, что делают %s
и %d
и как они работают.
Они используются для форматирования строк.
%s
служит заполнителем строки, а%d
- заполнителем числа. Соответствующие значения передаются в виде кортежа с помощью оператора%
.выведет
marcog 42
. Обратите внимание, что имя - это строка (%s), а число - целое число (%d для десятичной системы).Подробнее см. https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting.
В Python 3 пример будет выглядеть следующим образом:
%s
используется в качестве заполнителя для строковых значений, которые вы хотите ввести в форматированную строку.%d
используется в качестве заполнителя для числовых или десятичных значений.Например (для python 3)
Выведет
из Питон 3 док
%D
является для десятичное целое число"%S " является общая строка или объект и в случае объекта, то оно будет преобразовано в строку
Рассмотрим следующий код
из положить будет
4.300000 > Джакомо 4.3 4 4.3
как вы можете видеть,
%Д
будет обрезать до целого числа,%S
будет поддерживать форматирование,%F
и будет печатать как поплавок и%G
и используется для общего количестваочевидно
будет генерировать исключение, нельзя преобразовать строку в число
Эти заполнители:
Например:
'Привет %S, у меня есть %Д пончики' %('Алиса', 42)
Эта строка кода будет заменить %S с Элис (str) и %D с 42.
Выход:
'Привет Алиса у меня 42 пончики'
Это может быть достигнуто с помощью "+" и большую часть времени. Чтобы получить более глубокое понимание на ваш вопрос, вы можете хотеть проверить {} / .формат (), а также. Вот один из примеров: https://stackoverflow.com/questions/5082452/python-string-formatting-vs-format
также вижу здесь Гугл на Python учебник видео @ 40', он имеет несколько объяснений https://www.youtube.com/watch?v=tKTZoB2Vjuk
В
%D
и%S
в строке форматирования-то "команды" и используется для форматирования строк. В%Д
для чисел, и "%S " для строк.Для примера:
и
Чтобы передать несколько аргументов:
печать (на"%ы %ы %ы%д" на % (на"Привет" и "Ну там-то", то "пользователей" и, 123456))
вернет
привет user123456`%D
и%S
не являются вымышленными, они работают в качестве подставляемых. Например, если создать 2 переменныевы можете назначить эти переменные наказание в строку, используя кортеж переменных.
Обратите внимание, что
%S
не работает для строки И%Д
работе для численного или десятичных величин.если вы печатаете
variable_3
это будет выглядеть такЯ искал ответа на StackOverflow и нашел более 45 ответы на мой вопрос.
Это спецификаторы формата. Они используются, когда вы хотите включить значения ваших выражений Python в строки с соблюдением определенного формата.
Относительно подробное введение см. в Dive into Python.
В случае, если вы хотите избежать %S или %D, то..
Выход:
В соответствии с последними стандартами, это, как это должно быть сделано.
Проверьте питон3.6 документы и образец программы
кстати ... <БР> питон3.6 поставляется с ф-строк, который делает вещи намного проще в форматировании! <БР> теперь, если вашей версии Python больше чем 3.6 вы можете форматировать ваши строки с этими доступными методами:
Все эти информативные ответы, но никто не уловил суть, в чем разница между
%S
и%Д
.%s
не говорит форматеру для вызова функции НТР()
на спор и так как мы принуждающего к строке по определению, "%S " является, по сути, просто выполняяул.(арг)
.%D
и с другой стороны, звонит типаint()
на аргумент перед вызовом(ул.)
, какул.(инт(арг))
, этоинт
принуждения, а такжеул
принуждения.Например, я могу преобразовать шестнадцатеричное значение в десятичное,
или обрезать поплавок.
Но операция будет вызывать исключение, если аргумент не'т ряд.
Так, если целью является просто позвонить
ул.(арг)
, тогда%S
будет достаточно, но если вам нужно дополнительное форматирование (например, форматирование чисел с плавающей запятой знаков после запятой) или других форм принуждения, то другие символы форматирования не требуется.С обозначения Ф-строку, когда вы покидаете праматерии из, значение по умолчанию стр``.
То же самое с
строки.формат
по умолчаниюул
.