2015-10-09 95 views
1

我正在處理一個問題,我需要創建一個程序,要求用戶輸入一個列表,然後打印出字符串從字母AI開始。Python 3 - 創建一個輸入列表並按字母順序打印字符串的程序

問題:實現一個程序,要求用戶輸入 的學生姓名列表,並打印以字母A到I開頭的那些姓名。 創建兩個測試列表。

>>> phrase = input('Enter a list of Students: ') 
Enter a list of Students: ['Albert', 'Ian', 'Bob', 'Dave', 'Edward']: 

>>> for c in phrase: 
    if c in 'abcdefghiABCDEFGHI': 
     print(c) 

眼下在打印功能結果:

A 
b 
e 
I 
a 
B 
b 
D 
a 
e 
E 
d 
a 
d 

它打印過的字母中的每個字母順序的名字,但我想它做的做的就是打印過的字母全名訂購。一旦我可以做一個清單,第二個清單就不應該成爲問題。

+0

短語是一個字符串,你有沒有將它轉換尚未名單 – frogeyedpeas

+0

另外它不是做你認爲它這樣做,輸出顯然不是按字母順序排列的 – frogeyedpeas

回答

0

要只打印出以這些字母開頭的名字。你只需要指數的第一個字符c[0],如:

phrase = input("Enter list of students") 
for name in phrase: 
    if name[0] in 'ABCDEFGHI': 
     print(name) 

請注意input()通常被認爲是不安全的,因爲arb文件代碼可以被執行。一個更安全,但可能在這個級別沒有必要的,方法是:在這裏

import ast 
phrase = ast.literal_eval(raw_input("Enter list of students")) 
for name in phrase: 
    if name[0] in 'ABCDEFGHI': 
     print(name) 
+0

謝謝,這可能超出了我的老師的期望,但我一定會保留這個作爲一個說明。 – Jabgan

+0

你相信哪一點是超越?很高興解釋,例如'name [0]'表示名稱的第一個字符'.upper()'使其大寫,將比較列表減少爲大寫'A-I'。 – AChampion

+0

嗯,超出了我的老師迄今爲止教給我們的。那是我第一次看到.upper()到目前爲止。我非常感謝你的幫助。有超過1個解決方案沒有錯。 – Jabgan

0

看到我上面的評論,這句話是一個字符串,當你輸入它。你還沒有把它列入清單。

嘗試:

phrase = eval(input("Enter list of students")) #this evaluates the list put in 
for names in phrase: 
    for letters in names: 
     if letters in 'abcdefghiABCDEFGHI': 
       print(names) 

接下來

phrase = eval(input("Enter list of students")) 
i = 0 
while i < len(phrase): #for each item in phrase up to the end! 
     for letters in phrase[i] 
      if letters in 'abcdefghiABCDEFGHI': 
        print phrase[i] 
        phrase.pop(i) 
        i-=1 #set i backwards (as the incrementer downstairs will set it back to normal" 
        break #get out of this loop only one print please 

    i+=1 #fast way to increment 
+0

將打印包含任何這些字母與剛剛開始的所有名稱。 – AChampion

+1

這似乎工作。我想我現在唯一的問題是打印幾份同名的文件?例如,它打印「愛德華」4次,但它不應該只打印一次,因爲它是唯一以字母E開頭的名稱? – Jabgan

+0

好的,所以有兩條路徑,一條是如果我們打印一個名字,我們可以從列表中刪除它,所以它不會再出現。這需要一個while循環而不是for循環,因爲python * sigh *不會讓你改變你正在「結束」的結構。 – frogeyedpeas

相關問題