Formatação da string é a técnica de criar/fazer uma string substituindo os espaços reservados em uma string por valores. Ao executar operações em seqüências de caracteres, vários erros ocorrem no Python. A mensagem de erro “Nem todos os argumentos convertidos durante a formatação da string”Aparece ao tentar formatar as strings dadas usando a sintaxe inadequada ou usando o operador do módulo“%”Com cordas e números.
Neste blog do Python, exploraremos diferentes causas e soluções para o erro especificado fornecido. Vamos começar com o seguinte conteúdo:
Quais são as causas do erro “nem todos os argumentos convertidos durante a formatação da string” erro?
O erro discutido pode ocorrer devido a vários motivos, incluindo o seguinte:
Causa 1: Usando sintaxe incorreta
Este erro pode ocorrer quando a sintaxe incorreta do operador do módulo “%”É usado para invocar e anexar os valores inicializados. Vamos dar uma olhada no exemplo abaixo:
name = "Joseph"
idade = 23
output = "Meu nome é e eu tenho anos de idade"%(nome, idade)
Imprimir (saída)
No código acima, a sintaxe incorreta do operador do módulo “%”É usado para colocar o valor de“nome" e "idade”Dentro da string sem usar os espaços reservados apropriados, eu.e., ““%s" e "%d”Etc. Contra os tipos de dados.
Saída
Como resultado, a limitação declarada é enfrentada devido aos espaços reservados ausentes contra os valores invocados.
Causa 2: Usando o operador do módulo "%" com número inteiro e string
A outra causa desse erro pode ser usando o operador discutido com inteiro e string. Por exemplo, vamos dar uma olhada no código de exemplo abaixo:
nome = "45"
idade = 23
saída = nome % idade
Imprimir (saída)
No trecho de código acima, o operador do módulo “%”É colocado entre a variável da string“nome”E variável inteira“idade”Para devolver o restante correspondente.
Saída
Como ambos os valores compreendem tipos de dados conflitantes, o cálculo não pode ser realizado e o erro declarado é enfrentado.
Soluções para corrigir o erro “Nem todos os argumentos convertidos durante a formatação da string”
A seguir, estão algumas soluções para corrigir a limitação declarada em Python:
Solução 1: Corrija a sintaxe colocando os espaços reservados apropriados
Para corrigir esse erro, precisamos invocar os valores de string inicialize colocando o espaço reservado correspondente, i i.e., ““%s", do seguinte modo:
nome = "John"
Age = "30"
output = "Meu nome é %s e eu tenho %anos de idade" %(nome, idade)
Imprimir (saída)
No código acima, o espaço reservado “%s”É usado em vez dos aparelhos encaracolados“”Para invocar os valores de string inicializados adequadamente.
Saída
Como visto, os valores de string inicializados são acessados e anexados de acordo.
Solução 2: Usando o método "formato ()"
O "formatar()”Método formata o valor fornecido/especificado de acordo com o especificador de formato. Este método também pode ser utilizado para formatar os valores invocados diretamente sem usar os espaços reservados.
Sintaxe
formato (Val, formato)
Na sintaxe acima:
Exemplo
Vamos ver o seguinte código:
nome = "John"
Age = "30"
output = "Meu nome é e eu tenho anos".formato (nome, idade)
Imprimir (saída)
No bloco de código acima, o “formatar()”O método é usado para conter os valores de string invocados como seus argumentos, retornando e anexando os valores adequadamente.
Saída
Esta saída implica que os valores da string são recuperados adequadamente.
Solução 3: lançar o tipo de dados
O erro também pode ser resolvido convertendo o “corda" para "int Datatype via fundição, como segue:
nome = "45"
idade = 23
saída = int (nome) % de idade
Imprimir (saída)
No código acima, o valor da string inicializado é fundido para “int”E então o operador do módulo“%”É aplicado entre o padrão e o número inteiro fundido para recuperar o restante correspondente.
Saída
Como visto, o restante é buscado adequadamente.e., 45/23 = “22”.
Conclusão
O "Nem todos os argumentos convertidos durante a formatação da string”O erro pode ser resolvido corrigindo a sintaxe do operador do módulo“%”Via colocação de espaço reservado apropriado ou usando o“formatar()”Método em vez do operador %, ou converter o“corda" em "int”Via fundindo o tipo de dados. Este guia Python discutiu vários motivos e soluções para resolver a limitação discutida.