找了半天发现是引号搞的鬼
count = 3psw = 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,"次机会")
这个是第一版,发现无论如何也得不到密码正确
后来发现是psw = 123321这一行的问题,应该是psw = “123321”
所以想问大佬,
这种情况下的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不一样的问题,予以修改
页:
[1]