从函数中返回值

时间:2014-11-23 19:09:00

标签: python python-2.7

我是Python(和编程)的新手,只是尝试制作一个程序来转换小数。我已经定义了一个函数,因为我希望稍后在程序中重用它,但是我在将函数的结果传递给程序的其余部分时遇到了问题。

print "For decimal to binary press B"
print "For decimal to octal press O"
print "For decimal to hexadecimal press H"

def checker(n):
    choice = n
    while choice not in ("B", "O", "H"):
        print "That is not a choice."
        choice = str.upper(raw_input("Try again: "))
    else:
        return choice

firstgo = str.upper(raw_input("Enter your choice: "))
checker(firstgo)

if choice == 'B':
    n = int(raw_input("Enter the number to be converted to binary: "))
    f = bin(n)
    print n, "in binary is", f[2:]
elif choice == 'O':
    n = int(raw_input("Enter the number to be converted to octal: "))
    f = oct(n)
    print n, "in octal is", f[1:]
elif choice == 'H':
    n = int(raw_input("Enter the number to be converted to hexadecimal: "))
    f = hex(n)
    print n, "in hexadecimal is", f[2:]

2 个答案:

答案 0 :(得分:1)

您需要保存函数的返回值。 做这样的事情:

choice = checker(firstgo)

然后保存从您的函数返回的结果。

您声明的每个变量仅在您声明的函数范围内可用, 因此,当您在功能检查程序之外使用choice时,您的程序不知道选择了什么,以及它为何无法工作。

答案 1 :(得分:0)

而不是:

checker(firstgo)

你需要:

choice = checker(firstgo)

如果你拥有它,checker返回的值就会丢失。由choice定义的checker变量与在其外部定义的变量不同。您可以对不同范围中定义的不同变量使用相同的名称。这样您就不必担心程序中的其他位置可能已经使用了相同的名称。