这是个课后题 能运行 但是无法达到老师那样的程度 而且还会在运行的时候出错
dict = {}def new():
x = "请输入要注册的用户名:"
while True:
name = input(x)
if name in dict:
print("用户名存在请重新输入:")
continue
else:
break
mima = input("请输入密码:")
dict = mima
print("注册成功!!")
def old():
y = "请输入用户名:"
while True:
t = input(y)
if t not in dict():
print("没有找到给用户名!")
continue
else:
break
h = input("请输入密码:")
if h == dict.get(y):
print("登录成功")
else:
print("密码错误!")
def show():
m = ''' 请选择需要执行的命令
新建用户:A/a
登录请输入:B/b
退出程序:C/c
请输入命令:'''
while True:
i = input(m)
if i not in 'AaBbCc':
print("您输入的命令有问题,请重新输入:")
continue
if i =='C' or 'c':
break
if i =='A' or 'a':
new()
if i =='B' or 'b':
old()
show()
跪求大佬 指正
{:10_266:} dict = {}
def new():
x = "请输入要注册的用户名:"
while True:
name = input(x)
if name in dict:
print("用户名存在请重新输入:")
continue
else:
break
mima = input("请输入密码:")
dict = mima
print("注册成功!!")
def old():
y = "请输入用户名:"
while True:
t = input(y)
if t not in dict():
print("没有找到给用户名!")
continue
else:
break
h = input("请输入密码:")
if h == dict.get(y):
print("登录成功")
else:
print("密码错误!")
def show():
m = ''' 请选择需要执行的命令
新建用户:A/a
登录请输入:B/b
退出程序:C/c
请输入命令:'''
while True:
i = input(m)
if i not in 'AaBbCc':
print("您输入的命令有问题,请重新输入:")
continue
if i =='C' or i=='c':#if 判断条件需要改
break
#下面这一段缩进后移一格就好了
if i =='A' or i== 'a':
new()
if i =='B' or i== 'b':
old()
show() 本帖最后由 昨非 于 2021-1-2 16:40 编辑
(修改在44行以后) 昨非 发表于 2021-1-2 16:36
i == 'A' or 'a'这样的写法是不对的
==优先级高于or的
if i =='A' or 'a':并不是因为==优先级的问题而是因为
if i =='A' or 'a':==>其实相当于 if i =='A' 和 if 'a',也就是说这样的条件结果永远都是True user = {} # 变量名应该避开 Python 保留字、函数名
def new():
print()
print('【创建用户】')
while True:
name = input("请输入要注册的用户名:") . strip()
if name and name in user . keys():
print("用户名已经存在,请重新输入:")
else:
break
if name :
user = input("请输入密码:") . strip()
print("注册成功!!")
def old():
if user :
print()
print('【用户登录】')
while True:
t = input("请输入用户名:") . strip()
if t and t not in user . keys():
print("没有找到给此用户['%s']!" % t)
else:
break
if t:
if user == input("请输入密码:") . strip():
print("登录成功")
else:
print("*** 抱歉,密码错误!")
else:
print('\n*** 抱歉,当前用户列表为空!\n')
def show():
m = ''' 请选择需要执行的命令
新建用户:A/a
登录请输入:B/b
退出程序:C/c
请输入命令:'''
while True:
print()
i = input(m) . strip()
if i not in 'AaBbCc':
print("您输入的命令有问题,请重新输入:")
elif i == 'C' or i == 'c':
break
elif i == 'A' or i == 'a':
new()
else :
old()
show() qq1151985918 发表于 2021-1-2 16:41
if i =='A' or 'a':并不是因为==优先级的问题而是因为
if i =='A' or 'a':==>其实相当于 if i =='A'...
这不是优先级问题吗{:10_245:} 昨非 发表于 2021-1-2 16:47
这不是优先级问题吗
不是优先级而是逻辑根本错误if 'a' : 和if True : 是划等号的也就是他所有的判断全部满足if条件 楼主记得及时结帖设置最佳答案
页:
[1]