条件匹配时,按预期打印正确的输出。但是当条件不匹配时“如果找不到”部分不起作用。
此处如果条件检查用户名和密码。如果它满足,它执行它下面的代码,但当它不匹配时,它显示空白,我的意思是没有打印无效的登录,虽然它应该打印
passwd = {}
actual_user = {}
found = False
for row in prsnobj.result:
actual_user[row[0]] = row[1]
for i in range(1, 100):
passwd[row[0]] = row[2]
for i in range(1, 100):
if login == actual_user[i] and password == passwd[i]:
found = True
print "WELCOME !!"
if not found:
print "<h4>Invalid Login</h4>"
答案 0 :(得分:0)
您可以使用for / else:
在没有标志的情况下编写此内容for u, p in zip(actual_user.values(), passwd.values()):
if login == u and password == p:
print "WELCOME !!"
break
else:
print "<h4>Invalid Login</h4>"
但是使用字典可能更好:
logindb = {row[1]:row[2] for row in prsnobj.result}
if login in logindb and logindb[login] == password:
print "WELCOME !!"
else:
print "<h4>Invalid Login</h4>"
答案 1 :(得分:0)
您的代码的相关部分可以更简单地表达为:
if a == 1:
found = True
if not found:
print "not found"
这个问题是你从未将发现设置为假。即使a不等于1,从上次找到某些东西时发现仍然是真的。
所以解决方案是这样的:
found = False
if a == 1:
found = True
if not found:
print "not found"
答案 2 :(得分:0)
for row in prsnobj.result:
logindb = {row[1]:row[2]}
#print logindb
if login in logindb and logindb[login] == password:
print "Welcome"
break
else:
print "Invalid"
break