while循环问题
设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。passwords = 'FishC.com'
ent = input('请输入密码 (你有三次机会输入):')
times = 3
while passwords != ent:
if times == 1:
print ('超出输入次数 结束')
break
if passwords == ent:
print ('密码正确!进入程序。。。。。')
else:
if ('*' in ent):
times -= 1
ent = input ('密码输入错误!(密码含有*符号) 你还有%d'%(times)+'机会')
else:
times -= 1
ent = input ('密码输入错误!你还有%d'%(times)+'机会')
小白求助啊
其他基本上是没有问题的了,就红色加粗那里
当while循环里面条件不被满足(或者说if passowrds == ent)的时候,就退出循环了?
为什么不打印下一句print ('密码正确!进入程序。。。。。')
本帖最后由 Mike_python小 于 2020-6-11 16:32 编辑
因为 你设置的是passwords != ent 所以 passwords = ent是不可能被执行的
给你改一下代码:
passwords = 'FishC.com'
ent = input('请输入密码 (你有三次机会输入):')
times = 3
while True:
if times == 1:
print ('超出输入次数 结束')
break
if passwords == ent:
print ('密码正确!进入程序。。。。。')
break
else:
if ('*' in ent):
times -= 1
ent = input ('密码输入错误!(密码含有*符号) 你还有%d'%(times)+'机会')
else:
times -= 1
ent = input ('密码输入错误!你还有%d'%(times)+'机会')
如果可以的话 设置个最佳吧{:10_254:}{:10_254:}{:10_254:} 本帖最后由 1223253411 于 2020-6-11 16:32 编辑
Mike_python小 发表于 2020-6-11 16:28
因为 你设置的是passwords != ent 所以 passwords = ent是不可能被执行的
给你改一下代码:
我觉的最后的print不能放在最后
因为这样的话无论成不成功都会打印
我现在改了一下 你看改之后的 而且你还有个错误 就是输入 * 号 也算入次数了 1223253411 发表于 2020-6-11 16:30
我觉的最后的print不能放在最后
因为这样的话无论成不成功都会打印
加个else吧
谢谢提醒 已改正 passwords = 'FishC.com'
ent = input('请输入密码 (你有三次机会输入):')
times = 3
while passwords != ent:
if times == 1:
print ('超出输入次数 结束')
break
else:
if ('*' in ent):
ent = input ('密码输入错误!(密码含有*符号) 你还有%d'%(times)+'机会')
else:
times -= 1
ent = input ('密码输入错误!你还有%d'%(times)+'机会')
if passwords == ent:
print ('密码正确!进入程序。。。。。')
if times == 3 :
print('恭喜你!第一次就猜中了!') Mike_python小 发表于 2020-6-11 16:33
我去 你这叫 先占楼 在解答 你好狠呀
这样别人以为我是抄袭 你是最佳
你这
不是先占在答我是第一次说错了 然后改了我第一次说是 times 的原因
而且你有实力怕什么抄袭?自己不是抄袭就不是!你观念要摆正 Mike_python小 发表于 2020-6-11 16:37
我却最佳……
但是这用真的容易被误解
唉无语了我... 你自己看吧,不和你说了 Mike_python小 发表于 2020-6-11 16:33
我去 你这叫 先占楼 在解答 你好狠呀
这样别人以为我是抄袭 你是最佳
你这
{:10_247:}这也是一种策略……先到先得{:10_250:} 本帖最后由 Mike_python小 于 2020-6-11 16:43 编辑
KevinHu 发表于 2020-6-11 16:38
这也是一种策略……先到先得
@Twilight6 下次我也用用 看我最佳涨不涨
而且你说这是不是会被误解 本帖最后由 1223253411 于 2020-6-11 16:49 编辑
什么鬼
passwords = 'FishC.com'
times = 3# 当成计数器吧,循环一次减一次
while times > 0:
ent = input("请输入密码:")
if passwords == ent:
print ('密码正确!进入程序。。。。。')
break
else:
if '*' in ent:
print('密码输入错误!(密码含有*符号) 你还有%d'%(times)+'机会')
else:
times -= 1
print('密码输入错误!你还有%d'%(times)+'机会')
这样不是更好嘛
times用来当计数器
抛弃不用的东西
又简单,代码可读性又挺高
如果用elif的话更简单 1223253411 发表于 2020-6-11 16:40
什么鬼
我主要是急 Mike_python小 发表于 2020-6-11 16:40
@Twilight6 下次我也用用 看我最佳涨不涨
而且你说这是不是会被误解
。。。。。
你心眼也太小了吧
为一个最佳斤斤计较? qiuyouzhi 发表于 2020-6-11 16:43
。。。。。
你心眼也太小了吧
为一个最佳斤斤计较?
这个事情我不想谈论了 我删帖了 @Mike_python小小 @Twilight6 @Mike_python小
@Mike_python小
页:
[1]
2