while语句中的错误
今天在给初一年级学生上课的时候,讲到了判断密码正误的Python程序。发现教材中使用的while语句里面有一个错误。
这个程序的逻辑思路为:首先,判断密码正误有两个密码,其中一个为用户预先设定好的密码,文中命名为password,另外一个密码为用户输入密码,命名为userpwd。然后,通过赋值号=将预设密码password设定为“ab321”。即为password = “ab321”。将用户输入密码初始设定为空。即userpwd = “ ”。然后通过while语句判断userpwd是否等于password。如果不等于则进入循环体。等于则结束循环,执行下一步程序。即while password != userpwd:。!=代表不等于。循环体内容为 userpwd == input(“请输入密码:”)。编者的本意应为将input语句输入的内容赋值给userpwd。但是==在Python中代表的意思为判断左右两边是否相等。而不是赋值。所以按照正确的思维逻辑。该语句应写为userpwd = input(“请输入密码:”)。输入密码以后再到while 中去判断新输入的密码是否与初始密码相同。若相同则输出“密码正确,欢迎你!”。即print(“密码正确欢迎你”)。
正确的程序应写为
password = "ab321"
userpwd = " "
while password != userpwd :
userpwd = input("请输入密码:")
print("密码正确,欢迎你!")
在这里,希望相关专家在进行教材编写的时候更加严谨一些。同时,如果是我个人逻辑思维有误,欢迎条友们给我指正。并就以上言论致歉。