zoukankan      html  css  js  c++  java
  • 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语句格式

    • 妥善的使用空格 使代码看起来更加清晰易读美观,特别是在使用运算符 和 比较符的时候
  • 相关阅读:
    win7下的vxworks总结
    ubuntu 无法获得锁 /var/lib/dpkg/lock
    项目中用到了的一些批处理文件
    win7下安装 WINDRIVER.TORNADO.V2.2.FOR.ARM
    使用opencv统计视频库的总时长
    January 05th, 2018 Week 01st Friday
    January 04th, 2018 Week 01st Thursday
    January 03rd, 2018 Week 01st Wednesday
    January 02nd, 2018 Week 01st Tuesday
    January 01st, 2018 Week 01st Monday
  • 原文地址:https://www.cnblogs.com/raoqinglong/p/11519290.html
Copyright © 2011-2022 走看看