Python语法之流程控制

简介: 首先我们一起来了解一下牛郎织女的故事:传说古代天帝的孙女织女擅长织布,每天给天空织彩霞。她讨厌这枯燥的生活,就偷偷下到凡间,私自嫁给河西的牛郎,过上男耕女织的生活。此事惹怒了天帝,把织女捉回天宫,责令他们分离,只允许他们每年的农历七月七日在鹊桥上相会一次。织女因为厌烦了每天织布的枯燥生活,选择下到凡间。在我们的生活中,也经常要做大大小小的各种决策。影响我们做出决策的因素有很多,一般是当某些条件满足时,我们会做出决策 A;条件不满足时,做出决策 B。

首先我们一起来了解一下牛郎织女的故事:传说古代天帝的孙女织女擅长织布,每天给天空织彩霞。她讨厌这枯燥的生活,就偷偷下到凡间,私自嫁给河西的牛郎,过上男耕女织的生活。此事惹怒了天帝,把织女捉回天宫,责令他们分离,只允许他们每年的农历七月七日在鹊桥上相会一次。织女因为厌烦了每天织布的枯燥生活,选择下到凡间。在我们的生活中,也经常要做大大小小的各种决策。影响我们做出决策的因素有很多,一般是当某些条件满足时,我们会做出决策 A;条件不满足时,做出决策 B

计算机的执行过程也是类似的,计算机不一定都是从上到下逐条执行指令,有些时候计算机也会对一些条件进行评估,当评估结果为 True时(满足某些条件),执行某个代码块;当评估结果为 False 时(不满足某些条件),执行另一个代码块。在 Python 中,可以使用 if... else 语句来完成上述代码流程的控制。

比如:织女厌烦了每天织布的枯燥生活,选择下到凡间。就可以用 if 语句来实现:

# 织女的生活状态是厌烦了每天织布的枯燥生活
living_conditions = '织女厌烦了每天织布的枯燥生活'
if living_conditions == '织女厌烦了每天织布的枯燥生活':
    print('织女下到凡间')

1.if 语法

1.1 if

网络异常,图片无法展示
|

我们一定要注意语法规范:if 条件语句后面要加 :,且是英文状态下的冒号 :,if 后的语句要缩进四个空格,这是因为语句块 1 是在满足 if 条件下要执行的,因此要有缩进。织女下凡之后,认识了牛郎,也更加注重身材管理,我们通过 if 条件语句来帮助织女更好地进行身材管理吧!现在我们假设织女的身高是 1.55 米,体重是 65 公斤,通过 BMI 的计算公式,计算出 BMI,依此来判断织女是否超重。

weight = 65
height = 1.55
BMI = float(weight) / (float(height) * float(height))
if BMI >= 25:
    print("BMI=", BMI)
    print("织女体重过重")

我们首先来看上面语句中需要注意的两点:(1)不要忘记 if 语句后面的冒号:,如果不带冒号会报语法错误。(2)Python 语言通过缩进来标识代码块,在上述例子中,print("BMI=", BMI)print("织女体重过重") 属于同一个代码块,当 if 语句的条件成立时,print("BMI=", BMI)print("织女体重过重") 都会被执行。通过缩进来指定代码块是 Python 的一大特色。织女每天严格控制体重,但是她希望对自己的体重情况有更清晰的认识,而不是仅仅知道自己的体重是否超重?这个时候我们就可以通过 if...else... 来帮助织女啦!

1.2 if... else

网络异常,图片无法展示
|

我们来进行稍微精细一点的划分,帮助织女更好的掌握自己的体重情况:织女在知道自己体重过重之后,非常沮丧,沮丧之后重振旗鼓,执行了非常严格的饮食管理和运动,并且咬牙坚持了很长一段时间,终于体重瘦到了 40 公斤,下面我们用 if...else... 语句来帮助织女判断现在她的身材状态:

weight = 40
height = 1.55
BMI = float(weight) / (float(height) * float(height))
if 18.5 <= BMI < 25:
    print("BMI=", BMI)
    print("织女体重正常")
else:
    print("织女体重过重或过轻")

大家一定要记得 if 后面的冒号和 else 后面的冒号,以及 if 条件下的语句块和 else 下的语句块的缩进哟!织女看到结果后,不清楚自己的体重到底是过重还是过轻,我们有什么办法可以帮助她进一步判断么?这个当然有啦!我们可以使用 if...elif...else 语句来解决!

1.3  if...elif...else

网络异常,图片无法展示
|

elif 语句块可出现一次或多次。下面我们针对织女的需求,进行体重过重和过轻的进一步区分:

weight = 40
height = 1.55
BMI = float(weight) / (float(height) * float(height))
if 18.5 <= BMI < 25:
    print("BMI=", BMI)
    print("织女体重正常")
elif BMI < 18.5:
    print("BMI=", BMI)
    print("织女体重过轻")
else:
    print("BMI=", BMI)
    print("织女体重过重")

由于 elif 语句块可出现多次,我们还可以进行细分,帮助织女更详细的掌握自己的体重情况。

weight = 40
height = 1.55
BMI = float(weight) / (float(height) * float(height))
if BMI < 15:
    print("BMI=", BMI)
    print("织女非常严重的体重不足")
elif 15 <= BMI < 16:
    print("BMI=", BMI)
    print("织女严重体重不足")
elif 16 <= BMI < 18.5:
    print("BMI=", BMI)
    print("织女体重过轻")
elif 18.5 <= BMI < 25:
    print("BMI=", BMI)
    print("织女体重正常")
elif 25 <= BMI < 30:
    print("BMI=", BMI)
    print("织女体重过重")
elif 30 <= BMI < 35:
    print("BMI=", BMI)
    print("织女中等肥胖")
elif 35 <= BMI < 40:
    print("BMI=", BMI)
    print("织女严重肥胖")
else:
    print("BMI=", BMI)
    print("织女非常严重肥胖")

1.4 嵌套if 语句

由于 if 语句允许嵌套,也就是 if 语句中可以再包含 if 语句,需要注意的是相应的语法规则要对应上(比如 if 语句的冒号、缩进、else 的冒号和缩进等等),所以上述 if 语句后面跟的语句块同样可以包含 if 语句。使用嵌套 if 语句,可以将上述代码改成如下形式:

weight = 40
height = 1.55
BMI = float(weight) / (float(height) * float(height))
if 18.5 <= BMI < 25:
    print("BMI=", BMI)
    print("织女体重正常")
elif BMI < 18.5:
    print("BMI=", BMI)
    if 16 <= BMI:
        print("织女体重过轻")
    elif 15 <= BMI < 16:
        print("织女严重体重不足")
    else:
        print("织女非常严重的体重不足")
else:
    print("BMI=", BMI)
    if BMI < 30:
        print("织女体重过重")
    elif 30 <= BMI < 35:
        print("织女中等肥胖")
    elif 35 <= BMI < 40:
        print("织女严重肥胖")
    else:
        print("织女非常严重肥胖")

我们看到一共有3个 if...elif...else 语句,根据对齐位置判断语句间的关系,这里要再次强调,使用 if 语句的时候,一定不要忘记缩进和冒号哦!我们主要介绍了流程控制 if 语句、if...else 语句、if...elif...else 语句以及嵌套if语句的用法,在使用这些语句的过程中,我们一定要注意冒号和缩进是不能忘的哦!还有所有的代码都要是英文状态下的哦。

给感兴趣的小伙伴来一道题——小试牛刀吧!

牛郎织女坚贞的爱情感动了喜鹊,无数喜鹊飞来,用身体搭成一道跨越天河的喜鹊桥,让牛郎织女在天河上相会。下面我们使用 if 语句来判断下鹊桥的长度吧:如果喜鹊数量小于 1000 只,鹊桥长度为 1 米;喜鹊数量大于等于 1000 只,小于 10000 只,鹊桥长度为 10 米;喜鹊数量大于等于 10000 只,小于 100000 只,鹊桥长度为 100 米;喜鹊数量大于等于 100000只,鹊桥长度大于 100 米!假定喜鹊数量有四种情况,500只、6000只、20000只、150000只,通过修改喜鹊数量的值来判断鹊桥长度吧!

相关文章
|
1月前
|
人工智能 Ubuntu IDE
【Python】基础:环境配置与基础语法
本文介绍了Python编程语言及其环境配置方法。Python由Guido van Rossum于1991年创建,以其简洁、易学和强大的功能著称。文章详细讲解了Python的主要特点、Windows和Ubuntu下的安装配置步骤、基础语法、控制流、函数、文件操作、模块使用及面向对象编程等内容,帮助读者快速入门Python编程。
56 4
|
10天前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
|
21天前
|
存储 Python Perl
python正则语法
本文介绍了正则表达式的基础知识及其在 Python 中的应用。首先解释了为什么要使用正则表达式,通过一个判断手机号的示例展示了正则表达式的简洁性。接着详细介绍了 `re` 模块的常用方法,如 `match()`、`search()`、`findall()`、`finditer()` 等,并讲解了正则表达式的基本语法,包括匹配单个字符、数字、锚字符和限定符等。最后,文章还探讨了正则表达式的高级特性,如分组、编译和贪婪与非贪婪模式。
20 2
|
27天前
|
存储 程序员 开发者
Python编程入门:从零开始掌握基础语法
【10月更文挑战第21天】本文将带你走进Python的世界,通过浅显易懂的语言和实例,让你快速了解并掌握Python的基础语法。无论你是编程新手还是想学习一门新的编程语言,这篇文章都将是你的不二之选。我们将一起探索变量、数据类型、运算符、控制结构、函数等基本概念,并通过实际代码示例加深理解。准备好了吗?让我们开始吧!
|
1月前
|
人工智能 IDE 测试技术
使用通义灵码提升Python开发效率:从熟悉代码到实现需求的全流程体验
作为一名Python开发者,我最近开始使用通义灵码作为开发辅助工具。它显著提高了我的工作效率,特别是在理解和修改复杂代码逻辑方面。通过AI编码助手,我能够在短时间内快速上手新项目,实现新需求,并进行代码优化,整体效率提升了60%以上。通义灵码不仅加快了代码生成速度,还增强了代码的健壮性和稳定性。
|
1月前
|
SQL 关系型数据库 数据库
优化Web开发流程:Python ORM的优势与实现细节
【10月更文挑战第4天】在Web开发中,数据库操作至关重要,但直接编写SQL语句既繁琐又易错。对象关系映射(ORM)技术应运而生,让开发者以面向对象的方式操作数据库,显著提升了开发效率和代码可维护性。本文探讨Python ORM的优势及其实现细节,并通过Django ORM的示例展示其应用。ORM提供高级抽象层,简化数据库操作,提高代码可读性,并支持多种数据库后端,防止SQL注入。Django内置强大的ORM系统,通过定义模型、生成数据库表、插入和查询数据等步骤,展示了如何利用ORM简化复杂的数据库操作。
61 6
|
1月前
|
存储 C语言 索引
Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
本文全面介绍了Python的基础知识,包括Python的诞生背景、为什么学习Python、Python的应用场景、Python环境的安装、Python的基础语法、数据类型、控制流、函数以及数据容器的使用方法,旨在为Python零基础读者提供一篇全面掌握Python语法的博客。
44 0
Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
|
1月前
|
存储 数据可视化 数据处理
【Python篇】快速理解Python语法:全面指南
【Python篇】快速理解Python语法:全面指南
46 1
|
2月前
|
Java Linux C++
30天拿下Python之基础语法
30天拿下Python之基础语法
30 4
|
2月前
|
IDE Java 开发工具
Python的语法
Python的语法。
37 5