鱼C论坛

 找回密码
 立即注册
查看: 3224|回复: 5

[已解决]python3初学者无知.“密码中的’ *‘ 自动忽略”,这代码没看出哪有问题呢, 请大...

[复制链接]
发表于 2017-3-19 22:49:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
密码 = '010222'
dai = input('请输入用户密码:')
delt = list(dai)
i = 1
while i < 3:
    while '*' in dai:
        delt.remove('*')
    if list(密码) == delt:
        print('亲爱的用户,欢迎您!\n')
        break
    else:
        dai = input('请输入用户密码:')
        delt = list(dai)
        i += 1
if i == 3:
    print('对不起,你走。。。')


#单纯只输入数字是正确的,可以正常运行,但一加上‘*’就不行了
======================== RESTART: G:\python\ceshi.py ========================
请输入用户密码:010222
亲爱的用户,欢迎您!

>>>

======================== RESTART: G:\python\ceshi.py ========================
请输入用户密码:123
请输入用户密码:258964
请输入用户密码:2369446
对不起,你走。。。

>>>
# while语句以及remove单独拿出来试了也可以的,

请输入用户密码:011****202
Traceback (most recent call last):
  File "G:\python\ceshi.py", line 7, in <module>
    delt.remove('*')
ValueError: list.remove(x): x not in list
>>>

谢谢帮忙哦
最佳答案
2017-3-20 01:59:59
因为你while '*' 比较的是dai,同时删除的是delt里的 '*' ,所以循环一直为True,但在delt里的'*'删完后就报你贴出来的错误了。知道问题就好解决了,把dai改成delt,或者将while改成if(delt删除一个'*'就够了)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-3-19 23:05:01 | 显示全部楼层
本帖最后由 zlj19931010 于 2017-3-19 23:08 编辑

额。。。
while '*' in dai:
        delt.remove('*')

你remove了delt 但是while循环一直在比较 dai   

'*' in dai:这个一定总是返回true

修改成这样:
while '*' in dai:
        delt.remove('*')
        dai = dai.replace('*', '', 1)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-19 23:06:34 | 显示全部楼层
本帖最后由 西殴 于 2017-3-19 23:08 编辑

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-3-20 01:59:59 | 显示全部楼层    本楼为最佳答案   
因为你while '*' 比较的是dai,同时删除的是delt里的 '*' ,所以循环一直为True,但在delt里的'*'删完后就报你贴出来的错误了。知道问题就好解决了,把dai改成delt,或者将while改成if(delt删除一个'*'就够了)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-23 20:52:45 | 显示全部楼层
zlj19931010 发表于 2017-3-19 23:05
额。。。
while '*' in dai:
        delt.remove('*')

谢谢哦,,,这两天一直没来登陆,刚看到  不知道最佳怎么设置了,是系统默认么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-23 20:53:56 | 显示全部楼层
hello_fc 发表于 2017-3-20 01:59
因为你while '*' 比较的是dai,同时删除的是delt里的 '*' ,所以循环一直为True,但在delt里的'*'删完后就 ...

谢谢谢谢,问题解决了呢 真是粗心大意
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-26 06:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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