"Resolvendo o TypeError: Tipo(s) de operando não suportado(s) para -: 'str' e 'int'"
Ao tentar codificar em Python, não é incomum encontrar erros como o erro "TypeError: tipos de operandos não suportados para -: 'str' e 'int'". Esse erro normalmente ocorre ao tentar realizar operações matemáticas em diferentes tipos de dados, como subtrair um número inteiro de uma string.
Para entender esse erro, vamos examinar o código que levou a ele:
def cat_n_times(s, n):
while s != 0:
print(n)
s = s - 1
text = input("What would you like the computer to repeat back to you: ")
num = input("How many times: ")
cat_n_times(num, text)
O problema aqui está na função de entrada, que retorna uma string para texto e num. Enquanto o código tenta subtrair um número inteiro (s - 1) de uma string (num), resultando no erro.
Solução 1: Converta a entrada
One A solução é converter a entrada de uma string em um número inteiro antes de realizar operações matemáticas. Isso pode ser feito usando a função int():
num = int(input("How many times: "))
Ao converter num em um número inteiro, podemos garantir compatibilidade para operações matemáticas com s.
Solução 2: Use Iteração Alternativa
Em vez de acompanhar manualmente os índices, considere empregar uma abordagem mais Pythonic para iteração:
def cat_n_times(s, n):
for i in range(n):
print(s)
text = input("What would you like the computer to repeat back to you: ")
num = int(input("How many times: "))
cat_n_times(text, num)
Aqui, o loop for com range(n) lida com a iteração de forma eficaz.
Considerações sobre API
O erro também destaca possíveis problemas com o design da API. Pode ser mais intuitivo que text seja a string e num represente o número de vezes. Neste caso, a API pode ser modificada adequadamente.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3