十分紧急!求这个代码错误在哪
代码如下,十分感激def main():
flag = open("flag.txt")
word = flag.read()
if word == "0":
print("首次启动!")
flag.close()
file = open("flag.txt", "w")# 覆盖写模式,以重写的方式打开文件flag
file.write("1") # 将“1”写入falg文件中
file.close()
global admi
admi={"root":"1234"}
global user
user={}
print_login_menu()
user_select()
elif word == "1":
print("欢迎回来!")
print_login_menu()
user_select()
else:
print("初始化参数错误!")
# 打印菜单
def print_login_menu():
print("----用户选择----")
print("1-管理员登录")
print("2-普通用户登录")
print("----------------")
# 用户选择
def user_select():
while True:
user_type_select = input("请选择用户类型:")
if user_type_select == "1":
root_login()
break
elif user_type_select == "2":
while True:
select = input("是否需要注册?(y/n):")
if select == "y" or select == "Y":
user_register()
user_login()
break
elif select == "n" or select == "N":
user_login()
break
else:
print("输入有误,请重新选择")
else:
print("输入有误,请重新选择")
# 管理员登录
def root_login():
global admi
while True:
print()
print("----管理员登陆----")
admi_id = input("请输管理员名称:")
admi_pwd = input("请输入密码:")
if (admi_id,admi_pwd) in list(admi.items()):
print("管理员登录成功!")
break
else:
print("管理员登录失败,请重新登录。")
# 用户注册
def user_register():
print()
print("----用户注册----")
user_id = input("请输入账户名:")
user_pwd = input("请输入密码:")
global user
user= user_pwd
# 用户登录
def user_login():
while True:
print()
print("----用户登录----")
user_id = input("请输入账户名:")
user_pwd = input("请输入密码:")
global user
pwd=user.get(user_id,0)
if pwd==0:
print("查无此人!")
elif pwd==user_pwd:
print("登录成功!")
break
else:
print("密码不正确,请重新登录。")
admi={}
user={}
main()
急的话吧出现的问题或者报错内容一起发上来呀,这样才能更快的解决你的 问题 本帖最后由 Twilight6 于 2020-6-16 09:04 编辑
开始时候直接判断文本内容应该是否为空,判断是否为0不怎么合理吧,毕竟是首次打开,而且你如果为 0 那么就一直参数错误了
再者说你应该判断第一个字符是不是 1 而不是 整个文本 是否为 1 用索引 即可
def main():
flag = open("flag.txt")
word = flag.read()
if word == "":
print("首次启动!")
flag.close()
file = open("flag.txt", "w")# 覆盖写模式,以重写的方式打开文件flag
file.write("1")# 将“1”写入falg文件中
file.close()
global admi
admi = {"root": "1234"}
global user
user = {}
print_login_menu()
user_select()
elif word == "1":
print("欢迎回来!")
print_login_menu()
user_select()
else:
print("初始化参数错误!")
# 打印菜单
def print_login_menu():
print("----用户选择----")
print("1-管理员登录")
print("2-普通用户登录")
print("----------------")
# 用户选择
def user_select():
while True:
user_type_select = input("请选择用户类型:")
if user_type_select == "1":
root_login()
break
elif user_type_select == "2":
while True:
select = input("是否需要注册?(y/n):")
if select == "y" or select == "Y":
user_register()
user_login()
break
elif select == "n" or select == "N":
user_login()
break
else:
print("输入有误,请重新选择")
else:
print("输入有误,请重新选择")
# 管理员登录
def root_login():
global admi
while True:
print()
print("----管理员登陆----")
admi_id = input("请输管理员名称:")
admi_pwd = input("请输入密码:")
if (admi_id, admi_pwd) in list(admi.items()):
print("管理员登录成功!")
break
else:
print("管理员登录失败,请重新登录。")
# 用户注册
def user_register():
print()
print("----用户注册----")
user_id = input("请输入账户名:")
user_pwd = input("请输入密码:")
global user
user = user_pwd
# 用户登录
def user_login():
while True:
print()
print("----用户登录----")
user_id = input("请输入账户名:")
user_pwd = input("请输入密码:")
global user
pwd = user.get(user_id, 0)
if pwd == 0:
print("查无此人!")
elif pwd == user_pwd:
print("登录成功!")
break
else:
print("密码不正确,请重新登录。")
admi = {}
user = {}
main() 本帖最后由 热气球 于 2020-6-16 09:06 编辑
word = flag.read()
word的长度是包含一个换行符的,所以其长度是2
"0"或者"1"的长度是1,其不包含换行符,所以二者比对的时候是不会相等的
建议转成int比较 Twilight6 发表于 2020-6-16 08:58
开始时候直接判断文本内容应该是否为空,判断是否为0不怎么合理吧,毕竟是首次打开,而且你如果为 0 那 ...
请问可以具体说一下哪个第几行吗 我是个纯新手 十分抱歉打扰 热气球 发表于 2020-6-16 09:05
word = flag.read()
word的长度是包含一个换行符的,所以其长度是2
"0"或者"1"的长度是1,其不包含换行符, ...
麻烦可以具体说哪一行如何改吗 我是个纯新手 十分抱歉再次打扰 夏想秃秃头 发表于 2020-6-16 09:11
麻烦可以具体说哪一行如何改吗 我是个纯新手 十分抱歉再次打扰
def main():
flag = open("flag.txt")
word= flag.read()
if word == "0\n" orword == "0":
print("首次启动!")
flag.close()
file = open("flag.txt", "w")# 覆盖写模式,以重写的方式打开文件flag
file.write("1")# 将“1”写入falg文件中
file.close()
global admi
admi = {"root": "1234"}
global user
user = {}
print_login_menu()
user_select()
elif word == "1\n" or word == "1":
print("欢迎回来!")
print_login_menu()
user_select()
else:
print("初始化参数错误!")
# 打印菜单
def print_login_menu():
print("----用户选择----")
print("1-管理员登录")
print("2-普通用户登录")
print("----------------")
# 用户选择
def user_select():
while True:
user_type_select = input("请选择用户类型:")
if user_type_select == "1":
root_login()
break
elif user_type_select == "2":
while True:
select = input("是否需要注册?(y/n):")
if select == "y" or select == "Y":
user_register()
user_login()
break
elif select == "n" or select == "N":
user_login()
break
else:
print("输入有误,请重新选择")
else:
print("输入有误,请重新选择")
# 管理员登录
def root_login():
global admi
while True:
print()
print("----管理员登陆----")
admi_id = input("请输管理员名称:")
admi_pwd = input("请输入密码:")
if (admi_id, admi_pwd) in list(admi.items()):
print("管理员登录成功!")
break
else:
print("管理员登录失败,请重新登录。")
# 用户注册
def user_register():
print()
print("----用户注册----")
user_id = input("请输入账户名:")
user_pwd = input("请输入密码:")
global user
user = user_pwd
# 用户登录
def user_login():
while True:
print()
print("----用户登录----")
user_id = input("请输入账户名:")
user_pwd = input("请输入密码:")
global user
pwd = user.get(user_id, 0)
if pwd == 0:
print("查无此人!")
elif pwd == user_pwd:
print("登录成功!")
break
else:
print("密码不正确,请重新登录。")
admi = {}
user = {}
main() 夏想秃秃头 发表于 2020-6-16 09:09
请问可以具体说一下哪个第几行吗 我是个纯新手 十分抱歉打扰
第四行:
if word == "0"
改成:
if word == ""
第十六行:
elif word == "1"
改成:
elif word == "1" 热气球 发表于 2020-6-16 09:13
def main():
flag = open("flag.txt")
word= flag.read()
十分感谢! 夏想秃秃头 发表于 2020-6-16 09:17
十分感谢!
采纳下{:5_109:} Twilight6 发表于 2020-6-16 09:14
第四行:
改成:
十分感谢!!
页:
[1]