2014-09-05 29 views
0

我寫了這個函數來檢查一個字是否爲abecedarian但我似乎無法使用字符串作爲參數。我不知道這一點,因爲直到現在我從來沒有必須使用字符串參數。有沒有解決的辦法?用字符串參數調用Python函數

def is_abecedarian(word): 
    prev_char_ord = 0 

    for char in word.lower(): 
     if prev_char_ord <= ord(char): 
      prev_char_ord = ord(char) 
     else: 
      return False 
    return True 
+1

*「我似乎無法使用字符串作爲參數」* - 如果嘗試,會發生什麼情況? – hlt 2014-09-05 22:32:02

+0

字符串只是對象就是值,當用它們作爲參數時沒有什麼內在不同。如果出現錯誤(或「不起作用」行爲)在這個參數/值的*用法*中,那麼也可以*解釋*問題中的問題。 – user2864740 2014-09-05 22:47:34

回答

1

您可以對分類詞檢查原字

def is_abecedarian(word): 
    return word == ''.join(sorted(word)) 

測試

>>> is_abecedarian('test') 
False 

>>> is_abecedarian('abcde') 
True 
0

如果你在函數的開始,設置prev_char_ord 0不管是什麼字符串以字符開始,它將高於prev_char_ord

將prev_char_ord設置爲255(因爲ord只能用於ascii字符),或者使用字符串的第一個字母來設置值(可以像數組一樣訪問它),所以小寫字母的第一個字符將是word.lower()[0]) 。