|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
while 语句是为了可以在推出前重复输入指令 我觉得问题就发生在这 我设想是指令不等于3就应该进入if语句才对呀 但每次到这就死循环了 感觉删了这句就可以跑起来的 但是如果没有这句 怎样实现重复输入呢?
user_list = []#建立用户列表
user_pw = {}#用于匹配用户名和密码
print('weilcom to FishC)\n====================\n1.sign up\n2.sign in\n3.exit')
order = input('Enter your order:')
print('====================')
while order !=3:
if order == 1:#指令为1进入用户注册
user_name = input('Enter your username:')
count = 0 #限制犯错次数
while user_name in user_list:
if count > 2:
print('死ね!')#限制犯错次数
break
else:
print('Username occupied, try anther.')#没超次数可以再次尝试
count += 1
u_passw = input('Enter your password:')
print('Congratulations.')
def sign_up(user_name, u_passw):#建立用户名和匹配密码的函数 但是前面老是死循环还没走到过这一步
user_list.append(user_name)
user_pw.fromkeys(user_name,password)
return user_pw
print(user_list,user_pw)
sign_up()
谢谢各位拉
另外我发现一个有趣的事情就是 可以用过电脑风扇判断是否进入了死循环 哈哈
首先,你的代码在 while order !=3: 这个循环的开始就出现了问题。在Python中,输入函数 input() 默认接收的是字符串类型的数据,你在进行比较时是将字符串与整数比较,这在Python中是不会相等的,所以无法跳出这个循环。你应该将 order = input('Enter your order:') 更改为 order = int(input('Enter your order:')) ,这样输入的指令就是整数类型了。
然后在你的 if order == 1: 代码块中, u_passw = input('Enter your password:') 这行代码的位置应该要在while循环的外部,也就是在用户输入用户名后。另外,你还应该在成功输入用户名后调用 sign_up 函数,并传入 user_name 和 u_passw 作为参数。
还有一个问题是在 sign_up 函数中, user_pw.fromkeys(user_name,password) 这一行。 fromkeys 方法的调用方式是错的,它的作用是创建一个新的字典,你这里应该用 user_pw[user_name] = u_passw 这样的方式将密码添加到字典中。
你应该修复代码如下:
- user_list = [] # 建立用户列表
- user_pw = {} # 用于匹配用户名和密码
- print('weilcom to FishC)\n====================\n1.sign up\n2.sign in\n3.exit')
- order = int(input('Enter your order:')) # 修改这里,将输入的字符串转为整数
- print('====================')
- while order != 3: # 修改这里,将输入的字符串转为整数
- if order == 1: # 指令为1进入用户注册
- user_name = input('Enter your username:')
- count = 0 # 限制犯错次数
- while user_name in user_list:
- if count > 2:
- print('死ね!') # 限制犯错次数
- break
- else:
- print('Username occupied, try anther.') # 没超次数可以再次尝试
- count += 1
- user_name = input('Enter your username:') # 修改这里,将输入用户名的代码放在这里
- u_passw = input('Enter your password:') # 修改这里,将输入密码的代码放在这里
- print('Congratulations.')
- def sign_up(user_name, u_passw): # 建立用户名和匹配密码的函数
- user_list.append(user_name)
- user_pw[user_name] = u_passw # 修改这里,用正确的方式添加密码到字典中
- print(user_list,user_pw)
- sign_up(user_name, u_passw) # 修改这里,调用函数并传入参数
复制代码
最后,你可以考虑在 while order != 3: 这个循环的最后加上 order = int(input('Enter your order:')) 这行代码,这样就可以实现重复输入指令了。
|
-
|