Python nem todos os argumentos convertidos durante a formatação da string

Python nem todos os argumentos convertidos durante a formatação da string

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 deste erro?
    • Soluções para corrigir este erro

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:

    • ““Val”Corresponde ao valor que precisa ser formatado.
    • ““formatar”Refere -se à especificação de como o valor deve ser formatado.

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.