• python自学Day04(自学书籍python编程从入门到实践)


    第5章 if 语句

    5.1 一个简单的示例

    • 使用前面的解析列表构建一个0-9的数值列表。
    • 判断0是否在列表中,如果在输出 0在列表A中
    A = [i for i in range(0,10)]
    if 0 in A:
        print('0在列表A中')

    结果为:

    0在列表A中

    5.2 条件测试

    • 每条if语句的 核心 都是一个值为 True 或 False 的表达式,这种表达式被称为条件测试。
    • 如果条件表达式输出的结果为True则执行if语句中的代码块,如果输出的结果为False则忽略if语句中的代码块。

    5.2.1 检查是否相等

    • 使用两个等号 == 来检查是否相等,== 称为相等运算符。
    • 一个 =  是陈述,A = ‘b’ ;两个等号 == 是发问,两边是否相等?
    • 构建一个变量A = 6,然后检查一个6和一个3,输出结果。
    A = 6
    if A == 6 :
        print('变量A表示数值6')
    if A == 3 :
        print('变量A表示数值3')

    输出结果为:

    变量A表示数值6
    • 在上述代码中,因为第一个条件测试结果为True执行代码块输出 变量A表示数值6;第二个条件测试返回结果为False,则忽略代码块。

    5.2.2 检查是否相等时不考虑大小写

    • python中检查是否相等时是 区分大小写的。
    • 我们创建两个字符串 一个为 rao 一个为首字母大写 Rao,使用条件测试检查是否相等。
    Name = 'rao'
    Name1 = 'Rao'
    if Name == Name1:
        print('不用区分大小写')
    else :
        print('需要区分大小写')

    输出结果为:

    需要区分大小写
    • 可以看到上述代码中,if语句条件测试返回False 所以不执行,而执行了相等意外的 else 下面代码块。

    5.2.3 检查是否不相等

    • 检查是否不相等时,需要使用惊叹号加等号的 不相等运算符 !=,其中惊叹号表示不。
    • 我们先存一个变量 Pay_style = '微信支付',然后设置if语句为如果不等于 ‘支付宝支付’,那么输出请收回支付宝二维码
    Pay_style = '微信支付'
    if Pay_style != '支付宝支付':
        print('请收回支付宝二维码')

    输出结果为:

    请收回支付宝二维码
    • 在上述代码中,第一步我们构建了一个 变量 内容为 微信支付 的字符串
    • if语句价差是否不相等 使用 != 变量不等于 支付宝支付 返回结果为True 执行if 包含语句块
    • 结果为 输出 请收回支付宝二维码

    5.2.4 比较数字

    • 数字比较符 == 等于   != 不等于   >大于   <小于   >= 大于等于   <= 小于等于 

    5.2.5 检查多个条件

    • 使用and和or帮助检查多个条件的返回结果是否合意(符合程序员需求)

    1. 使用and检查多个条件

    • 使用 and 连接条件时 需要 and 两边的条件都为True,则整个条件语句返回True。

    • 使用 and 两边任意一个不满足条件 则返回False

    • 我们设置两个数值  5 11 我们使用 and 连接条件 测试 

    Num1 = 5
    Num2 = 11
    if Num1 == 5 and Num2 == 11:
        print('符合条件')
    if Num1 == 5 and Num2 == 10:
        print('符合条件')

    输出结果:

    符合条件
    • 我们可以看到结果只输出了一个 符合条件,那么肯定是其中有一个条件测试返回的是False
    • 第一个if语句 判断Num1 等于 5 并且 Num2 等于 11,两边条件都为True,则整个条件测试返回True,执行if下代码块。
    • 第二个if语句 两个条件中 Num2 等于 10 明显错误,在使用 and 时有任意一个不满足条件 则返回False 忽略第二个if下的代码块

    5.2.6 检查特定值是否包含在列表中

    • 语法 if i in seq : 关键字为in 
    • 文章开头的第一个代码使用了关键字 in 检查了0是否在列表中
    A = [i for i in range(0,10)]
    if 0 in A:
        print('0在列表A中')

    5.2.7 检查特定值是否不包含在列表中

    • 语法 if i not in seq :关键字 not in
    • 我们修改下上述代码 将0替换为10 将 in 改为 not in
    • 当测试条件为真的时候 让程序输出 10不在列表A中
    A = [i for i in range(0,10)]
    if 10 not in A:
        print('10不在列表A中')

    输出结果为:

    10不在列表A中
    • 因为条件 10 not in A 这个条件返回的是True ,执行了if语句下的语句块 输出了 10不在列表A中 的结果。

    5.2.8 布尔表达式

    • 布尔表达式是条件测试的别名,返回结果要么为 True 要么为 False
    if True:
        print('布尔表达式结果为True时')
    if False:
        print('布尔表达式为False时,不会执行这行代码')

    输出结果为:

    布尔表达式结果为True时

    练习:

    #检查是否相等的测试代码
    Name = 'david beckham'
    Name1 = 'David Beckham'
    if Name == Name1:
        print('两个名称相等')
    if Name != Name1:
        print('两个名称不相等')
    if Name == Name1.lower():
        print('将字符串Name1全部转换为小写,两个字符串构成相等')

    输出结果为:

    两个名称不相等
    将字符串Name1全部转换为小写,两个字符串构成相等
     1 #比较数字
     2 x = 10
     3 y = 3
     4 z = 7
     5 #条件 y > z 为 False 整个条件返回 False,将被忽略
     6 if x > y and y > z :
     7     print('x大于y 并且 y大于z')
     8 #两个条件都为 True,整个条件返回 True,执行print代码块
     9 if x > y and z > y :
    10     print('x大于y 并且 z大于y')
    11 #将第六行代码中的 and 改为 or x > y 返回 True 有一个条件满足 True,整个条件返回 True
    12 if x > y or y > z :
    13     print('x大于y 或者 y大于z')
    14 #将两个条件为 false 使用 or 连接 ,整个条件返回 False if语句块将不被执行
    15 if x < y or y > z :
    16     print('这行代码两边条件为False,将被忽略')

    输出结果为:

    x大于y 并且 z大于y
    x大于y 或者 y大于z

    5.3 if语句

    5.3.1 简单的if语句

    1 age = 19
    2 if age >=18 :
    3     print('你已经成年,可以去网吧上网了!')

    输出结果:

    你已经成年,可以去网吧上网了!
    • 第1行 将数值19 存储在变量 age 中
    • 第2行 进行条件测试,变量是否大于等于18,条件满足返回True。执行if后面缩进的代码块。
    • 第3行 输出 你已经成年,可以去网吧上网了!

    5.3.2 if - else语句

    • 需要在条件满足时执行一个条件满足时执行一个操作,不满足时执行另一个操作。
    1 age = 17
    2 if age >= 18 :
    3     print('你已经年满18,可以上网吧!')
    4 else:
    5     print('未满18,网吧禁止入内!')
    未满18,网吧禁止入内!
    • 第1行 将数值 17 存贮为变量 age
    • 第2行 if 语句进行条件测试 17 不满足 大于等于 18
    • 第3行 因为第二行条件测试返回结果为 False 所以不执行
    • 第4行 不满足条件的执行else操作
    • 第5行 执行else下的操作 输出  未满18,网吧禁止入内!

    5.3.3 if - elif - else结构

    • 用于检查超过两个条件,python只执行结构中的一个代码。

    • 它依次检查每个条件测试,直到遇到通过了的条件测试。
    • 测试通过后,python将执行紧跟在他后面的代码,并跳过余下测试。
     1 '''
     2 1.4岁以下免费入内
     3 2.4-18岁收费20
     4 3.18岁以上收费40
     5 '''
     6 age = 12
     7 if age < 4 :
     8     print('免费入内')
     9 elif age <= 18 :
    10     print('收费20')
    11 else:
    12     print('收费40')

    输出结果:

    收费20
    • 第6行 将数值 12 存储为变量 age
    • 第7行 进行第一个条件测试 测试 age 是否小于 4,通过则执行输出 免费入内
    • 第8行 这行被忽略因此我们知道age肯定大于或者等于 4
    • 第9行 因为第一个条件测试没有通过,程序跳到第9行 测试条件是否满足小于等于18
    • 第10行 满足条件执行操作 输出 收费20
    • 第11行 因为已经有通过条件,跳过了余下测试。

    5.3.4 使用多个elif代码块

    • 进行多个条件测试
    1 age = 70
    2 if age < 4 :
    3     print('免费入内')
    4 elif age <= 18 :
    5      print('收费20')
    6 elif age < 65:
    7     print('收费40')
    8 else:
    9     print('老人免费')

    输出结果:

    老人免费
    • 第1行 将数值70存储到变量age中
    • 第2行 判断条件 age 是否小于 4 测试不通过 进入下一个条件测试
    • 第4行 判断条件 age 是否小于等于18 测试不通过 进入下一个条件测试
    • 第6行 判断条件 age 是否小于 65 测试不通过 进行到else
    • 第9行 因为前面 if 和 elif 中的条件测试都未通过 则执行 输出 老人免费

    5.3.5 省略 else 代码块

    • else 是一条包罗万象的语句,一切不满足if elif的条件测试 都会由else来执行
    • 但是同时我们要意识到 elif 条件更清晰 使用else也会引来 无效数据或者恶意数据
    • python 中并不要求if 后面必须要有else语句 

    5.3.6 测试多个条件

    • 使用 if elif 条件语句仅适合于满足一个条件的测试中。
    • 当你需要满足多个条件时,应该使用一系列不包含elif 和else代码块的简单if语句
    1 A = [3,6,9]
    2 if 3 in A :
    3     print('3在列表A中')
    4 elif 6 in A :
    5     print('6在列表A中')
    6 elif 9 in A :
    7     print('9在列表A中')

    输出结果为:

    3在列表A中
    • 第1行 创建一个数值列表A 包含3,6,9
    • 第2行 条件测试 3是否在列表A中
    • 第3行 判断通过输出 3在列表A中同时跳过余下测试
    • 所以尽管 第4 和 第6行的判断结果为True也不会输出任何结果
    • 我们修改下 将elif改为if
    A = [3,6,9]
    if 3 in A :
        print('3在列表A中')
    if 6 in A :
        print('6在列表A中')
    if 9 in A :
        print('9在列表A中')

    输出结果为:

    3在列表A中
    6在列表A中
    9在列表A中
    • 总之如果你想执行一个代码块,就使用 if elif else 结构,如果你要运行多个代码块,就使用一系列独立的if语句。

    5.4 使用if语句处理表格

    5.4.1 检查特殊元素

    1 Name_list =['admin','rao','zhang','li','yu']
    2 for Name in Name_list:
    3     if Name == 'admin':
    4         print('hello '+Name.title()+',would you like to play fifa20?')
    5     else:
    6         print('hello '+Name.title()+',nice to meet you!')

    输出结果为:

    hello Admin,would you like to play fifa20?
    hello Rao,nice to meet you!
    hello Zhang,nice to meet you!
    hello Li,nice to meet you!
    hello Yu,nice to meet you!
    • 第1行 创建一个列表 五个用户名。
    • 第2行 用for循环遍历列表
    • 第3行 判断遍历得来变量存储的值是否为 admin 
    • 第4行 当上面判断为True时 输出  hello Admin,would you like to play fifa20?
    • 第5行 当第一个条件不通过时,执行else代码下操作
    • 这个时候有好学的朋友就会问,上面说if elif下只能满足一个条件,各位for循环遍历的时候每次只传入一个值,循环着的传。

    5.4.2 确定列表不是空的

    •  使用if 判断列表是否为空列表 当列表为空列表式 判断结果将为False 当列表包含至少一个元素时,返回True
    1 Name_list =[]
    2 if Name_list:
    3    for Name in Name_list:
    4        print('我们的用户是:'+Name)
    5 else:
    6     print('我们需要一些用户!')

    输出结果为:

    我们需要一些用户!
    • 第1步 创建一个空列表Name_list
    • 第2行 判断条件 因为Name_list 是空列表,所以返回结果为False,紧跟if语句的操作将被忽略
    • 第5行 因为if下的语句没有通过条件测试 将执行else语句下的代码
    • 第6行 输出 我们需要一些用户!

    5.4.3 使用多个列表

    1 Name_list =['admin','rao','zhang','li','yu']
    2 Users_Name = ['rao','zhang','li','hu']
    3 for user in Users_Name:
    4     if user in Name_list:
    5         print('对不起,名称:'+user+' 已经被使用,请重新输入!')
    6     else :
    7         print('该名称:'+user+' 还未注册,快点注册吧!')

    输出结果为:

    对不起,名称:rao 已经被使用,请重新输入!
    对不起,名称:zhang 已经被使用,请重新输入!
    对不起,名称:li 已经被使用,请重新输入!
    该名称:hu 还未注册,快点注册吧!
    • 书中有一个练习题的要求是如果Rao在Namelist中 那么 user 中 rao也不允许注册,就是说两个列表字符串全部转换为小写字母字符串。
    • 我们可以使用列表解析方法将两个列表转换为小写比较。
    1 Name_list =[Name.lower() for Name in ['admin','Rao','zhang','li','yu']]
    2 Users_Name = [user.lower() for user in['rao','Zhang','Li','hu']]
    3 for user in Users_Name:
    4     if user in Name_list:
    5         print('你要注册的用户名称:'+user+' 已经被注册了!')
    6     else :
    7         print('恭喜你,用户名 '+user+' 还未被注册')

    输出结果为:

    你要注册的用户名称:rao 已经被注册了!
    你要注册的用户名称:zhang 已经被注册了!
    你要注册的用户名称:li 已经被注册了!
    恭喜你,用户名 hu 还未被注册

    5.5 设置if语句格式

    • 妥善的使用空格 使代码看起来更加清晰易读美观,特别是在使用运算符 和 比较符的时候
  • 相关阅读:
    Linq to LLBL Gen Pro LLBL Gen的Linq程序设计
    应用反射技术为Infragistics Solution设计例子程序 代码简洁而且学习的效率高
    ASP.NET Web开发框架之零 项目介绍
    .NET 应用程序界面开发经验总结 设计良好的程序的表现之一就是细节做的还可以
    ORM Querier 基于TransactSQL解析的代码生成利器 帮助开发人员高效快速生成需要的ORM代码
    Visual Studio 2010 开发与调试IronPython脚本 为你的ERP/MIS 应用程序添加脚本功能
    ORM + .NET Remoting 完整例子程序 虽然现在都流行WCF,也没有必要抛弃已经掌握的.NET Remoting
    总结一下ERP .NET程序员必须掌握的.NET技术,掌握了这些技术工作起来才得心应手
    LLBL Gen 元数据编程 LLBL Gen Metadata Programming
    iPhone开发笔记[14/50]:没有开发者证书,先用模拟器也要开发
  • 原文地址:https://www.cnblogs.com/raoqinglong/p/11519290.html
Copyright © 2020-2023  润新知