2016-09-05 9 views
1

私は現在、アカウント作成用のPythonスクリプトを作成しています。次のように私のスクリプトは次のとおりです。空の値を検出する方法

import csv 
nms = [] 
with open('nms.txt', newline='') as inputfile: 
    for row in csv.reader(inputfile): 
     nms.append(row) 
counter = 0   
## End of tings 
while True:   
    print ("Please enter your user name. This must be unique.") 
    usernm = input ("") 
    while True: 
     if nms[1][counter] != (""): 
      print (".") 
     else: 
      break 
     if usernm == nms[1][counter]: 
      print ("Unfortunately this user name is in use. Please try a different user name.") 


     counter = counter + 1 

print ("end") 

問題は、それは当然のことながら、途中で私は、ユーザー名が空白値に等しいかどうかをチェックするプログラムを停止しようとした私のスクリプトを、作ったということですエラーは、null値を検出するより良い方法はありますか?だから、実際に見ると、whileループから抜け出すでしょうか?これまでの私のプログラムの残りの部分は正常に動作しているようです。

+0

Pythonには 'None'、nullではありません。しかし、空文字列は 'None'ではありません。取得したエラーメッセージは何ですか? –

+0

ユーザー名が一意の場合は、なぜ辞書はありませんか? – Andrew

答えて

0

私はカウンタ変数の必要性を参照してくださいわからないんだけど、アイテムは、私はプログラムのチェックを停止しようとしたin

if usernm in nms: 
    # user already exists 

と反復可能なオブジェクト内に存在するかどうかをチェックすることができますユーザ名はブランク値

と等しい場合は、インデックスcounterの文字でnmsの第二の値が空の文字列である場合は、確認のように見えます。入力されたユーザー名は確認していません。

if usernm.trim() == "": 
    # username is blank 
+0

だから、もしnms [1]にusernmが書かれていれば、そのユーザ名がその行の名前に入っているかどうかを確認できますか? (txtファイルは次のようになります:上に 'usr'があります) geoff、tim、regan、orange – Spookichicken

+0

'nms'は要素のリストです。 'nms [1]'はそのリストの2番目の要素だけです –

+0

Nono、TXTファイルにはもう1つあります。[1]は2番目の行で、すべてのユーザー名があり、すべてのユーザー名。 – Spookichicken

関連する問題