O que %s
significa em Python? E o que o seguinte pedaço de código faz?
Por exemplo...
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])
%
operador foi descontinuado em favor dostr.format
método mais poderoso , consulte PEP-3101 .Respostas:
É uma sintaxe de formatação de string (que é emprestada de C).
Por favor, veja "PyFormat" :
Edit: Aqui está um exemplo muito simples:
O
%s
token me permite inserir (e potencialmente formatar) uma string. Observe que o%s
token é substituído pelo que eu passar para a sequência após o%
símbolo. Observe também que estou usando uma tupla aqui também (quando você tem apenas uma string usando uma tupla é opcional) para ilustrar que várias strings podem ser inseridas e formatadas em uma instrução.fonte
str.format
método mais poderoso .(name,)
e não apenasname
?A resposta de Andrew é boa.
E apenas para ajudá-lo um pouco mais, veja como você usa várias formatações em uma sequência
Se você estiver usando ints em vez de string, use% d em vez de% s.
fonte
%s
números inteiros, será apenas convertido em uma string.print('This number will be padded with 4 zeros: %05d ' % 1)
- isso vai funcionar.print('This number will be padded with 4 zeros: %05s ' % 1)
- isso não vai `O
format
método foi introduzido no Python 2.6. É mais capaz e não muito mais difícil de usar:fonte
%s
indica um tipo de conversão de string ao usar os recursos de formatação de string do python. Mais especificamente,%s
converte um valor especificado em uma string usando astr()
função Compare isso com o%r
tipo de conversão que usa arepr()
função para conversão de valor.Veja os documentos para formatação de string .
fonte
%s
e%d
são especificadores de formato ou espaços reservados para formatar seqüências de caracteres / decimais / flutuadores etc.MAIS especificador formato usado comum:
%s
: corda%d
: decimais%f
: flutuadorCódigo auto-explicativo:
fonte
Em resposta à sua segunda pergunta: O que esse código faz? ...
Esse é um código de verificação de erro bastante padrão para um script Python que aceita argumentos da linha de comando.
Portanto, a primeira
if
declaração se traduz em: se você não me passou uma discussão, eu vou lhe dizer como você deve me passar uma discussão no futuro, por exemplo, você verá isso na tela:A próxima
if
instrução verifica se o 'nome do banco de dados' que você transmitiu para o script realmente existe no sistema de arquivos. Caso contrário, você receberá uma mensagem como esta:A partir da documentação :
fonte
Aqui está um bom exemplo em Python3.
fonte