2015-02-10 34 views
0

以下是與主程序分離的部分,以便在測試代碼片段時進行測試。 「是」輸出用於測試每個需要查看錯誤出現位置的字符串方法。這似乎不起作用,我無法弄清楚爲什麼,因爲我已經把所有的測試標準英國註冊,檢查字符,因爲他們從輸入顯示。Python:標準英國區的多個字符串測試,爲什麼不工作?

正如你可以看到一個非常低的水平(Python新手)程序員,請考慮,因爲你提供的解決方案。非常感謝

def main(): 
    reg_number=input("What is your reg number?: ") 
    correct_length = False 
    first_two_char_capital = False 
    next_two_char_digits= False 
    next_char_space = False 
    last_three_char_capital= False 

    first_two_char_capital =reg_number[0:2] 
    print(first_two_char_capital) 
    next_two_char_digits=reg_number[2:4] 
    print (next_two_char_digits) 
    next_char_space=reg_number[4:5] 
    print(next_char_space) 
    last_three_char_capital=reg_number[5:8] 
    print (last_three_char_capital) 

    if len (reg_number) >= 8: 
      correct_length = True 
      print("yes1") 

      for ch in reg_number: 
       if first_two_char_capital.isupper(): 
        first_two_char_capital = True 
        print("yes2") 
       if next_two_char_digits.isdigit(): 
        next_two_char_digits = True 
        print("yes3") 
       if next_char_space.isspace(): 
        next_char_space = True 
        print("yes4") 
       if last_three_char_capital.isupper(): 
        last_three_char_capital = True 
        print("yes5") 
      if correct_length and first_two_char_capital and next_two_char_digits and next_char_space and last_three_char_capital: 
       is_valid = False 
       print(reg_number, "is a non-standard_registration") 
      else: 
       is_valid = True 

       print(reg_number, "is a standard registration") 
       return is_valid 

main() 

回答

3

這是很容易,只需使用正則表達式在這裏,如:

import re 

if re.match('[A-Z]{2}\d{2} [A-Z]{3}$', input('What is your regnumber:')): 
    print('yeah it matches...') 
+0

我能有一個使用字符串的切片, – user3459178 2015-02-10 14:48:38

+2

@ user3459178沒有另一種解決方案。 – Ffisegydd 2015-02-10 14:55:07

+0

StackOverflow是一個針對專業人士和熱心業餘愛好者的論壇,而不是一個要求編寫N個最惡劣程序來匹配給定問題的論壇。 – 2015-02-10 14:57:31

相關問題