2017-05-22 3 views
1

私は3つの名前を入れてアルファベット順に並べるようにプログラムを書こうとしている。私はそれを行う方法をあまりにもわからないんだけど、これは私がこれまで持っているものである:それは私のコードの主な問題のようですので、私は名前の定義について考えていたユーザに3つの名前を入力させ、Pythonでアルファベット順に並べてもらう。

students=input("Give me 3 names") 
students.sort() 

for student in students: 
    print("%s here" %name) 

+1

生徒が文字列である、あなたは、例えば、 '学生= students.split()を一覧表示するには、それを有効にする必要があり' –

答えて

-1

あなたはどのように多くを定義し、空のリストを開始することができますあなたが望む名前を入力し、毎回ユーザにリストに追加するループを指示します。最後に、ソートされたリストを返す/印刷します。 2.7と

names = [] 
nameTotal = 3 

print "Give me 3 names" 

while len(names) < nameTotal: 
    names.append(raw_input("name {0} ".format(len(names)+1))) 

print sorted(names) 

これが返されます。

Give me 3 names 
name 1 Mandy 
name 2 Arianna 
name 3 Charlie 
['Arianna', 'Charlie', 'Mandy'] 
>>> 
+0

これは多くの助けと私はそれをぶら下げているよ。ありがとうございました。 – AThomas

+0

偉大な、私はあなたの質問からより明示的にユーザーと明示したいと考えていた、リストも変更可能であり、文字列は不変です。 –

6

studentsは1つの文字列であり、リストには3つではないため、sortは機能しません(str.sortはありません)。あなたの入力3名はスペースで区切っと仮定すると、スペースで入力を分割:

students = students.split(" ") 

これは、スペースで区切られたすべての3名のリストを返します。それを並べ替えて印刷します。また、セパレータは(任意の長さの)空白である場合は、splitのセパレーターを省略することができるので、これはこの場合には、本質的に同じことを行います。

students = students.split() 
+0

ありがとうございました!また、名前を定義する必要はありますか?私はこれについて考えていた: 名前= [ボビー、サッチェル、クリス]。すべての質問には申し訳ありません。私はPythonでかなり新しいです。 – AThomas

+0

@AThomas「名前を定義する」とは何を意味するのかよく分かりません。名前は 'students'リスト内の文字列になります。 – Li357

関連する問題