我是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:]
答案 0 :(得分:1)
您需要保存函数的返回值。 做这样的事情:
choice = checker(firstgo)
然后保存从您的函数返回的结果。
您声明的每个变量仅在您声明的函数范围内可用,
因此,当您在功能检查程序之外使用choice
时,您的程序不知道选择了什么,以及它为何无法工作。
答案 1 :(得分:0)
而不是:
checker(firstgo)
你需要:
choice = checker(firstgo)
如果你拥有它,checker
返回的值就会丢失。由choice
定义的checker
变量与在其外部定义的变量不同。您可以对不同范围中定义的不同变量使用相同的名称。这样您就不必担心程序中的其他位置可能已经使用了相同的名称。