我正在使用python中的第一个货币转换器,只有两种货币,我不明白为什么这不能正常工作?我决定在函数中定义所有函数然后再调用它们,但这不起作用。 我是用葡萄牙语做的。
这是我的代码:
from decimal import Decimal as dec
def menu_conv():
print(" ")
print("»»»»»»»»»»»»»»» Bem-vindo ««««««««««««««")
print("»»»»»»»»»» Conversor de Moeda ««««««««««")
print(" ")
print("**** Selecione a conversao desejada ****")
print(" ")
print("********* 1. Euros -> Dólares **********")
print("********* 2. Dólares -> Euros **********")
print("*************** 3. Saír ****************")
print(" ")
def opcao():
opcao = int(input("Insira a sua opçao: "))
if opcao == 1:
dolar()
elif opcao == 2:
euro()
else:
nao()
def dolar():
print(" ")
montante = dec(input("Qual o montante que deseja converter? €"))
DOLAR = dec(1.39)
cambioDolar = dec(montante / DOLAR)
print(" ")
print("O Valor em Dólares é: ${:.2f}".format(cambioDolar))
print(" ")
print("Deseja fazer nova conversao?")
print(" ")
opcao_txt()
def euro():
print(" ")
montante = dec(input("Qual o montante que deseja converter? $"))
EURO = dec(1.39)
cambioEuro = dec(montante / EURO)
print(" ")
print(" O Valor em Euros é: €{:.2f}".format(cambioEuro))
print(" ")
print("Deseja fazer nova conversao?")
print(" ")
opcao_txt()
def opcao_txt():
opcao = input("» S/N: ")
if opcao == 'S'or's':
menu_conv()
opcao()
else:
nao()
def nao():
print("Até à próxima!")
exit()
menu_conv()
opcao()
这是我尝试进行其他转换时遇到的错误:
»»»»»»»»»»»»»»» Bem-vindo ««««««««««««««
»»»»»»»»»» Conversor de Moeda ««««««««««
**** Selecione a conversao desejada ****
********* 1. Euros -> Dólares **********
********* 2. Dólares -> Euros **********
*************** 3. Saír ****************
Insira a sua opçao: 1
Qual o montante que deseja converter? €1000
O Valor em Dólares é: $719.42
Deseja fazer nova conversao?
» S/N: s
»»»»»»»»»»»»»»» Bem-vindo ««««««««««««««
»»»»»»»»»» Conversor de Moeda ««««««««««
**** Selecione a conversao desejada ****
********* 1. Euros -> Dólares **********
********* 2. Dólares -> Euros **********
*************** 3. Saír ****************
Traceback (most recent call last):
File "conversor_moeda.py", line 68, in <module>
opcao()
File "conversor_moeda.py", line 20, in opcao
dolar()
File "conversor_moeda.py", line 37, in dolar
opcao_txt()
File "conversor_moeda.py", line 57, in opcao_txt
opcao()
TypeError: 'str' object is not callable
答案 0 :(得分:0)
这是因为在你的函数opcao_txt中你有一个名为opcao的字符串变量,它也是一个函数。因此,当您调用opcao()时,您实际上正在尝试调用字符串。
答案 1 :(得分:0)
在opcao_txt
中,您创建了一个名为opcao
的局部变量,该变量优先。它有一个字符串值。然后,您尝试使用调用语法()
调用它,然后您就会收到该错误。为变量使用不同的名称应该修复它。