我想檢查一個字符串是否是初學者(按字母順序)。我想檢查一個字符串是否是初學者
def is_abecdarian(s):
index = 0
while index < len(s)-1:
if s[index + 1] > s[index]:
return True
index += 1
return False
print(is_abecdarian('babcd'))
如果我切換我的False和True,並切換大於小於它的工作。我不明白的是'a'不大於'b',但是當我運行上面的代碼時,它返回True。
您的循環正在檢查字母順序條件失敗的任何位置。如果在任何一個步驟中,下一個字符的字母順序都比前一個字符小,那麼該字符串就沒有順序,所以函數應該返回false。循環檢查完每個位置後,如果它沒有返回false,那麼它必須全部按順序排列,所以函數應該返回true。 – khelwood
這段代碼沒有意義。你進入循環,然後在第一次迭代時檢查前兩個元素是否有序,如果是,你立即返回'True'而不查看其餘的字符串。爲什麼?這個函數檢查字符串中的任何*連續字符是否按順序排列,如果是,則返回'True'。如果每個連續對都出現故障,它只會返回「False」。 –