2017-10-05 66 views
0

如何形成for循環?python(空閒) - 表單給定名稱,如何輸入用戶名

例如,我想在名稱中有兩個單詞或三個單詞時運行for循環。

我需要使for循環爲不同數目的名稱。 例如,對於兩個單詞,saint christophersaint得到s並得到christopher得到schristopher的結果。

又如,kyrie andrew irving,我想從andrewirving得到kkyriea得到的kairving結果。

考慮:

saint christopher 
kyrie andrew irving 

結果:

schristopher 
kairving 

我做:

s = ("saint christopher", "kyrie andrew irving") 
for s >= 2: 
    first = s.split() 
    separate = list(first[0]) 
    secondword = first[1] 
    firstletter = separate[0] 
    print(firstletter+secondword) 

我應該在哪裏解決?

+1

注Stack Overflow是不是免費的代碼編寫服務。請放下您的代碼,以便我們可以專門幫助您編寫代碼。並閱讀https://www.stackoverflow.com/help/how-to-ask以瞭解如何提出正確的問題。 – SteveFest

+0

你需要閱讀關於基本python的教程。 for循環的語法是錯誤的。您在for循環內的代碼並不遙遠。 – Steampunkery

回答

0

你試圖完成的事情相當簡單,即使你的for循環語法關閉,你的問題中的代碼也會非常接近它。以下是你需要什麼:

names = ['kyrie andrew irving', 'saint christopher'] 

for item in names: 
    name_sep = item.split(' ') 
    username = "" 
    for i in name_sep[0:-1]: 
     username += i[0] 
    username += name_sep[-1] 
    print(username) 

讓我帶你通過它,一行行:

  1. 先有自己名字的列表
  2. 遍歷列表
  3. 斯普利特名列表中,使用空格確定在哪裏製作新元素
  4. 指定一個空字符串作爲我們的用戶名
  5. 迭代所有除了最後一個
  6. 分隔的名字加入他們的第一個字母用戶名
  7. 在分隔的名字添加的最後一個項目,以用戶名
  8. 打印的用戶名

我建議你閱讀this。它是官方python文檔本身的一個教程。它應該給你一個基本的語法把握,以及如何使用python。

1
def make_username(name): 
    return ''.join(x[0].lower() if i != len(name.split()) - 1 else x.lower() for i, x in enumerate(name.split())) 

>>> make_username('saint christopher') 
'schristopher' 
>>> make_username('kyrie andrew irving') 
'kairving' 
>>> make_username('holly mother of god') 
'hmogod' 

...這將爲任意數量的子名稱組成一個名稱的用戶名。它需要每個子名的第一個字母,除了最後一個字母是整個子名。

0

謝謝蒸汽朋克,您的意見幫助了我很多!

我已經編輯我的編碼到

for line in infile: 
    first = line.lower().split() 
    username="" 
    for i in first[0:-1]: 
     username+=i[0] 
    newusername+= first[-1] 
    lastname = newusername[:9] 
    print(lastname)