返回布尔值取决于字符串是否按字母顺序排列

时间:2014-10-08 22:29:18

标签: python

这是我目前在python中所拥有的:

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

我打算为这个问题使用for循环,但不知道如何启动它。

3 个答案:

答案 0 :(得分:3)

以这种方式思考 - 一个包含字母的单词(如果它们按字母顺序排列)在被迫按字母顺序排列时应该等于它自己,所以:

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

无论如何,这是天真的方法......如果你有大量的序列迭代,还有其他技术,但对于通过input输入的字符串,它足够实用。

答案 1 :(得分:2)

有两种方法:

  1. 您只需遍历字符串中的每个字符,使用if a[i]<a[i+1]之类的测试。这是有效的,因为'a' < 'b'是真的。

  2. 您可以将字符串拆分为字符列表,对其进行排序并将其与原始列表进行比较。

答案 2 :(得分:0)

Python支持直接比较字符。例如,'a'&lt; 'b'&lt; 'c'等等。使用for循环遍历单词中的每个字母,并将其与上一个字母进行比较:

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