最終プロジェクトを行うためにPythonを学んでいます。私は簡単な電卓を始めました。コードはほぼ終了しましたが、エラーがあります。電卓のエラー:TypeError: 'float'オブジェクトが呼び出せません
プログラムは私が罰金結果与えるが、私は別の動作プログラムを実行しようとするときは、私にこの問題を与える:
TypeError: 'float' object is not callable
プログラムは、演算子を選択するメニューが表示されます。その後、)ユーザーに値が関数によってデフnumero1(番号であれば数値1と数値2とチェックの価値を尋ねとデフnumero2()
あなたは私がそれを解決するのに役立つ可能性がありますか?
プログラムコードは以下の通りです:
import os #Importamos librerias que se usan en el programa
import sys
import time
def menu(): #Funcion para crear el menu
os.system('cls')
print ("********** Menu de la calculadora **********")
print ("\t1 - Sumar")
print ("\t2 - Restar")
print ("\t3 - Multiplicar")
print ("\t4 - Dividir")
print ("\t9 - Salir")
def numero1(): #Funcion para introduir un numero como primer valor
while True:
try:
numero1 = float(input("Inserta el primer valor: "))
except ValueError:
print("Introduce un número")
else:
return numero1
def numero2(): #Funcion para introducir un numero como segundo valor
while True:
try:
numero2 = float(input("Inserta el segundo valor: "))
except ValueError:
print("Introduce un número")
else:
return numero2
#Definimos 2 variables que vamos a usar
operador = 0
i = 1
#Mientas que la variable i sea mayor que cero se ejecuta el bucle (SIEMPRE)
while i > 0 :
# Mostramos el menu
menu()
#Preguntamos que operacion quiere realizar
operador = input("¿Que operación quieres realizar?: ")
while operador != "1" and operador != "2" and operador != "3" and operador != "4" and operador != "9":
os.system('cls')
menu()
print("Introduce un operador correcto")
operador = input("¿Que operación quieres realizar?: ")
if operador == "9": #Si es 9 cerramos el programa
os.system('cls')
print("SALIENDO.")
time.sleep(1)
os.system('cls')
print("SALIENDO..")
time.sleep(1)
os.system('cls')
print("SALIENDO...")
time.sleep(1)
sys.exit()
#Realizamos una operacion u otra
if operador == "1":
numero1 = numero1()
numero2 = numero2()
resultado = numero1 + numero2
elif operador == "2":
numero1 = numero1()
numero2 = numero2()
resultado = numero1 - numero2
elif operador == "3":
numero1 = numero1()
numero2 = numero2()
resultado = numero1 * numero2
elif operador == "4":
numero1 = numero1()
numero2 = numero2()
resultado = numero1/numero2
#Mostramos el resultado en pantalla y preguntamos si realizamos otra operación
print("El resultado es: ",resultado)
salir =(input("Pulsa cualquier tecla para realizar otra operación o 9 para salir..."))
if salir == "9":
os.system('cls')
print("SALIENDO.")
time.sleep(1)
os.system('cls')
print("SALIENDO..")
time.sleep(1)
os.system('cls')
print("SALIENDO...")
time.sleep(1)
sys.exit()
完全なトレースバックしてください。 'type(float)'を印刷してみてください。他の方法でタイプをシャドウしているかもしれません。 –
'' operador'が '' 1 ''、' '2" '、' '3" '、' '' '4" 'になっているかどうかを確認しているとき、それぞれの場合に同じコード行を不必要に繰り返すことになります。そのセクションの最初の 'if'文の上に置くだけで、コードの明快さを向上させることができます。 –