2016-09-05 5 views
1

Ich mache gerade ein Python-Skript zur Kontoerstellung. Mein Skript ist wie folgt:So erkennen Sie einen leeren Wert

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") 

Das Problem ist, dass mit der Art, wie ich meinen Skript gemacht habe, wo ich versucht habe, überprüft das Programm zu beenden, wenn der Benutzername auf einen leeren Wert gleich ist, ist es natürlich Fehler, gibt es eine bessere Methode, einen Nullwert zu erkennen? Wenn es also tatsächlich eins gibt, wird es aus der while-Schleife ausbrechen? Der Rest meines Programms scheint bisher gut zu funktionieren.

+0

Python hat 'None', nicht null. Leere Zeichenfolgen sind jedoch nicht "Keine". Was ist die Fehlermeldung, die Sie erhalten? –

+0

Wenn die Benutzernamen eindeutig sind, warum nicht ein Wörterbuch? – Andrew

Antwort

0

Ich bin mir nicht sicher, ob ich die Notwendigkeit für die Zählvariable sehen, aber Sie können überprüfen, ob ein Element in einem iterable Objekt existiert mit in

if usernm in nms: 
    # user already exists 

Ich habe versucht das Programm Prüfung zu stoppen wenn der Benutzername auf einen leeren Wert gleich

Es sieht aus wie Sie, wenn der zweite Wert von nms auf den Charakter des Index überprüft counter eine leere Zeichenfolge ist. Sie haben den eingegebenen Benutzernamen überhaupt nicht überprüft.

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

Also könnte ich schreiben, wenn usernm in nms [1] und das würde prüfen, ob dieser Benutzername in einem der Namen in dieser Zeile war? (txt-Datei sieht so aus: mit 'usr' darüber) geoff, tim, regan, orange – Spookichicken

+0

'nms' ist eine Liste von Elementen. 'nms [1]' ist nur das zweite Element in dieser Liste –

+0

Nono, es gibt mehr in der TXT-Datei, die [1] ist die zweite Zeile, wo alle Benutzernamen sind, die [i] durchläuft jeden Benutzernamen . – Spookichicken

Verwandte Themen