簡體   English   中英

我如何添加一個“。” 在首字母之間?

[英]How do i add a "." between the letters of the initials?

創建一個名為 initials 的 function,它接受一個人的姓名,然后返回姓名縮寫。 您應該使用 **args 傳遞名稱。

例如,對於 James Marshall Hendrix,它應該返回 JMH

或者,對於 John Ronald Reuel Tolkien,它應該返回 J.R.R.T(一個 *arg 來統治它們)。

我的輸出是 JMH 和 JRRT 但我需要 output 像上面那樣。

def initials(*args):
    result = "" 
    for word in args:
        result += word[0].upper()
    return result

if __name__ == "__main__":
  print(initials("James", "Marshall", "Hendrix")) # should print the return value of "J.M.H"
  print(initials("John", "Ronald", "Reuel", "Tolkien")) # should print the return value of "J.R.R.T"
def initials(*args):
    result = []
    for word in args:
        result.append(word[0])
    return ".".join(result)


if __name__ == "__main__":
    print(initials("James", "Marshall", "Hendrix"))  # should print the return value of "J.M.H"
    print(initials("John", "Ronald", "Reuel", "Tolkien"))  # should print the return value of "J.R.R.T"

這是固定的代碼,我們將結果存儲在一個列表中,而不是像你之前那樣存儲在一個字符串中,然后我們用. 在末尾。

您可以使用列表理解來壓縮所有內容:

def initials(*args):
    return '.'.join([n[0] for n in args])

print(initials("James", "Marshall", "Hendrix")) 
# J.M.H
print(initials("John", "Ronald", "Reuel", "Tolkien"))
# J.R.R.T

編輯:(感謝 azro):您可以使用生成器進一步簡化它; 雖然它會更慢(閱讀下面 ShadowRanger 非常有趣的評論):

    return '.'.join(n[0] for n in args)

您好,您可以添加一個“。” 當你取第一個字母然后你可以在沒有第一個字符的情況下返回它無論如何這個方法可以用任何其他編程語言實現。

def initials(*args):
    result = "" 
    for word in args:
            result +="."+ word[0].upper()
    return result[1:]

if __name__ == "__main__":
  print(initials("James", "Marshall", "Hendrix")) 
  print(initials("John", "Ronald", "Reuel", "Tolkien")) 


    

暫無
暫無

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

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