想请教一下各位这种写法为什么当我第一次输入错误的用户名时,它没有立即输出用户名错误,反而让我继续输入用户名,这时我再输入一个错误的用户名,才得到用户名错误

img


题目:若用户名输入错误,则提示“用户名不正确!”
若密码输入错误,则提示“密码不正确!”
若用户名和密码均正确,则提示“登陆成功!”

补充:我的第二种写法,它仅仅是把a=input("用户名")和b=int(input("密码"))提到for循环前面就不会出现这种问题,这又是为什么呢?

img

原因已经回答给你另一个问答帖子了
第一次不输出是因为else的条件没有同时满足
第二次输出是因为循环结束了

因为你的else没有与if 和else if对齐