本帖最后由 test 于 2023-3-29 17:45 编辑
广州番禺Python, Java小班周末班培训薯条老师在广州做Python和Java的小班培训,一个班最多10人, 学员的平均就业薪资有11K。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击: http://chipscoco.com/?cate=6 7.1.1 理解条件控制在日常生活中,我们常喜欢说如果, "如果怎么样,那么就会怎么样"。"如果"表达的是一种假设情况,即在假设成立的情况下,会执行某种操作,在假设不成立的情况下,同样会执行某种操作。
例如在以下的“如果”句式中:
如果明天天气晴朗,那么我会去爬莲花山。否则我会去楼下的咖啡店喝一杯咖啡。 在以上句式中提出的假设为:
明天天气晴朗 假设成立时所执行的操作:
爬莲花山 假设不成立时所执行的操作:
喝咖啡 这种以“如果”句式表达的一种逻辑结构,就是一种条件控制。条件控制的核心是先提出一个假设条件,如果条件成立就执行什么样的操作,如果条件不成立,就继续判断其它的条件。在编程语言中,也是通过“如果”来进行条件控制,其对应的关键词是“if”,if的中文释义正是“如果”。
7.1.2 if,elif,else在Python中通过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
在以上非法的条件控制结构中,elif语句必须紧跟在if语句后面,else必须是控制结构中的最后一个语句。存在多个if语句时,Python会将每一个if语句视为一个单独的条件控制结构:
if expression:
# 这是一个单独的条件控制结构
pass
if expression:
# 这是一个单独的条件控制结构
pass
elif expression:
pass
else:
pass
7.1.3 条件表达式承上,通常可以输出值的都可以作为条件表达式,如果条件表达式的值为真值,那么就执行相应的操作。
代码实例(1):
- 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
代码实例(2):
- 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
代码实例(3):
- 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
表达式x+y = 0的值为假,Python会继续判断下一个条件分支:“elif x*y > 0”。表达式x*y > 0的值为真,故会执行冒号下方的代码:
print("x与y都为负数")
最终程序的输出为:
x与y都为负数
同学们在分析上文代码的执行过程时,需要理清代码中的判断逻辑,为什么x与y都为负数?
7.1.4 条件控制可以嵌套嵌套是指可以在条件语句下面再嵌套条件语句,读者须注意if语句嵌套时的代码缩进。
代码实例:
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都为负数
if嵌套的深度不宜过深,通常保持在三层以内即可。嵌套层数过多会导致代码的可读性变差,难以维护。
7.1.5 if语句的三元运算三元运算符是软件编程中的一种固定格式,在Python中,通过if语句来实现三元运算符。
三元运算符的语法格式:
expression1 if condition_expression else expression2
三元运算符的执行逻辑为: 如果if语句中的条件表达式condition_expression的值为真,就返回表达式expression1的值,否则返回表达式expression2的值。
使用三元运算符在特定场景下可以简化if语句的使用。
未使用三元运算符的代码实例:
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 最具实力的小班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。
(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪11K-20K, 免费领取课程大纲
(4) Python大数据分析,量化投资就业班,月薪12K-25K,免费领取课程大纲
扫码免费领取Python学习资料:
|