7.1.1 理解条件控制
如果明天天气晴朗,那么我会去爬莲花山。否则我会去楼下的咖啡店喝一杯咖啡。
明天天气晴朗
爬莲花山
喝咖啡
7.1.2 if,elif,else
同学们可以在交互模式中查找if,elif,else关键字的定义及用法。以if进行举例:help("if")。
if expression: pass elif expression: pass else: pass
if有如果的意思,expression为条件控制结构中的条件表达式,通常可以输出值的都可以作为条件表达式。如果条件表达式的值为真值,那么就执行相应的操作。elif用来表示分支条件,即在if语句中的条件不成立的情况下,继续判断elif语句中的条件是否成立。else表示if语句和elif语句中的条件都不成立的情况下,才执行的操作。
语法结构中的冒号表示一个条件语句块的开始。在条件控制的语法结构中,elif与else不是必须的,可以有多个elif,但最多只有1个else。
if expression: pass elif expression: pass else: pass else: pass
在以上非法的条件控制结构中,存在多个else语句。elif语句必须在if语句的后面,else语句必须是控制结构中的最后一个语句。
elif expression: pass if expression: pass else: pass elif: pass
if expression: # 这是一个单独的条件控制结构 pass if expression: # 这是一个单独的条件控制结构 pass elif expression: pass else: pass
7.1.3 条件表达式
is_happy = 0 if is_happy: # 在if语句中判断表达式值的真假,值为真,就执行冒号下面的代码 print("i am so happy") else: # 在if和elif语句的条件都不成立的情况下,才执行else语句中的代码 print("i am so unhappy")
在以上代码实例中,定义了一个is_happy变量,其指向的值为0, 0值转换后的逻辑值为假。所以不会执行if语句中的代码,转而执行else语句下面的代码,输出为:
i am so unhappy
x = 1 y = -1 if x+y > 0: # 在if语句中判断表达式值的真假, # 值为真,就执行冒号下面的代码 print("x+y > 0") elif x+y == 0: # if语句中的条件不成立的情况下 # 会继续判断elif语句中的条件是否成立 print("x+y == 0") else: # 在if和elif语句的条件都不成立的情况下 # 才执行else语句中的代码 print("x+y < 0")
在以上代码实例中,定义了一个x变量,其指向的值为1,定义了一个y变量,其指向的值为-1。x+y的值为0,所以表达式x+y > 0等价于0 > 0, 显然表达式的值为假,所以会继续判断elif语句中的条件是否成立。elif中的条件表达式为“x+y == 0”,表达式的值为真,故会执行elif语句中的代码:
print("x+y==0")
最终程序的输出为:
x+y == 0
x = -1 y = -1 if x+y > 0 and x*y > 0: # 在if语句中判断表达式值的真假 # 值为真,就执行冒号下面的代码 print("x与y都为正数") elif x+y > 0: # 在上面的elif不成立的条件下 # 继续判断elif语句中的条件是否成立 print("x与y其中一个为正数") elif x*y > 0: # if语句中的条件不成立的情况下 # 继续判断elif语句中的条件是否成立 print("x与y都为负数") elif x * y < 0: print("x与y其中一个为负数") else: print("x与y至少一个为0")
在以上代码实例中,定义了一个x变量,其指向的值为-1,定义了一个y变量,其指向的值为-1。x*y的值为1,所以表达式x*y > 0的值为真。x+y的值为-2,所以表达式x+y > 0的值为假。if语句中的条件表达式为“x+y > 0 and x*y > 0”,等价于“真 and 假”,在逻辑与运算中只要其中一个逻辑值为假,那么输出就为假。故会继续判断下一个条件分支:
elif x+y > 0
print("x与y都为负数")
x与y都为负数
7.1.4 条件控制可以嵌套
is_happy = 1 x = -1 y = -1 if is_happy: # 注意代码缩进 print("i'm so happy to learn Python!") if x+y > 0: # 注意代码缩进 print("x与y至少有一个为正数") elif x*y > 0: # 注意代码缩进 print("x与y都为负数") elif x*y < 0: # 注意代码缩进 print("x与y中有一个负数") else: # 注意代码缩进 print("x与y至少有一个为0") else: # 注意代码缩进 print("i'm so unhappy")
程序输出为:
i'm so happy to learn Python! x与y都为负数
7.1.5 if语句的三元运算
expression1 if condition_expression else expression2
is_happy = 0 if is_happy: feeling = "so happy" else: feeling = "so unhappy"
is_happy = 0 # 用英文引号括住的都为字符串类型 feeling = "so happy" if is_happy else "so unhappy"
这两则代码实例实现的是同样的效果,但使用三目运算符的代码看起来更简洁。在条件分支比较多的情况下,不适合使用三目运算符,读者需根据实际情况来进行合理使用。
7.1.6 最具实力的小班培训
薯条老师在广州有开设线下培训班,小班授课模式,一班最多6个人。也可一对一授课,全程帮助你学好计算机,实现高薪就业。不在广州的同学可提供住宿,也可以报名线上小班,用腾讯会议上直播课。
(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python中高级爬虫逆向工程师就业班,月薪15K-25K,包拿Offer
(3) Python数据分析+商业分析+数据科学就业班,企业级项目实战,月薪10K-20K
(4) Python量化交易就业班,A股+期货+数字货币量化,月薪10K-40K
(5) Python机器学习+深度学习算法工程师,月薪20-50K
跟薯条老师学习的学生有拿到花生日记,林氏家居,南方电网,京东, 阿里等公司的offer, 学生的最低薪资有6K,最高薪资有18K, 平均就业薪资有11000。
扫码咨询薯条老师: