Что %s
значит в Python? И что делает следующий фрагмент кода?
Например...
if len(sys.argv) < 2:
sys.exit('Usage: %s database-name' % sys.argv[0])
if not os.path.exists(sys.argv[1]):
sys.exit('ERROR: Database %s was not found!' % sys.argv[1])
%
Оператор является устаревшим в пользу более мощногоstr.format
метода см PEP-3101 .Ответы:
Это синтаксис форматирования строки (который он заимствует из C).
Пожалуйста, смотрите "PyFormat" :
Редактировать: Вот действительно простой пример:
%s
Маркер позволяет мне вставить (и , возможно , форматировать) строку. Обратите внимание, что%s
токен заменяется тем, что я передаю строке после%
символа. Также обратите внимание, что здесь я также использую кортеж (когда у вас есть только одна строка, использование кортежа необязательно), чтобы проиллюстрировать, что несколько строк могут быть вставлены и отформатированы в одном выражении.источник
str.format
метода.(name,)
, а не толькоname
?Андрей ответит хорошо.
И просто, чтобы помочь вам немного больше, вот как вы используете несколько форматирования в одной строке
Если вы используете int вместо строки, используйте% d вместо% s.
источник
%s
целые числа, он просто будет преобразован в строку.print('This number will be padded with 4 zeros: %05d ' % 1)
- это будет работать.print('This number will be padded with 4 zeros: %05s ' % 1)
- это не будет `format
Метод был введен в Python 2.6. Это более способно и не намного сложнее в использовании:источник
%s
указывает тип преобразования строки при использовании возможностей форматирования строки Python. Более конкретно,%s
преобразует указанное значение в строку, используяstr()
функцию. Сравните это с%r
типом преобразования, который используетrepr()
функцию для преобразования значения.Посмотрите документы для форматирования строк .
источник
%s
и%d
являются Спецификаторами формата или местозаполнителями для форматирования строк / десятичных знаков / чисел и т. д.Наиболее часто используемый спецификатор формата:
%s
: строка%d
: десятичные дроби%f
: floatСамоочевидный код:
источник
В ответ на ваш второй вопрос: что делает этот код? ...
Это довольно стандартный код проверки ошибок для скрипта Python, который принимает аргументы командной строки.
Итак, первое
if
утверждение означает: если вы не передали мне аргумент, я расскажу вам, как вы должны передать мне аргумент в будущем, например, вы увидите это на экране:Следующий
if
оператор проверяет, существует ли в файловой системе «имя базы данных», переданное вами сценарию. Если нет, вы получите сообщение, подобное этому:Из документации :
источник
Вот хороший пример в Python3.
источник