2017-11-14 21 views
0

関数の1つがテキストファイルからのユーザー名と結果の取得であるプログラムを作成する必要があります。 (すべて同じ行にあります) 何らかの理由で、私が実行すると、最初の行だけが出力されます。どうしてこれなの ?また、これは学校でプログラムを実行しようとしたとき(割り当ての一部)にのみ発生し、自宅のラップトップに必要なものをすべて印刷します。 (Pythonのバージョンも同じである)。ここコマンドはテキストファイルの最初の行だけを読み取る

は私のコードです:

def results(): 
     username = input("Enter username :") 
     for line in open("resultsfile.txt","r"): 
      if username in line: 
        print (line) 
      elif username not in line: 
        ("No such user") 

はまた、これはテキストファイル(箇条書きせずに)次のようになります。

  • tud16 CS簡単2points
  • ser23 CHメッド4points
  • tud16 CSハード1points
+0

は(「ユーザーNO」) 'ではありません' ''プリント(「いいえ、そのような利用者」)ことになって? – roganjosh

+0

'print("そのようなユーザーはいません ")'他の人は、その行に文字列を置いているだけですか... –

+0

印刷物を追加するのを忘れました(私の電話から書いてあります)。動作しません – OSG

答えて

0
def results(): 
    username = input("Enter username :") 
    for line in open("resultsfile.txt","r"): 
     if username in line: 
      print (line) 
     else: 
      print("No such user") 
results() 
0

ファイルを反復処理していますが、ユーザ名と一致しないすべての行に対してNo such userを印刷しています。

の後にを評価すると、ファイル内の行の1つにユーザー名が含まれていると評価されます。あなたは、ユーザーが見つからされたかどうかを示すboolean(found)を導入でき、これを実装するには:

def results(): 
    found = False 
    username = input("Enter username :") 
    for line in open("resultsfile.txt","r"): 
     if username in line: 
      print (line) 
      found = True 
    if not found: 
     print("No such user") 
関連する問題