No Python 2 eu usei:
print "a=%d,b=%d" % (f(x,n),g(x,n))
Eu tentei:
print("a=%d,b=%d") % (f(x,n),g(x,n))
python
string
python-3.x
Mike L
fonte
fonte
%
sempre foi um operador de cadeia, não relacionado àprint
instrução Você pode, por exemplo, criar uma sequência coms="a=%d,b=%d"%(f(x,n),g(x,n))
, e imprimi-la comprint s
.Respostas:
No Python2,
print
havia uma palavra-chave que introduzia uma declaração:No Python3,
print
é uma função que pode ser chamada:Nas duas versões,
%
é um operador que requer uma sequência no lado esquerdo e um valor ou uma tupla de valores ou um objeto de mapeamento (comodict
) no lado direito.Portanto, sua linha deve ficar assim:
Além disso, a recomendação para Python3 e mais recente é usar a
{}
formatação -style em vez de%
formatação -style:O Python 3.6 introduz ainda outro paradigma de formatação de strings : f-strings .
fonte
print('a={first:4.2f}, b={second:03d}'.format(first=f(x,n),second=g(x,n)))
onde este exemplo mostra como você pode usar os modificadores de estilo printf e ainda usar palavras-chave.A maneira mais recomendada de fazer é usar o
format
método Leia mais sobre isso aquifonte
Função printf () simples do Python Cookbook de O'Reilly .
Exemplo de saída:
fonte
PRINT
eFORMAT
...? Voltar no tempo 60 + anos para os dias de Fortran :)O Python 3.6 introduziu f-strings para interpolação em linha. O que é ainda melhor é que ela estendeu a sintaxe para permitir também especificadores de formato com interpolação. Algo em que eu estava trabalhando enquanto pesquisava isso no Google (e me deparei com essa pergunta antiga!):
O PEP 498 tem os detalhes. E ... classificou minha irritação com especificadores de formato em outros idiomas - permite especificadores que podem ser expressões! Yay! Consulte: Especificadores de formato .
fonte
Exemplo simples:
print("foo %d, bar %d" % (1,2))
fonte
Um mais simples.
Então:
fonte
Como você
%
está fora dosprint(...)
parênteses, você está tentando inserir suas variáveis no resultado da suaprint
chamada.print(...)
retornaNone
, para que isso não funcione, e também há a pequena questão de você já ter impresso seu modelo nessa viagem no tempo e no tempo sendo proibida pelas leis do universo em que habitamos.A coisa toda que você deseja imprimir, incluindo o
%
operando e, precisa estar dentro da suaprint(...)
chamada, para que a cadeia possa ser criada antes de ser impressa.Adicionei alguns espaços extras para torná-lo mais claro (embora eles não sejam necessários e geralmente não sejam considerados bons estilos).
fonte
Outras palavras printf ausente em python ... Estou surpreso! O melhor código é
Por causa deste formulário, permite não imprimir \ n. Todos os outros não. É por isso que a impressão é ruim de operação. E você também precisa escrever args de forma especial. Não há desvantagens na função acima. É uma forma usual padrão da função printf.
fonte
fonte