2017-05-09 149 views
1

内部变量我有一些麻烦我的代码,它口口声声说定义功能

NameError: name 'km' is not defined 

我在函数定义此。 如果我使用选择功能来做到这一点会更好吗?

def userinput(): 
    while True: 
     try: 
      km = int(input("Enter the amount of kilometres you need (1 or 2)")) 
      break 
     except ValueError: 
      print ("Oops! That was no valid number. Try again...") 
    return 
userinput() 
if km >= 3: 
    userinput() 
if km <= 0: 
    userinput() 
if km == 1: 
    zone = 0.01862 
if km == 2: 
    zone = 0.02 
+1

变量仅在首次声明的范围内可见 – Alnitak

回答

1

尝试以下操作:

def userinput(): 
    while True: 
     try: 
      km = int(input("Enter the amount of kilometres you need (1 or 2)")) 
      break 
     except ValueError: 
      print ("Oops! That was no valid number. Try again...") 
    return km 

km = userinput() 
if km >= 3: 
    km = userinput() 
if km <= 0: 
    km = userinput() 
if km == 1: 
    zone = 0.01862 
if km == 2: 
    zone = 0.02 

的原因是因为参宿一说 -

变量只在它们首先声明

范围内可见

希望这会帮助你,Yahli。