十一、 python中的选择结构

我们在生活中处理问题的时候,总是需要判断这件事应不应该做,计算机在处理问题的时候也需要做判断,根据判断结果控制程序流程。

比如,有一个分段函数

分段函数f(x)

当x<-1时,f(x) = 2-x
当1<=x<=1/2时,f(x) = -3x
当x>1/2时,f(x) = x-2

我们要实现这个函数的时候,就需要使用条件判断。举个例子:

x = 1  #先定义x
if x<-1:  #如果x<-1
    y = 2-x  #则y = 2-x
elif 1<=x<=1/2:  #如果1<=x<=1/2
    y = -3*x  #则y = -3x
else:  #剩余的情况
    y = x-2  #y = x-2
print(y)

在python中,有三种判断方法:

  1. if语句
    当只需要判断一种情况时,我们使用if语句
if (条件表达式1):
       执行语句1
       执行语句2
       ……

当使用if语句的时候,程序先判断“条件表达式1”,如果表达式为真,则执行下面的“执行语句1”、“执行语句2”和后续的语句。

需要注意的是:执行语句前要加四个空格,这是python中的缩进,具有共同缩进的语句,为同一个整体。也就是说,上面例子中的“执行语句1”和“执行语句2”是同一个整体,如果“条件表达式1”为真,那么将按顺序依次执行“执行语句1”,“执行语句2”和……

举个例子:

age = 30
if age>=18:
    print('He is an adult.')
print('finished.')

我们运行这个例子,得到的是:

He is an adult.
finished.

因为age的值是30,大于等于18,条件表达式age>=18为True,因此执行下面的语句print('He is an adult.')。执行后选择结构就彻底执行完毕了,接着继续执行程序,print('finished.'),所以我们看到的结果有两句话。如果age = 6,那么结果就是:

finished.

条件表达式age>=18为False,不执行下属的执行语句,选择结构执行完毕,继续执行程序,print('finished.'),所以结果就只有这一句。

  1. if else语句
    有时候我们需要判断并执行两种情况,如果满足A,就执行什么东西,不满足,就执行另一种东西。
if (条件表达式1):
       执行语句1
else:
       执行语句2

如果“条件表达式1”为真,则执行“执行语句1”,如果“条件表达式1”为假,则执行“执行语句2”。举个例子:

age = 30
if age>=18:
       print('adult')
else:
       print('minor')

如果age>=18,则打印'adult',反之,打印'minor'。

  1. if elif else语句
    有时候,我们需要判断的情况有很多种,这时候就需要if elif else语句了。
if (条件表达式1):
       执行语句1
elif (条件表达式2):
       执行语句2
else:
       执行语句3

判断“条件表达式1”,为True,执行“执行语句1”,为False,判断“条件表达式2”,为True,执行“执行语句2”,为False,执行“执行语句3”。
在if elif else语句中,elif的个数是不限的,可以加很多个elif,但是if和else都只能有一个。例子就是开头的那个分段函数的例子。

需要注意的是,else一定要与前面的if对应,也就是具有相同的缩进,以表示他们两个是一组的。

有些时候,可以写成

if x:
    执行语句1

当x是非零数值、非空字符串、非空列表、元组、字典、集合时,执行下面的"执行语句1"。

if x:
    print(x,'True')
else:
    print(x,'False')

以下是当x分别为0, -1, 1, '', 'a', [], (), [1], 1, None, True, False时的打印结果。

0 False
-1 True
1 True
 False
a True
[] False
() False
[1] True
1 True
None False
True True
False False

规律就是
· 数字里面,除了0都是True,0是False
· 非空的字符串,列表,元组等,都是True,空是False
· None是False
以上就是python中的选择结构。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,841评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,415评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,904评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,051评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,055评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,255评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,729评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,377评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,517评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,420评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,467评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,144评论 3 317
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,735评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,812评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,029评论 1 256
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,528评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,126评论 2 341

推荐阅读更多精彩内容