2016-03-18 17 views
0

Python söz konusu olduğunda hala çok yeni Im, bu yüzden bana kolay. Bu kodu test ettiğimde, girilen giriş yerine "Yok" ile geri geliyor. Neden olabileceği hakkında bir fikrin var mı?Python Noob: Giriş hiçbiri olarak geri dönüyor

def inputLandValue(): 
    while(1): 
     try: 
      value=int(input('Please enter the value of the property ')) 
      break 
     except: 
      print('Please enter a whole number (10000)') 
      return value 
def main(): 
    while(1): 
     landValue = inputLandValue() 
     print(landValue) 
     doMoreStuff = input('Do you want to continue? y/n ') 
     if(doMoreStuff.lower() != 'y'): 
      break 
main() 
input() 

cevap

5

return value hattınızı çok uzağa itmişsinizdir. except: işleyicisinin bir parçasıdır, bu nedenle yalnızca no value! Bu dışında while döngü olmalıdır:

def inputLandValue(): 
    while(1): 
     try: 
      value=int(input('Please enter the value of the property ')) 
      break 
     except: 
      print('Please enter a whole number (10000)') 
    return value 

veya değiştirme breakreturn value ile: Gerçekten sadece ValueError ancak yakalamak gerekir

def inputLandValue(): 
    while(1): 
     try: 
      value=int(input('Please enter the value of the property ')) 
      return value 
     except: 
      print('Please enter a whole number (10000)') 

; Bu Pokemon değil, tüm catch'm kalkmayın:

except ValueError: 
+0

pokemon referansı için başka bir +1 vermek istiyorum! – Loufylouf

0

sadece main() içinde break yerine 'return value' koyarak sorunu çözebilirsiniz.

İlgili konular