2014-10-08 38 views
-4

這是我迄今爲止在python:返回布爾取決於是否串是按字母順序排列

def Alphaword(): 
     alphabet = "abcdefghijklmnopqrstuvwxyz" 
     x = alphabet.split() 
     i = 0 
     word = input("Enter a word: ").split() 

我打算使用一個for循環這個問題,但不知道如何下手它。

+0

試試這個和教程的其餘部分,它應該幫助你開始。 https://docs.python.org/2.7/tutorial/controlflow.html#for-statements – wwii 2014-10-08 22:32:33

+0

忽略它的編碼方面......如果它被寫下來並且你必須工作,你將如何作爲一個人去做它自己呢?你的邏輯是什麼? – 2014-10-08 22:34:21

+1

看看Python中的sorted()函數。谷歌它,它可以幫助你。 – Totem 2014-10-08 22:47:51

回答

3

想想這種方式 - 包含字母字(如果他們是按字母順序排列)應該等於本身時用力要按照字母順序,因此:

def alpha_word(): 
    word = list(input('Enter a word: ')) 
    return word == sorted(word) 

這無論如何是天真的方法......如果你的序列,大規模iterables,還有其他的技術,但對於通過input類型的字符串,它很實用。

+0

+1我認爲這足以安全地推測OP沒有大量的數據 – 2014-10-08 23:15:13

2

有兩種方式:

  1. 你剛纔在字符串中的每個字符循環,使用像if a[i]<a[i+1]測試。這是有效的,因爲'a' < 'b'爲真。

  2. 您可以將字符串拆分爲字符列表,對其進行排序並將其與原始列表進行比較。

0

Python支持直接比較字符。例如,'a'<'b'<'c'等。使用for循環要經過單詞的每個字母,並將它與先前的信:

def is_alphabetical(word): 
    lowest = word[0] 
    for letter in word: 
     if letter >= lowest: 
      lowest = letter 
     else: 
      return False 
    return True