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部分。他们乘以的数字只是从磅的转换率。
另外,一个侧面注释但不太重要的一个,最后的其他部分不起作用。该程序会显示“输入未定义”错误,而不是打印“您必须选择美元,欧元或日元。”
提前致谢
答案 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}},dollar
或euro
。因为对美元的比较是先受到影响,所以总是会遇到这种情况。
这些是代码运行所必需的更改。
额外:在这种情况下,您也不需要变量,因为您只在一个字段中使用它们。因此,在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