如果语句选择货币转换器(python)中的第一个选项
我是Python的初学者,你可能知道。我想让这个程序做的就是让用户选择一种货币(convert_to),然后选择他们想要兑换的金额(amount),然后程序会为他们兑换 当我运行程序时,if语句不能正常工作。它没有看到convert_to是什么,而是通过convert_to==美元部分,而不管您是键入欧元还是日元。他们被乘以的数字只是英镑的换算率 还有一个旁注,但不太重要,最后的else部分不起作用。程序将出现“输入未定义”错误,而不是打印“您必须选择美元、欧元或日元”如果语句选择货币转换器(python)中的第一个选项,python,if-statement,Python,If Statement,我是Python的初学者,你可能知道。我想让这个程序做的就是让用户选择一种货币(convert_to),然后选择他们想要兑换的金额(amount),然后程序会为他们兑换 当我运行程序时,if语句不能正常工作。它没有看到convert_to是什么,而是通过convert_to==美元部分,而不管您是键入欧元还是日元。他们被乘以的数字只是英镑的换算率 还有一个旁注,但不太重要,最后的else部分不起作用。程序将出现“输入未定义”错误,而不是打印“您必须选择美元、欧元或日元” 提前感谢请尝试更改为:
提前感谢请尝试更改为:
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
有两个变化。第一个是将货币(美元、欧元、日元)设置为字符串,这样就可以将其与用户的输入(也是字符串)进行比较。第二,用户输入的金额再次是字符串,因此我们必须将其转换为浮点数以计算转换后的金额。请尝试更改为:
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
有两个变化。第一个是将货币(美元、欧元、日元)设置为字符串,这样就可以将其与用户的输入(也是字符串)进行比较。其次,用户输入的金额再次是字符串,因此我们必须将其转换为浮点数,以便计算转换后的金额。您的代码不起作用,因为您假设
input()
函数返回一个整数。事实并非如此。input()
函数返回一个字符串,因此:
convert_to==美元
等于:
str==1
这永远不会是真的。只需将您正在比较的内容更改为字符串。
不要使用变量,只需对其他选项说convert\u to==“dollars”
,依此类推。此外,您必须将此行amount=input(“您希望转换多少?”)
更改为此amount=int(input(“您希望转换多少?”))
,以便可以将输入作为整数而不是字符串获取
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
您的代码不起作用,因为您假定
input()
函数返回一个整数。事实并非如此。input()
函数返回一个字符串,因此:
convert_to==美元
等于:
str==1
这永远不会是真的。只需将您正在比较的内容更改为字符串。
不要使用变量,只需对其他选项说convert\u to==“dollars”
,依此类推。此外,您必须将此行amount=input(“您希望转换多少?”)
更改为此amount=int(input(“您希望转换多少?”))
,以便可以将输入作为整数而不是字符串获取
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
首先,美元、欧元和日元的起始值相同(0) 我认为,你必须把不同的价值观
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
然后,您可以显示金额(打印金额),但您的计算值为“amountpython”。首先,美元、欧元和日元具有相同的起始值(0) 我认为,你必须把不同的价值观
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
然后,您可以显示金额(打印金额),但您的计算值是“amountpython”。如果我理解正确,用户将输入“0”、“1”或“2”作为输入,分别用于美元、欧元或日元的兑换。所以你需要改变美元、欧元和日元的初始值。更改此选项后,具有整数输入的版本将正常工作
dollar = 0
euro = 1
yen = 2
如果输入是“美元”、“欧元”或“日元”等字符串,则需要将变量更改为这些相应的字符串,因此首先需要将变量设置为:
dollar = 0
euro = 1
yen = 2
然后更改原始输入的输入类型,因为python需要这种类型的输入来识别字符串输入。因此,将转换为为:
dollar = "dollar"
euro = "euro"
yen = "yen"
如果尝试将字符串传递给输入
变量,它将始终返回0。由于所有变量的初始值均为0,当比较convert_to
todollar
、euro
或yern
时,if语句返回true。因为与美元的比较是先发生的,所以总是会发生这种情况。
这些是代码运行所需的更改
额外:在这种情况下,您也不需要变量,因为您只在一个字段中使用它们。因此,在if语句中,您可以将它们与特定字符串进行比较,如下所示:
convert_to = raw_input ("What currency do you want to convert to? ")
希望有帮助。如果我理解正确,用户将输入“0”、“1”或“2”作为输入,分别用于美元、欧元或日元的兑换。所以你需要改变美元、欧元和日元的初始值。更改此选项后,具有整数输入的版本将正常工作
dollar = 0
euro = 1
yen = 2
如果输入是“美元”、“欧元”或“日元”等字符串,则需要将变量更改为这些相应的字符串,因此首先需要将变量设置为:
dollar = 0
euro = 1
yen = 2
然后更改原始输入的输入类型,因为python需要这种类型的输入来识别字符串输入。因此,将转换为为:
dollar = "dollar"
euro = "euro"
yen = "yen"
如果尝试将字符串传递给输入
变量,它将始终返回0。由于所有变量的初始值均为0,当比较convert_to
todollar
、euro
或yern
时,if语句返回true。因为与美元的比较是先发生的,所以总是会发生这种情况。
这些是代码运行所需的更改
额外:在这种情况下,您也不需要变量,因为您只在一个字段中使用它们。因此,在if语句中,您可以将它们与特定字符串进行比较,如下所示:
convert_to = raw_input ("What currency do you want to convert to? ")
希望有帮助。在美元、欧元和日元的情况下,您已初始化为零的相同值。
例如,您应该指定不同的值
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."
那就试试这个
dollar=0
euro=0
yen=0
在溜溜球