2015-10-11 23 views
0

我知道這可能是一個相當簡單的問題,但我遇到了函數格式問題。我收到了很多'意想不到的縮進'和'意想不到的令牌'。我一直試圖正確地格式化功能,但我不知道爲什麼這些錯誤不斷出現。這裏是我的功能:在Python中格式化代碼時的錯誤

def stringCheck(stringForCheck, letterOrNumber): 

    valid = True 

    x = 0 

    a = int(ord(stringForCheck) 

    length = len(stringForCheck) 

     if LetterOrNumber == 'Letter': 

      lowerBoundary = 65 

      upperBoundary = 90 

     elif LetterOrNumber == 'Number': 

      lowerBoundary = 48 

      upperBoundary = 57 

     while valid == True and x < length: 

      if a < lowerBoundary or a > upperBoundary: 

       valid = False 

      else: 

       valid = True 

     x = x + 1 

    stringCheck = valid 



stringCheck('2','Number') 
+1

首先,什麼是你的文本編輯器?在編寫Python時使用nano或vim。 https://www.python.org/dev/peps/pep-0008/#indentation – mertyildiran

+0

嗨,我目前正在使用Visual Studio 2015 –

+1

嗯。然後使用Atom:https://atom.io你能分享調試輸出嗎?意外的令牌爲哪一行? – mertyildiran

回答

3
  1. 後添加一個右括號去掉不必要的空白行
  2. 您在這裏缺少一個右括號:a = int(ord(stringForCheck)
  3. 從線路if LetterOrNumber == 'Letter':到您的while循環線路有一個縮進級別太多。

固定代碼後它應該是這個樣子:

def stringCheck(stringForCheck, letterOrNumber): 
    valid = True 
    x = 0 
    a = int(ord(stringForCheck)) 
    length = len(stringForCheck) 

    if LetterOrNumber == 'Letter': 
     lowerBoundary = 65 
     upperBoundary = 90 
    elif LetterOrNumber == 'Number': 
     lowerBoundary = 48 
     upperBoundary = 57 

    while valid is True and x < length: 
     if a < lowerBoundary or a > upperBoundary: 
      valid = False 
     else: 
      valid = True 

    x = x + 1 
    stringCheck = valid 

stringCheck('2', 'Number') 
+0

謝謝Christoph,這個工作很完美。 –

0

試線

a = int(ord(stringForCheck))