"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo resolver \"TypeError: tipos de operandos no admitidos para errores -: \'str\' y \'int\'\"?

¿Cómo resolver \"TypeError: tipos de operandos no admitidos para errores -: \'str\' y \'int\'\"?

Publicado el 2024-11-09
Navegar:959

How to Resolve \

"Solución del error de tipo: tipos de operandos no admitidos para -: 'str' y 'int'"

Al intentar codificar en Python, no es raro encontrar errores como el error "TypeError: tipos de operandos no admitidos para -: 'str' y 'int'". Este error suele ocurrir al intentar realizar operaciones matemáticas en diferentes tipos de datos, como restar un número entero de una cadena.

Para comprender este error, examinemos el código que lo generó:

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)

El problema aquí radica en la función de entrada, que devuelve una cadena tanto para texto como para num. Mientras el código intenta restar un número entero (s - 1) de una cadena (num), lo que genera el error.

Solución 1: convertir la entrada

Uno La solución es convertir la entrada de una cadena a un número entero antes de realizar operaciones matemáticas. Esto se puede hacer usando la función int():

num = int(input("How many times: "))

Al convertir num a un número entero, podemos asegurar compatibilidad para operaciones matemáticas con s.

Solución 2: usar iteración alternativa

En lugar de realizar un seguimiento manual de los índices, considere emplear un enfoque más pitónico para la iteración:

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)

Aquí, el bucle for con rango(n) maneja la iteración de manera efectiva.

Consideraciones de API

El error también destaca problemas potenciales con el diseño de API. Puede ser más intuitivo que text sea la cadena y num represente el número de veces. En este caso, la API se puede modificar en consecuencia.

Declaración de liberación Este artículo se reimprime en: 1729316118 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3