如果语句选择货币转换器(python)中的第一个选项

如果语句选择货币转换器(python)中的第一个选项,python,if-statement,Python,If Statement,我是Python的初学者,你可能知道。我想让这个程序做的就是让用户选择一种货币(convert_to),然后选择他们想要兑换的金额(amount),然后程序会为他们兑换 当我运行程序时,if语句不能正常工作。它没有看到convert_to是什么,而是通过convert_to==美元部分,而不管您是键入欧元还是日元。他们被乘以的数字只是英镑的换算率 还有一个旁注,但不太重要,最后的else部分不起作用。程序将出现“输入未定义”错误,而不是打印“您必须选择美元、欧元或日元” 提前感谢请尝试更改为:

我是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
to
dollar
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
to
dollar
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
在溜溜球