集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2204|回复: 2

给深度学习入门者的Python快速教程基础篇之十四

[复制链接]
4798345 发表于 2017-5-22 18:26:33 | 显示全部楼层 |阅读模式
if和分支结构

上一个例子中已经出现if语句了,所以这部分讲讲if。Python的条件控制主要是三个关键字:if-elif-else,其中elif就是else if的意思。还是看例子:
pets =['dog', 'cat', 'droid', 'fly']

for pet in pets:
if pet == 'dog': # 狗粮
food = 'steak' # 牛排
elif pet == 'cat': # 猫粮
food = 'milk' # 牛奶
elif pet == 'droid': # 机器人
food = 'oil' # 机油
elif pet == 'fly': # 苍蝇
food = 'sh*t' #
else:
pass
print(food)

需要提一下的是pass,这就是个空语句,什么也不做,占位用。Python并没有switch-case的语法,等效的用法要么是像上面一样用if-elif-else的组合,要么可以考虑字典:
pets = ['dog', 'cat', 'droid', 'fly']
food_for_pet = {
'dog': 'steak',
'cat': 'milk',
'droid': 'oil',
'fly': 'sh*t'
}

for pet in pets:
food = food_for_pet[pet] if pet in food_for_pet else None
print(food)

这里还用到了一个if-else常见的行内应用,就是代替三元操作符,如果键在字典中,则food取字典的对应值,否则为None。

if表达式中的小技巧

通过链式比较让语句简洁:
if -1 < x < 1: # 相较于 if x > -1 and x < 1:
print('The absolute value of x is < 1')

判断一个值是不是等于多个可能性中的一个:
if x in ['piano', 'violin', 'drum']: # 相较于 if x == 'piano' or x == 'violin' or x =='drum':
print("It's an instrument!")

Python中的对象都会关联一个真值,所以在if表达式中判断是否为False或者是否为空的时候,是无需写出明确的表达式的:
a = True
if a: # 判断是否为真,相较于 a is True
print('a is True')

if 'sky': # 判断是否空字符串,相较于 len('sky') > 0
print('birds')

if '': # 判断是否空字符串,同上
print('Nothing!')

if {}: # 判断是否空的容器(字典),相较于len({}) > 0
print('Nothing!')

隐式表达式为False的是如下状况:

– None

– False

– 数值0

– 空的容器或序列(字符串也是一种序列)

– 用户自定义类中,如果定义了__len__()或者__nonzero__(),并且被调用后返回0或者False
fpga_feixiang 发表于 2017-6-1 12:03:35 | 显示全部楼层
谢谢楼主分享
zxopenljx 发表于 2022-11-8 10:04:44 | 显示全部楼层
给深度学习入门者的Python快速教程基础篇之十四
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-6-2 15:59 , Processed in 0.069216 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表