2015-10-09 39 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

相关问题