簡體   English   中英

python-奇怪的打印…HW

[英]python -Weird Print… HW

編寫一個名為weird()的函數,該函數將三個字符串作為參數並向后打印最長的一個。 (在平局的情況下,應選擇作為較早參數的字符串。

函數調用:

weird("I", "Love", "Python")

應導致以下終端輸出:

nohtyP

這是我到目前為止所做的..沒有正確地處理草稿部分...

running = True

while running:

    word = raw_input("Enter word:")

    if word[0] in "aeiou":
        print word + "yay"
    else:
        print word[1:] + word[0] + "ay"

更快的方法(它適用於任意數量的字符串)是:

def weird(*s):
    return sorted(s,key=len,reverse=True)[0][::-1]

不幸的是,我本人還是python的新手,但是我看到的最簡單的方法是參考Python中的“反向字符串”,以了解反向字符串的簡單方法。 對於選擇哪個字符串反轉的邏輯,最簡單的方法是創建一個列表並根據長度存儲最大字符串。

這是一個可行的解決方案,在另一個線程上使用反向方法。 理想情況下,此方法僅將一個列表作為參數,因為此方法適用於所有大小的輸入。

def weird(strOne, strTwo, strThree):
    strings = [strOne, strTwo, strThree]
    max = ""
    for x in strings:
        if len(max) < len(x):
            max = x
    print max[::-1]

weird("I", "Love", "Python")
def weird(str1, str2, str3):
    # sort them according to length
    # guaranteed stable sort
    strings= sorted( (str1, str2, str3), key=len)
    # maximum_length is the length of the last one
    maximum_length= len(strings[-1])

    # now return the earliest (str1 < str2 < str3)
    # having len() == maximum_length
    for a_string in reversed(strings):
        if len(a_string) < maximum_length:
            break
        result= a_string

    return result[::-1]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM