找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 502|回复: 4

[求助] 请帮忙看看代码问题出在哪里?

1

主题

1

帖子

1

积分

贫民

积分
1
momo_UWULq 发表于 2019-12-19 00:32:46 | 显示全部楼层 |阅读模式
我是编程小白,刚刚接触python,做了一个小的登陆函数,希望能够实现当输入密码错误超过三次之后,就不再允许输入密码。具体代码如下图:password_list=['reset','12345']
def login():
    count=0
    while count<4:
        password=input('password:')
        password_correct=password==password_list[-1]
        password_reset=password==password_list[0]
        if password_correct:
            print('login success!')
        elif password_reset:
            password_new=input('please input a new password:')
            password_list.append(password_new)
            print('your password has changed sucessfully!')
            login()
        else:
            print('wrong password,please input again!')
            count=count+1
            login()
    else:
        print('you must try the next day!')
login()
但是这个函数执行后,我连续输入三次错误密码,却并不能跳转到最后一行,即 print('you must try the next day!'),请问问题出在哪里?
回复

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
wx_R1DQ0zWA 发表于 2019-12-19 17:10:35 | 显示全部楼层
打印一下count你就知道怎么回事了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
麦克斯韦 发表于 2019-12-20 14:08:07 | 显示全部楼层
1、登录和重置密码搞到一块了?
2、登录函数中也没有退出的?exit(0)
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
ffang 发表于 2019-12-24 16:05:39 | 显示全部楼层
你count+=1后,又调了login,count不是又变为0了吗?
回复 支持 反对

使用道具 举报

0

主题

3

帖子

3

积分

贫民

积分
3
pi_shen 发表于 2019-12-28 15:56:50 | 显示全部楼层
else语句中调用login()语句使得count重新变为0了,所以会不断循环

下面是我修改后的代码:
def login(count=0,password_list=['reset','12345']):
    while count<3:
        password=input('password:')
        password_correct=password==password_list[-1]
        password_reset=password==password_list[0]
        if password_correct:
            print('login success!')
            break
        elif password_reset:
            password_new=input('please input a new password:')
            password_list.append(password_new)
            print('your password has changed sucessfully!')
            login(password_list=password_list)
            break
        else:
            print('wrong password,please input again!')
            count=count+1
    else:
        print('you must try the next day!')

login()
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表