|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- count = 3
- [code]psw = 123321
复制代码
while count:
temp = input("请输入六位数字密码")
if temp.isdigit():
if temp == psw:
print("密码正确!")
break
elif len(temp) !=6:
print("位数错误!")
count = count-1
print("您还有",count,"次机会")
else:
print("非法输入!")
count = count-1
print("您还有",count,"次机会")
[/code]
这个是第一版,发现无论如何也得不到密码正确
后来发现是这一行的问题,应该是
所以想问大佬,
这种情况下的temp是个字符串而psw是一个数值,这样无论如何他们也不会相等,这么总结对吗?
另,实现上述功能还有更优化的方法吗?求指导
本帖最后由 shangjiecat 于 2020-2-9 14:23 编辑
没错,字符串无论如何都不会和数字相等的
- count = 3
- psw = '123456'
- while count:
- temp = input("请输入六位数字密码")
- if temp.isdigit():
- if temp == psw:
- print("密码正确!")
- break
- elif len(temp) != 6:
- print("密码位数错误!")
- else: #处理如果输入六位数但输入的六位数和psw不一样的问题
- print("密码错误!")
- else:
- print("非法输入!")
- count -= 1
- print("您还有",count,"次机会")
复制代码
另外,因为密码正确会直接break,所以密码错误的时候count次数都会减1,可以统一处理,稍微少两行代码,另外,你的代码没有处理如果输入六位数但输入的六位数和psw不一样的问题,予以修改
|
|