Python 条件控制

Python 条件控制,条件控制其实就是 if…else 的使用。先来看下条件控制的基本结构:
Python 条件控制

用一句话概括 if…else 结构的作用:如果…条件是成立的,就做…;反之,就做…

所谓条件(condition)指的是成立的条件,即是返回值为 True 的布尔表达式。知道了这点后使用起来应该不难。

我们结合函数的概念来创建这样一个函数,逐行分析它的原理:

def account_login(): 
    password = input('Password:') 
    if password == '12345': 
        print('Login success!')  
    else:   
        print('Wrong password or invalid input!')                                             
        account_login() 
account_login()
  • 第1行:定义函数,并不需要参数;

  • 第2行:使用 input 获得用户输入的字符串并储存在变量 password 中;

  • 第3、4行:设置条件,如果用户输入的字符串和预设的密码12345相等时,就执行打印文本‘Login success!’;

  • 第5、6行:反之,一切不等于预设密码的输入结果,全部会执行打印错误提示,并且再次调用函数,让用户再次输入密码;

  • 第7行:运行函数;

  • 第8行:调用函数。

值得一提的是,如果 if 后面的布尔表达式过长或者难于理解,可以采取给变量赋值的办法来储存布尔表达式返回的布尔值 True 或 False。因此上面的代码可以写成这样:

def account_login():
    password = input('Password:')
    password_correct = password == '12345'     #HERE!
    if password_correct:
        print('Login success!')
    else:
        print('Wrong password or invalid input!')
        account_login()
account_login()

一般情况下,设计程序的时候需要考虑到逻辑的完备性,并对用户可能会产生困扰的情况进行预防性设计,这时候就会有多条件判断。

多条件判断同样很简单,只需在 if 和else 之间增加上 elif,用法和 if 是一致的。而且条件的判断也是依次进行的,首先看条件是否成立,如果成立那么就运行下面的代码,如果不成立就接着顺次地看下面的条件是否成立,如果都不成立则运行 else 对应的语句。
Python 条件控制

接下来我们使用 elif 语句给刚才设计的函数增加一个重置密码的功能:

password_list = ['*#*#','12345']  
def account_login():   
    password = input('Password:')  
    password_correct = password == password_list[-1] 
    password_reset = password == password_list[0] 
    if password_correct:  
        print('Login success!') 
    elif password_reset: 
        new_password = input('Enter a new password:')   
        password_list.append(new_password)  
        print('Your password has changed successfully!') 
        account_login() 
    else: 
        print('Wrong password or invalid input!') 
        account_login()  
account_login()
  • 第1行:创建一个列表,用于储存用户的密码、初始密码和其他数据(对实际数据库的简化模拟);
  • 第2行:定义函数;

  • 第3行:使用 input 获得用户输入的字符串并储存在变量 password 中;

  • 第4行:当用户输入的密码等于密码列表中最后一个元素的时候(即用户最新设定的密码),登录成功;

  • 第5~9行:当用户输入的密码等于密码列表中第一个元素的时候(即重置密码的“口令”)触发密码变更,并将变更后的密码储存至列表的最后一个,成为最新的用户密码;

  • 第10行:反之,一切不等于预设密码的输入结果,全部会执行打印错误提示,并且再次调用函数,让用户再次输入密码;

  • 第11行:调用函数。

在上面的代码中其实可以清晰地看见代码块(Code Block)。代码块的产生是由于缩进,也就是说,具有相同缩进量的代码实际上是在共同完成相同层面的事情,这有点像是编辑文档时不同层级的任务列表。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程