2017-01-20 8 views
-2

だから私は彼らが望んでいるユーザー名が既に撮られているかどうかをチェックする必要がありますが、私はその最も効果的な方法と思っていません3 "USERNAME TAKEN" 'を印刷します。すでにテキストファイルに入っていて、次にユーザー名を再度尋ねるとします。何かが既にファイルに入力されているかどうか確認していますか?

z = "I" 
while z == "I" : 
    print ("What would you like your username to be?") 
    username = input() 
    u = open ("USERNAME.txt", 'r') 
    for line in enumerate(u, 1): 
     if username in line : 
      u.close() 
      z = "A" 
      break 
     else : 
      print ("USERNAME TAKEN") 
      z = "I" 
+0

正確に何か助けが必要なものを追加してください。例:あなたはuernameが取られているかどうかをチェックする方法を知りたいですか?または、ユーザー名の割り当て方法を理解したいですか?または文字列がファイル内にすでに存在するかどうかを確認したいのですか? –

+0

@VikashSingh done – Atlntic

答えて

0
z = "I" 
while z == "I" : 
    print ("What would you like your username to be?") 
    username = raw_input() 
    if username in open('example.txt').read(): 
     print "Username taken" 
    else: 
     print "Username available" 
     z='A' 
+0

これは完璧に働いていて、とても分かりました – Atlntic

+0

これは文字を比較するのではなく、 'z = True'、' while z: 'と' z = False'に簡略化することができます。 :P –

-1

四条は、ここで最もコンパクトな答えを持っていますが、私はそれはそれは後で再利用することができますチェックするコードbecuase、ユーザ名がすでに使用されているかどうかを確認する方法を使用して育てる価値があると思うし、より大きなプログラムをより読みやすくするでしょう。

def username_taken(username): 
    u = open("USERNAME.txt", "r") 
    if username in u.read().splitlines(): 
     return True 
    else: 
     return False 

while True: 
    print ("What would you like your username to be?") 
    username = input() 
    if username_taken(username) == True: 
     print ("Username Taken, please choose again.") 
    else: 
     print ("Username is valid.") 
     break 
関連する問題