繁体   English   中英

Python按字母顺序排列3个单词

[英]Python alphabetize 3 words

因此,我正在编写一个将三个单词按字母顺序排列的代码,但是我想保持冷静,实际上将其按字母顺序排列(如果两个单词都以h开头,它将转到第二个字母)。 我基本上是一个初学者,所以我只是在使用while循环。 我让代码可以工作一次,但是随后停止工作。 方向老师说我们编写的函数不能返回,所以这是我的代码。

def printInOrder(str1, str2, str3):
    i = 0
    i = int(i)
    list_1 = [str1, str2, str3]
    while i < len(str1) < len(str2) < len(str3):
        if list_1[0][i] = list_1[1][i] = list_1[2][i]:
            i += 1 
        elif list_1[0][i] < list_1[1][i] < list_1[2][i]:
            first = list_1[0]
            second = list_1[1]
            third = list_1[2]
        elif list_1[0][i] < list_1[2][i] < list_1[1][i]:
            first = list_1[0]
            second = list_1[2]
            third = list_1[1]
        elif list_1[1][i] < list_1[0][i] < list_1[2][i]:
            first = list_1[1]
            second = list_1[0]
            third = list_1[2]
        elif list_1[1][i] < list_1[2][i] < list_1[0][i]:
            first = list_1[1]
            second = list_1[2]
            third = list_1[0]
        elif list_1[2][i] < list_1[0][i] < list_1[1][i]:
            first = list_1[2]
            second = list_1[0]
            third = list_1[1]
        else:
            first = list_1[2]
            second = list_1[1]
            third = list_1[0]


    first = str(first)
    second = str(second)
    third = str(third)
    print(first,second,third)

您需要进行以下操作:

if list_1[0][i] == list_1[1][i] == list_1[2][i] 

as ==用于比较,而=用于python中的赋值。

i=int(i) 

不需要,因为python可以将0识别为整数。 我们不需要为变量指定类型。 另一个主要错误是您必须在循环结束时将i递增,即i = i + 1。 条件:

i < len(str1) < len(str2)< len(str3) 

也是错误的,因为仅当i <len(str1)和len(str1)<len(str2)和len(str2)<len(str3)时才是正确的!请相应地更改逻辑。下面是使用Python的简单内置函数的代码:

def printInOrder(str1, str2, str3):
    list_1 = [str1, str2, str3]
    list_1.sort()
    first = list_1[0]
    second = list_1[1]
    third = list_1[2]
    print first,second,third
printInOrder('hat','harry','ham')

我认为您与建议的解决方案相抵触。 我坚信他希望您学习排序树或决策树的知识-因此您只需要if子句。 有关某些解决方案和更多信息,请参见仅对3个元素排序的int数组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM