我有 2 个来自不同脚本的函数,它们可以通信。应该发生的是,如果存在值,则应将变量设置为 %username%; 如果该值不存在,则应将其设置为“无”。如果变量设置为无,该函数应继续并创建一个新帐户。如果变量设置为用户名,则该函数应继续。那么,为什么我会得到不一致、不稳定的结果?
如下函数,它们不会运行,因为它们会调用未包含的其他函数:
def database_get_user_details(user_database, username, detail):
value = "None"
rows = ((users_db_curs.execute("SELECT * FROM '" + user_database + "' WHERE username='" + username + "'"))).fetchall()
for row in rows:
if rows:
if detail == ("userID") : value = str(row[1])
elif detail == ("username") : value = str(row[2])
elif detail == ("password") : value = str(row[3])
elif detail == ("creator_exp"): value = str(row[4])
else : value = "None"
else:
value = "None"
return value
def game_register(username_table_name):
while True:
while True:
user_ID = raw_input("E-mail address: ")
if user_ID != "":
break
while True:
username = raw_input("Username : ")
if username != "":
break
while True:
password = raw_input("Password : ")
if password != "":
password = password.encode("hex")
break
usr = database_get_user_details(username_table_name, username, "username")
print usr
if (usr != "None") or (usr != None):
print usr
print "Username already taken!"
pause()
else:
database_create_user(username_table_name, user_ID, username, password, "250")
print "Successfully created %s with password: %s" %(username, password.decode("hex"))
pause()
break
请注意,为了安全起见,我没有包含实际的密码加密算法——在本例中,我只是将其设置为十六进制。
编辑:忘记解释
就好像我正在调用 random.choice(),我找不到与该函数是否创建新用户或告诉我用户名已被使用有关的任何一致性。