前言
编程考验胡首先不是对具体编程语言的掌握,而是是逻辑分析能力,对题目的逻辑思路分析清楚了,那么只需要将代码,填入即可.逻辑不清,总是会出纰漏的,下面我一一道练习题来说明一下问题
一、题目
字典应用。创建一个字典,保存用户名和密码。设计一个登录检查程序,提示用户输
入用户名和密码,只有用户名和密码输入都正确,才显示“Welcome!"通过登录检查,提供三
次尝试机会,三次输入都错误,则提示无法登录,结束程序。。下面用python语言实例
二、题目分析
1.第一个容易犯的错误
保证循环 3次 代码是 while < =3 或者 while< 3,num 初始值为 0
我开始认为是 while num <=3 认为3次包含3次,所以顺手就写成这样了,其实是num =3的时候它已经循环了3次,在进行一次循环就是4次,所以 对类似的循环问题,while 循环 一定要 记住循环条件 num < 循环次数.在这个时候for 循环就不容易出错了
2. 如何分类将问题考虑全面
right = {'A':'ok'} # 构造账号密码
num = 0 # 循环计数器
core = 0 # 事件真假判断
while (num <3) and core ==0: # 最多循环3次且 账号密码没成功
name = input("Enter your name :)
password = input("Enter your password : )
num +=1 # 算是输入一次
if name == 'A' and password =='ok':
core =1 # 通过改变core的数值,达到次数不够跳出循环的目的,在下边core还有用处
if core = 1: # 无论是几次出来的,只要账户密码对, 都是成功
print('ok')
else:
print('flase')
分析 : 1. core 的值保证了 在循环次数固定的情况下,提前找到对的账号密码,就可以退出这个循环
2. 在循环后,直接判断是否成功 ,不纠结于几次出来的,如果按照次数分类就非常麻烦,num < 3 肯定是 3次以内成功了,但是等于3要分两种情况,第三次碰对了密码 ,也是成功了,第三次没有碰对 就是失败了,分的太杂没有抓住本质.本质是密码成功与否.



