控制流

截止到现在,在我们所看过的程序中,总是有一系列语句从上到下精确排列,并交由 Python 忠实地执行。如果你想改变这一工作流程,应该怎么做?就像这样的情况:你需要程序作出一些决定,并依据不同的情况去完成不同的事情,例如依据每天时间的不同打印出 '早上好' 'Good Morning' 或 '晚上好' 'Good Evening'?

正如你可能已经猜测到的那番,这是通过控制流语句来实现的。在 Python 中有三种控制流语句——if、for 和 while。

if 语句

python if 语句用以检查条件:如果 条件为真(True),我们将运行一块语句(称作 if-block 或 if 块),否则 我们将运行另一块语句(称作 else-block 或 else 块)。其中 else 从句是可选的。

案例(保存为 if.py):

number = 23guess= int(input('Enter an integer :'))if guess ==number:#新块从这里开始

print('Congratulations, you guessed it.')print('(but you do not win any prizes!)')#新块在这里结束

elif guess

print('No, it is a little higher than that')#你可以在此做任何你希望在该代码块内进行的事情

else:print('No, it is a little lower than that')#你必须通过猜测一个大于(>)设置数的数字来到达这里。

print('Done')#这最后一句语句将在#if 语句执行完毕后执行。

输出:

$ python if.py

Enter an integer :50No, itisa little lower than that

Done

$ pythonif.py

Enter an integer :22No, itisa little higher than that

Done

$ pythonif.py

Enter an integer :23Congratulations, you guessed it.

(but you donotwin any prizes!)

Done

它是如何工作的

在这个程序中,我们根据用户猜测的数字来检查这一数字是否是我们所设置的。我们将变量 number 设为任何我们所希望的整数,例如 23。然后,我们通过 input() 函数来获取用户的猜测数。所谓函数是一种可重复使用的程序。我们将在下一章python教程中详细讨论它。

我们为内置的 input 函数提供一串打印到屏幕上的字符串并等待用户的输入。一旦我们输入了某些内容并按下键盘上的 enter 键,input() 函数将以字符串的形式返回我们所输入的内容。然后我们通过 int 将这个字符串转换成一个整数并将其储存在变量 guess 中。实际上,int 是一个类(Class),但你现在你所需要知道的就是你可以使用它将一串字符串转换成一个整数(假设这个字符串的文本中含有一个有效的整数)。

接下来,我们将用户提供的猜测数与我们所选择的数字进行对比。如果它们相等,我们就打印一条成功信息。在这里要注意到我们使用缩进级别来告诉 Python 哪些语句分别属于哪个块。这便是为什么在 Python 中缩进如此重要。我希望你能够坚持“缩进一致”的原则,你能做到吧?

另外需要注意的是 if 语句在结尾处包含一个冒号——我们借此向 Python 指定接下来会有一块语句在后头。

然后,我们检查猜测数是否小于我们选择的数字,如果是,我们将告诉用户他们必须猜一个更高一些的数字。在这里我们使用的是 elif 语句,它们实际上将两个相连的 if else-if else 语句合并成一句 if-elif-else 语句。这能够使程序更加简便,并且可以减少所需要的缩进量。

elif 和 else 同样都必须有一个冒号在其逻辑行的末尾,后面跟着与它们相应的语句块(当然,别忘了恰当的缩进)。

你可以在 if 块的 一个 if 语句中设置另一个 if 语句,并可以如此进行下去——这被称作嵌套的 if 语句。

要记住 elif 和 else 部分都是可选的。一个最小规模且有效的 if 语句是这样的:

ifTrue:print('Yes, it is true')

当 Python 完整执行了 if 语句及与其相关的 elif 和 else 子句后,它将会移动至包含 if 语句的代码块的下一句语句中。在本例中,也就是主代码块(程序开始执行的地方),其下一句语句就是 print('Done') 语句。在完成这些工作后,Python 会发现已行至程序末尾并宣告工作的完成。

尽管这是一个非常简单的程序,我也一直在其中指出你应该注意的事情。所有的这些都可算是简单易懂(对于那些具有 C/C++ 背景的人来说是相当简单易懂)。不过在开始时它们还是可能会不断吸引你的注意,不断地去在意它们。但经过一些更丰富的操作后你就会习惯它们及其中的逻辑,它们对于你来说将会成为“自然而然”的事情。

针对 C/C++ 程序员的提示

Python 中不存在 switch 语句。你可以通过使用 if..elif..else 语句来实现同样的事情(在某些情况下,使用一部字典能够更快速地完成)。

python中if控制语句_了解Python控制流语句——if语句相关推荐

  1. python中select模块_基于python select.select模块通信的实例讲解 如何用python写个串口通信的程序...

    python socket怎么利用select实现双工通信 方法: Before : 0000000000000000000000000000000000000000 After pack: 0100 ...

  2. 在python中设置密码登录_在python中生成密码

    在python中生成密码 我想在python中生成一些字母数字密码. 一些可能的方法是: import string from random import sample, choice chars = ...

  3. python中 什么意思_请问python中%代表什么意思?

    婷婷同学_ 1.格式符例如:a = 'test'print 'it is a %s' %(a)打印的结果就是 it is a test2.单独看%,是一个运算符号,求余数.例如:求模运算,相当于mod ...

  4. lambda在python中的用法_在python中对lambda使用.assign()方法

    我在Python中运行以下代码:#Declaring these now for later use in the plots TOP_CAP_TITLE = 'Top 10 market capit ...

  5. python中的帮助_在Python中使用help帮助

    原博文 2014-10-18 23:21 − 在Python中使用help帮助 >>> import numpy >>> help(numpy.argsort) H ...

  6. python中class变量_对python 中class与变量的使用方法详解

    python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...

  7. python中__init__方法_关于python中__init__方法理解

    在理解__init__方法之前,我们需要搞明白,什么时候才需要用到的这个方法 什么是__init__? __init__方法在python中是类的初始化,通俗来讲,就是每次只要你去创建一个类的实例对象 ...

  8. python中合并列表_关于python:如何将两个列表合并到一个列表中?

    我有 a = [1, 2] b = ['a', 'b'] 我想要 c = [1, 'a', 2, 'b'] 号 @cdleary's answer stackoverflow.com/question ...

  9. loop在python中什么意思_在python中使用loop打开多个文件

    基本上,我试图根据列表的名称打开多个文件. 我在日志/中有以下名称的文件here is the dir structure script---myfile.py | |----Log/*.txt fo ...

最新文章

  1. T-SQL查询——详解公用表达式(CTE)
  2. Fabric--启动网络自动
  3. 【实例讲解】JS中形参、实参可以不一致
  4. where is language of sap.ui.getCore().getConfiguration set - locale
  5. Github Page创建个人主页以及绑定域名
  6. 数据库连接池的设计思路及java实现
  7. jQuery模拟原生态App上拉刷新下拉加载效果代码
  8. 我是如何 2 个月拿到 4 份 Offer 并收入翻倍的?
  9. 课程回顾 | Xrosheart: 以太坊智能合约漏洞介绍与规模化审计方法详解(中)
  10. Python - PyCharm部分快捷键
  11. SoapUI接口测试——SoapUI简介
  12. 迈捷php邮箱系统源码,10分钟临时邮箱源码-php bccto.me的php版本源码 windows主机即可 - 下载 - 搜珍网...
  13. windows环境下_Django3.2+django_apscheduler0.6实现异步定时计划任务
  14. CentOS7开启Google TCP-BBR优化算法
  15. 在word的文字右上角添加符号(插入上标)?
  16. Atitit.js javascript异常处理机制与java异常的转换 多重catc hDWR 环境 .js exception process Vob7...
  17. 牛客_求将一个数组分割为两个差值最小的部分
  18. C#仓库管理系统 2021-06-28
  19. 大数据项目实训总结_大数据实习报告.doc
  20. h5网页检测手机是否安装了app。

热门文章

  1. mysql.createPool(db),Node.js中JavaScript操作MySQL的常用方法整理
  2. mysql 命令限制_MySQL 命令总结
  3. 数据挖掘的好书_唐宇迪:入门数据挖掘,我最推荐这本书
  4. html表单提交不判断,请问jquery有方法可以判断一个表单提交之后结果是成功或不成功吗?...
  5. 同一个SQL语句,为啥性能差异咋就这么大呢?
  6. Superior Scheduler:带你了解FusionInsight MRS的超级调度器
  7. 详解MySQL执行事务的语法和流程
  8. 实践分享丨物联网操作系统中的任务管理
  9. 实战解读丨Linux下实现高并发socket最大连接数的配置方法
  10. 【奇技淫巧】Android真机调试看不到应用logcat或者应用logcat信息太少的解决方法