|  | 
 
| 
系统提示的信息为:
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  Traceback (most recent call last):
 File "。。。。。。。。009密码星号.py", line 16, in <module>
 if (password[i] == '*') and (i < len(password)):
 IndexError: string index out of range
 
 其中:password为用户输入密码(字符串)
 i为数字,用于循环
 与小甲鱼老师的程序做对比之后,感觉问题出现在  password[i] == '*'  这一句
 希望能够解答password[i] == '*'这一句,通过查询password中第0个到字符结束中是否包含*字符为啥行不通。
 十分感谢
 
 原始程序如下:
 
 复制代码print('请输入密码:',end = '')
password = input()
code_len = len(password)
while times:
    if password == code:
        print('密码正确')
        break
    else: 
        while i <= code_len:
            if (password[i] == '*') and (i < len(password)):
                print('密码不能包含有‘*’!您还有',end = '')
                print(times ,end ='')
                print('次机会!请输入密码:',end = '')
                password = input()
                i = 0
            elif i == len(password):
                times -= 1
                if times == 0:
                    print('密码错误,次数已用完,账户锁定')
                    break
                i = 0
                print('密码输入错误!您还有' ,end = '')
                print(times ,end = '')
                print('次机会!请输入密码:' ,end = '')
                password = input()
                break
            else:
                i += 1
 小甲鱼老师的程序如下
 
 复制代码count = 3
password = 'FishC.com'
while count:
    passwd = input('请输入密码:')
    if passwd == password:
        print('密码正确,进入程序......')
        break
    elif '*' in passwd:
        print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
        continue
    else:
        print('密码输入错误!您还有', count-1, '次机会!', end=' ')    
    count -= 1
先说这个报错,输入的字符长度,始终是大于索引的,索引是从0开始的,所以你输入四位字符串,实际最大的索引是3,所以
 
这样就不报错了
 
然后下面的逻辑貌似也有问题,输错密码,没提示 | 
 |