Eles são usados para formatar seqüências de caracteres. %s
atua como um espaço reservado para uma seqüência de caracteres enquanto %d
atua como um espaço reservado para um número. Seus valores associados são passados através de uma tupla usando o %
operador.
name = 'marcog'
number = 42
print '%s %d' % (name, number)
irá imprimir marcog 42
. Observe que o nome é uma sequência (% s) e o número é um número inteiro (% d para decimal).
Consulte https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting para obter detalhes.
No Python 3, o exemplo seria:
print('%s %d' % (name, number))
%s
é usado nas configurações dos mecanismos de pesquisa. O Chrome usa%s
para substituir as palavras-chave inseridas na barra de endereço. O Python usa de%s
maneira semelhante.print('description: %s' % descrip)
No%s
operador será substituído pela cadeia de texto armazenado nadescrip
variável. As chaves redondas evitar uma mensagem de erro em Python 3.do python 3 doc
%d
é para inteiro decimal%s
é para string ou objeto genérico e, no caso de objeto, será convertido em stringConsidere o seguinte código
a saída será
como você pode ver
%d
truncará para inteiro,%s
manterá a formatação,%f
será impressa como flutuante e%g
é usada para número genéricoobviamente
irá gerar uma exceção; você não pode converter string em número
fonte
%s
fosse usado para um número.%s
é usado como um espaço reservado para os valores da string que você deseja injetar em uma string formatada.%d
é usado como um espaço reservado para valores numéricos ou decimais.Por exemplo (para python 3)
Saída
fonte
Estes são espaços reservados:
Por exemplo:
'Hi %s I have %d donuts' %('Alice', 42)
Essa linha de código substituirá% s por Alice (str) e% d por 42.
Resultado:
'Hi Alice I have 42 donuts'
Isso pode ser alcançado com um "+" na maioria das vezes. Para entender melhor sua pergunta, você também pode verificar {} / .format (). Aqui está um exemplo: Formatação de string Python:% vs.
veja também aqui um vídeo tutorial do google python @ 40 ', com algumas explicações https://www.youtube.com/watch?v=tKTZoB2Vjuk
fonte
Os "comandos" de formatação
%d
e%s
string são usados para formatar strings. O%d
é para números e%s
é para seqüências de caracteres.Por exemplo:
e
Para passar vários argumentos:
print("%s %s %s%d" % ("hi", "there", "user", 123456))
retornaráhi there user123456
fonte
Todas essas são respostas informativas, mas nenhuma está chegando ao cerne da diferença entre
%s
e%d
.%s
diz ao formatador para chamar astr()
função no argumento e, como estamos coagindo a uma string por definição,%s
é essencialmente apenas um desempenhostr(arg)
.%d
por outro lado, está chamandoint()
o argumento antes de chamarstr()
, tipostr(int(arg))
, Isso causaráint
coerção e tambémstr
coerção.Por exemplo, eu posso converter um valor hexadecimal em decimal,
ou truncar uma bóia.
Mas a operação gerará uma exceção se o argumento não for um número.
Portanto, se a intenção é apenas chamar
str(arg)
, então%s
é suficiente, mas se você precisar de formatação extra (como formatar casas decimais flutuantes) ou outra coerção, os outros símbolos de formato serão necessários.Com a
f-string
notação, quando você deixa o formatador de fora, o padrão éstr
.O mesmo acontece com
string.format
; o padrão éstr
.fonte
%d
e%s
são espaços reservados, eles funcionam como uma variável substituível. Por exemplo, se você criar 2 variáveisvocê pode atribuir essas variáveis a uma sentença em uma string usando uma tupla das variáveis.
Observe que
%s
funciona para String e%d
funciona para variáveis numéricas ou decimais.se você imprimir
variable_3
ficaria assimEu estava procurando uma resposta no StackOverflow e encontrei mais de 45 respostas para minha pergunta.
fonte
Eles são especificadores de formato. Eles são usados quando você deseja incluir o valor de suas expressões Python em strings, com um formato específico imposto.
Veja Mergulhe no Python para uma introdução relativamente detalhada.
fonte
De acordo com os padrões mais recentes, é assim que deve ser feito.
Verifique os documentos python3.6 e o programa de amostra
fonte
Caso você queira evitar% s ou% d, então ..
Resultado:
fonte
%s
e%d
.print
é uma função no Python 3, não uma declaração.% s é usado para armazenar espaço para a string% d é usado para armazenar espaço para número
Saída do programa
este vídeo é aprofundado sobre essa dica https://www.youtube.com/watch?v=4zN5YsuiqMA
fonte
por falar
nisso ... python3.6 vem com o
f-strings
que facilita muito a formatação!Agora, se a sua versão python for maior que 3.6, você poderá formatar suas strings com estes métodos disponíveis:
fonte