忽略IF的Python解释器-ELIF语句

时间:2019-01-16 23:55:59

标签: python python-3.x

我正在尝试制作一个非常简单的Python程序,该程序会将USD转换为几种不同的货币。我在处理IF / ELIF语句时遇到麻烦。每当我在解释器中运行代码(在本例中为Pycharm)时,解释器都会提示我输入要转换的值,然后输入要转换为的货币,然后完成而不打印我在其中设置的任何内容IF / ELIF语句。

代码:

import os

os.system('cls')

# This code starts the program and explains
# the purpose of the program to the user.
print()
print("Hello User")
print("This program will convert dollars to yen.")
print()

# This code prompts the user to enter a dollar amount.
USD = input("Amount of dollars: ")

# This code converts the user entered amount as a floating
# point integer for ease of calculation and error correcting.
var1 = float(USD)

print("YEN: 1")
print("EUR: 2")
print("RUB: 3")
print("Yuan: 4")
var2 = input("What Currency Do You Want To Convert To?: ")


def my_converter():
    if var2 == 1:
        var3 = var1 * float(114.62)
        var4 = "Yen"
        print(USD, "U.S. Dollars equals", var3, var4)
    elif var2 == 2:
        var3 = var1 * float(1.14)
        var4 = "Euro"
        print(USD, "U.S. Dollars equals", var3, var4)
    elif var2 == 3:
        var3 = var1 * float(0.015)
        var4 = "Rubles"
        print(USD, "U.S. Dollars equals", var3, var4)
    elif var2 == 4:
        var3 = var1 * float(0.15)
        var4 = "Yuan"
        print(USD, "U.S. Dollars equals", var3, var4)

我刚刚接触Python,所以我可能只是缺少一些明显的东西,但是任何帮助将不胜感激。抱歉,如果这是一个重复或愚蠢的问题。

3 个答案:

答案 0 :(得分:1)

var2类型为字符串,将其转换为int。

var2 = int(var2)

如您所知,'1' == 1是错误的。

答案 1 :(得分:1)

您没有调用函数my_converter()。调用函数本质上就是要运行它。要调用该函数,只需在程序末尾的未缩进的行上键入my_converter()

答案 2 :(得分:1)

两个小问题,您没有调用该函数,而是尝试在逻辑测试中比较输入中的字符串和int。

...
var2 = int(input("What Currency Do You Want To Convert To?: "))

def my_converter():
    if var2 == 1:
        var3 = var1 * float(114.62)
        var4 = "Yen"
        print(USD, "U.S. Dollars equals", var3, var4)
    elif var2 == 2:
        var3 = var1 * float(1.14)
        var4 = "Euro"
        print(USD, "U.S. Dollars equals", var3, var4)
    ...


my_converter()

这现在可以正常工作