IF语句在货币转换器中选择第一个选项(python)

时间:2016-08-29 17:59:07

标签: python if-statement

print "Pound Sterling converter"
print "You can convert pounds to either dollars, euros or yen"

print

dollar = 0
euro = 0
yen = 0

convert_to = input ("What currency do you want to convert to? ")
amount = input("How much would you like to convert? ")

print

if convert_to == dollar:
    amount = amount * 1.3
elif convert_to == euro:
     amount = amount * 1.17
elif convert_to == yen:
    amount = amount * 133.66
else:
    print "You must pick either dollar, euro or yen."

print amount

我是Python的初学者,你可能会说。我希望这个程序要做的就是让用户选择一种货币(convert_to),然后选择他们想要转换的数量(金额),然后程序将为它们转换它。

运行程序时,if语句无法正常运行。无论是否输入欧元或日元,它都不会看到convert_to是什么,而是通过convert_to == dollar部分。他们乘以的数字只是从磅的转换率。

另外,一个侧面注释但不太重要的一个,最后的其他部分不起作用。该程序会显示“输入未定义”错误,而不是打印“您必须选择美元,欧元或日元。”

提前致谢

5 个答案:

答案 0 :(得分:1)

请尝试更改为:

if convert_to == "dollar":
    amount = float(amount) * 1.3
elif convert_to == "euro":
     amount = float(amount) * 1.17
elif convert_to == "yen":
    amount = float(amount) * 133.66

有2项变更。首先是将货币(美元,欧元,日元)设置为字符串,这样就可以将其与用户输入进行比较,用户的输入也是字符串。其次,用户输入的金额是字符串,因此我们必须将其转换为浮点数才能计算转换金额。

答案 1 :(得分:1)

如果我理解正确,用户将输入" 0"," 1"或" 2"作为输入,分别用于兑换美元,欧元或日元。所以你需要改变美元,欧元和日元的初始值。更改它,具有整数输入的版本将起作用。

dollar = 0
euro = 1
yen = 2

如果输入是一个字符串,例如"美元","欧元"或" yen",变量需要更改为这些相应的字符串,因此首先需要将变量设置为:

dollar = "dollar"
euro = "euro"
yen = "yen"

然后更改raw_input的输入类型,因为python需要这种类型的输入来识别String输入。因此,请将convert_to更改为:

convert_to = raw_input ("What currency do you want to convert to? ")

如果您尝试将字符串传递给input变量,它将始终返回0.并且由于所有变量的初始值都是0,因此在将convert_to与{进行比较时,if语句返回true {1}},dollareuro。因为对美元的比较是先受到影响,所以总是会遇到这种情况。 这些是代码运行所必需的更改。

额外:在这种情况下,您也不需要变量,因为您只在一个字段中使用它们。因此,在if语句中,您可以将它们与特定字符串进行比较,如下:

yen

希望它有所帮助。

答案 2 :(得分:0)

您的代码无效,因为您假设input()函数返回一个整数。它不是。 input()函数返回一个字符串,所以:

convert_to == dollars

等于:

str == 1

永远不会是真的。只需更改您与字符串进行比较的内容即可。 而不是使用变量只是说convert_to == "dollars",等等其他选择。此外,您必须将此行amount = input("How much would you like to convert? ")更改为此amount = int(input("How much would you like to convert? ")),这样您才能将输入作为整数而不是字符串。

print "Pound Sterling converter"
print "You can convert pounds to either dollars, euros or yen"


convert_to = raw_input("What currency do you want to convert to? ")
amount = int(raw_input("How much would you like to convert? "))


if convert_to == "dollars":
    amount *= 1.3
elif convert_to == "euros":
     amount *=  1.17
elif convert_to == "yen":
    amount *= 133.66
else:
    print "You must pick either dollar, euro or yen." 

print amount

答案 3 :(得分:0)

首先,美元,欧元和日元的起始值相同(0)。

我认为,你必须提出不同的价值观。

dollar = 0
euro = 1
yen = 2

然后,您可以显示金额(打印金额),但您的计算值为" amountpython"。

答案 4 :(得分:0)

在您的情况下,美元,欧元和日元,您已初始化为零的相同值。 您应该分配不同的值,例如;

dollar=0
euro=0
yen=0

然后试试这个

print "Pound Sterling converter"
print "You can convert pounds to either dollars, euros or yen"


convert_to = input ("What currency do you want to convert to? ")
amount = int(input("How much would you like to convert? "))


if convert_to == "dollars":
    amount *= 1.3
elif convert_to == "euros":
    amount *=  1.17
elif convert_to == "yen":
    amount *= 133.66
else:
    print "You must pick either dollar, euro or yen." 

print amount