[ Foro de Python ]

TypeError

04-Feb-2020 17:44
Invitado (hdort)
4 Respuestas

Cordial saludo y muchas gracias por ayudarme, soy principiante.

ESTE ES EL CODIGO:


import math

print ("Programa de calculo de raiz cuadrada.")
numero=int(input("Introduce un número por favor: "))

intentos= 0

while numero <0:
	print("No se puede hallar la raiz de un número negativo.")

	if intentos==2:
		print("Has consumido demasiados intentos. El programa ha finalizado.")
		break;

	numero=int(input("Introduce un número por favor: "))

	if numero <0:
		intentos=intentos+1

if intentos<2:
	solucion=math.sqrt(numero)
	print("La raiz cuadrada de " + str(numero) + " es " + str(solucion))


Y ESTE ES EL ERROR:
Traceback (most recent call last):
 File "7 bucle while.py", line 35, in <module>
   print ("Programa de calculo de raiz cuadrada.")
TypeError: 'str' object is not callable


04-Feb-2020 17:57
Nacho Cabanes (+55)

Yo lo veo bien. De hecho, lo he probado en el entorno online de repl.it y me ha funcionado correctamente:

https://repl.it/languages/python3
 


04-Feb-2020 18:54
Invitado (hdort)

Gracias  Nacho, lo correré en otro equipo para ver si funciona. Puede que tenga algo corrupto en mi instalación de Python.

Además, cuando corro otros códigos similares, no me arroja ese error.

Si alguien conoce la posible causa, agradecería mucho la ayuda. Estaré atento.
De nuevo mil gracias.


04-Feb-2020 22:05
Nacho Cabanes (+55)

Un detalle más: quizá no influya para nada, pero el nombre del fichero "7 bucle while.py" no me gusta nada. Es preferible usar nombres que no tengan espacios intermedios (ni acentos o caracteres internacionales).


04-Feb-2020 23:43
Invitado (hdort)

Ya solucioné el problema, pero me queda el sin-sabor que no supe que causó el error. Todo lo que hice fue copiar el código a un nuevo archivo y antes de darle nombre, borré el original que me daba el error, luego le puse el mismo nombre al nuevo y funcionó correctamente.

Estoy contento y agradecido por haber encontrado este foro. Me registraré por si necesito ayuda mientras aprendo y apenas tenga los conocimientos suficientes, estaré presto para ayudar a otros.

Gracias y hasta pronto.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)