ArcGIS Pro Python 零基础快速上手 (1.2)Python 条件判断

        下面是一个条件判断的基础结构:

if 条件语句:
    print('条件为 真 运行这里')
else:
    print('条件为 假 运行这里')

        第一行,if 后接条件语句 并以 : 号结尾

        第二行,进行缩进(一般缩进4字符,Pycharm会自动帮忙缩进,且可在右下角控制缩进字符。)并写入当第一行编写条件满足的情况下(条件语句为True)需执行的语句。

        第三行,else: 表示当以上条件不满足时

        第四行,进行缩进(整个代码中缩进字符数需保持一致),并编写当条件不满足时执行的语句。

        那么,条件语句这里就涉及到1.1中的布尔类型(bool)了。


布尔类型与比较运算介绍:

        比较运算符有以下几种:

        ==        等于

        !=         不等于

        >          大于

        <          小于

        >=        大于等于

        <=        小于等于

        比较运算的结果是一个bool值(TrueFalse

        举例:

        print(10 > 100)  结果时 False

        print(10 < 100)  结果时 True

        除了比较运算的结果会产生布尔值,python中的某些函数返回的也是布尔值。

        另外在条件判断中,None(空)值、空字符串、空列表等为False,其他值均为True

        例如:通过bool()进行类型转换。将值转换为布尔类型。


结合到条件判断里面就是:

a = 100
b = 50

if a < b:
    print('a是小于b的')
else:
    print('a不小于b')

        我们改一下 a 的值 再看看?

        也就是说,当 条件语句结果为 真 时,会执行 if 下的语句,esle后的语句不会执行;当条件语句为 假 时,if 下的语句不执行,仅执行esle后的。


        再看一个例子:

a = 10
b = 50

if a < b:
    c = b - a   # 条件为 真 执行
else:
    c = b * a   # 条件为 假 执行

print(c)

        这个例子中,条件满足时,我们定义一个名为 c 的变量,将 b - a 的值赋值给他;条件不满足时 将 b * a 的结果 赋值给它;

        此时的条件语句结果,为真 第九行 判断语句外的print()函数打印的 c值 为 40(b-a的结果)

        我们改变以下a:

        此时的条件语句结果为假,对应 print()的结果就是3500(b * a的结果)


        这种赋值的方式有一种简单的写法(三元运算符)。

a = 70
b = 50

c = b - a if a < b else b * a

print(c)

        结果和上方的写法是相同的。

        if 与 else 之间的 是条件语句,如果这个条件为真,将 if 前的值赋值给变量,如果条件为假,则将else后的值赋值给变量。


条件判断的关键字:

        and 关键字:

if 条件语句1 and 条件语句2:
    print('条件1 与 条件2 均为真')
else:
    print('条件语句为假')

        第一行,由 条件语句1 和 条件语句2 中间以 and 关键字连接。共同组成了这个 if 的条件语句。and 关键字,需要在 条件语句1 和 条件语句2 同时为真时,结果为真。否则为假。

        举例1:

        举例2:

        举例3:

a = 70
b = 50

if a < 100 and b < 100:
    print('a b 均小于100')
else:
    print('a b 不满足均小于100的条件')

        修改 a 值


        or 关键字

        区别于 and(前后条件语句均为真,返回真,否则假),or 关键字仅需要 前或后某一项为真,则返回真,前或后均为假,才返回假。

        举例:

        修改 b 值 使 or 前后均为假:


        is,not 关键字

        is:是

        not:非

        in:在.....之内

        举例1(不使用关键字):判断一个值是否非空

a = None

if a:
    print('a非空')
else:
    print('a为None或空字符串、空列表')    # 上面有讲到

        举例2(单用 not 反转布尔值):判断一个值是否非空

a = None

if not a:        # 此时的 a 的布尔值为 False , not False(非假)则为True(真)
    print('a为None或空字符串、空列表')
else:
    print('a非空')

        举例3(单用 is ):判断一个值是否非None

a = None

if a is None:       # 如果 a 是 None(空)值
    print('a是None(空)值')
else:
    print('a非空')

        举例4(is,not 连用):判断一个值是否非None

        (注意下,和上一个只有细微的差别)

a = None

if a is not None:       # 如果 a 不是 None(空)值
    print('a 不是None(空)值')
else:
    print('a 为空')


        in 关键字

        举例1(单用 in ):判断一个字符串是否在另一个字符串中

a = '123456789abcdefg'
b = '234'

if b in a:       # 如果 字符串 b 在 a 中。
    print('字符串 b 在 a 中')
else:
    print('字符串 a 不包含 b')

        举例2(单用 in ):判断一个值是否在一个列表中。

a = [123, '234', 'test', None, False]
b = '234'

if b in a:       # 如果 b 在 列表 a 中
    print('b 在 列表 a 中')
else:
    print('b 不在 列表 a 中')

        举例3(单用 in ):判断一个值是否在一个字典的键中。

a = {
    'name': '小明',
    'age': 18,
    'family': ['明爸', '明妈'],
    22: '22'
}
b = 'name'

if b in a.keys():       # 如果 b 在 字典 a 的 键 中
# 此处的 .keys() 可以省略,.keys()用于获取字典的所有键。
# .keys() 返回的是一个类似 list 的值。
    print('b 在 字典 a 的 键 中')
else:
    print('b 不在 字典 a 的 键 中')

        举例4( not in 连用 表示 不在...之内):判断一个字符串是否不在另一个字符串中

a = '123456789abcdefg'
b = '234'

if b not in a:       # 如果 字符串 b 不在 a 中。
    print('字符串 b 不在 a 中')
else:
    print('字符串 a 包含 b')



多重条件判断:

        当 if 后的 条件不成立时,可 使用 elif (else if 的简写,两种都可以)另写一个“同级”条件进行判断,从而减少 if 嵌套。

a = 80

if a >= 100:                # 条件1 如果 a 大于等于 100
    print('a >= 100')
elif a >= 50:               # 条件2 当 条件1 为假时执行 如果 a 大于等于 50
    print('100 > a >= 50')
elif a >= 0:                # 条件3 当 条件1,2 为假时执行 如果 a 大于等于 0
    print('50 > a >= 0')
else:                       # 上述所有条件均为假时执行
    print('a < 0')

        本章结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值