语句(2)

所谓条件语句,顾名思义,就是依据某个条件,满足这个条件后执行下面的内容。

if

if,其含义就是:conj. (表条件)如果。if 发起的就是一个条件,它是构成条件语句的关键词。

  1. >>> a = 8
  2. >>> if a==8:
  3. ... print a
  4. ...
  5. 8

在交互模式下,简单书写一下if发起的条件语句。特别说明,我上面这样写,只是简单演示一下。如果你要写大段的代码,千万不要在交互模式下写。

if a==8:,这句话里面如果条件 a==8 返回的是 True,那么就执行下面的语句。特别注意,冒号是必须的。下面一行语句 print a 要有四个空格的缩进。这是 Python 的特点,称之为语句块。

唯恐说的不严谨,我还是引用维基百科中的叙述:

Python 开发者有意让远反了缩排規則的程序不能通过编译,以此来强迫程序员养成良好的编程习惯。並且Python 語言利用缩排表示语句块的开始和结束(Off-side 规则),而非使用花括号或者某种关键字。增加缩表示语句块的开始,而減少缩排则表示语句块的结束。缩排成为了语法的一部分。例如 if 语句.

根剧 PEP 的规定,必须使用 4 个空格来表示每级缩排。使用 Tab 字符和其它数目的空格虽然都可以编译通过,但不符合编码规范。支持 Tab 字符和其它数目的空格仅仅是为兼容很旧的 Python 程式和某些有问题的编辑程式。

从上面的这段话中,提炼出几个关键点:

  • 必须要通过缩进方式来表示语句块的开始和结束
  • 缩进用四个空格(也是必须的,别的方式或许可以,但不提倡)

if/else/elif

在进行条件判断的时候,只有 if,往往是不够的。比如下图所示的流程

语句(2) - 图1

这张图反应的是这样一个问题:

输入一个数字,并输出输入的结果,如果这个数字大于 10,那么同时输出大于 10,如果小于 10,同时输出提示小于 10,如果等于 10,就输出表扬的一句话。

从图中就已经显示出来了,仅仅用 if 来判断,是不足的,还需要其它分支。这就需要引入别的条件判断了。所以,有了 if…elif…else 语句。

基本样式结构:

  1. if 条件 1:
  2. 执行的内容 1
  3. elif 条件 2:
  4. 执行的内容 2
  5. elif 条件 3
  6. 执行的内容 3
  7. else:
  8. 执行的内容 4

elif 用于多个条件时使用,可以没有。另外,也可以只有 if,而没有 else。

下面我们就不在交互模式中写代码了。打开文本编辑界面,你的编辑器也能提供这个功能,如果找不到,请回到《写一个简单的程序》查看。

代码实例如下:

  1. #! usrbin/env python
  2. #coding:utf-8
  3. print "请输入任意一个整数数字:"
  4. number = int(raw_input()) #通过 raw_input()输入的数字是字符串
  5. #用 int()将该字符串转化为整数
  6. if number == 10:
  7. print "您输入的数字是:%d"%number
  8. print "You are SMART."
  9. elif number > 10:
  10. print "您输入的数字是:%d"%number
  11. print "This number is more than 10."
  12. elif number < 10:
  13. print "您输入的数字是:%d"%number
  14. print "This number is less than 10."
  15. else:
  16. print "Are you a human?"

特别提醒看官注意,前面我们已经用过 raw_input() 函数了,这个是获得用户在界面上输入的信息,而通过它得到的是字符串类型的数据。

上述程序,依据条件进行判断,不同条件下做不同的事情了。需要提醒的是在条件中:number == 10,为了阅读方便,在 number 和 == 之间有一个空格最好了,同理,后面也有一个。这里的 10,是 int 类型,number 也是 int 类型.

把这段程序保存成一个扩展名是.py 的文件,比如保存为 num.py,进入到存储这个文件的目录,运行 Python num.py,就能看到程序执行结果了。下面是我执行的结果,供参考。

  1. $ Python num.py
  2. 请输入任意一个整数数字:
  3. 12
  4. 您输入的数字是:12
  5. This number is more than 10.
  6. $ Python num.py
  7. 请输入任意一个整数数字:
  8. 10
  9. 您输入的数字是:10
  10. You are SMART.
  11. $ Python num.py
  12. 请输入任意一个整数数字:
  13. 9
  14. 您输入的数字是:9
  15. This number is less than 10.

不知道各位是否注意到,上面的那段代码,开始有一行:

  1. #! usrbin/env python

这是什么意思呢?

这句话以 # 开头,表示本来不在程序中运行。这句话的用途是告诉机器寻找到该设备上的 Python 解释器,操作系统使用它找到的解释器来运行文件中的程序代码。有的程序里写的是 usrbin Python,表示 Python 解释器在 usrbin 里面。但是,如果写成 usrbin/env,则表示要通过系统搜索路径寻找 Python 解释器。不同系统,可能解释器的位置不同,所以这种方式能够让代码更将拥有可移植性。对了,以上是对 Unix 系列操作系统而言。对与 windows 系统,这句话就当不存在。

在“条件”中,就是上节提到的各种条件运算表达式,如果是 True,就执行该条件下的语句。

三元操作符

三元操作,是条件语句中比较简练的一种赋值方式,它的模样是这样的:

  1. >>> name = "qiwsir" if "laoqi" else "github"
  2. >>> name
  3. 'qiwsir'
  4. >>> name = 'qiwsir' if "" else "python"
  5. >>> name
  6. 'Python'
  7. >>> name = "qiwsir" if "github" else ""
  8. >>> name
  9. 'qiwsir'

总结一下:A = Y if X else Z

什么意思,结合前面的例子,可以看出:

  • 如果 X 为真,那么就执行 A=Y
  • 如果 X 为假,就执行 A=Z

如此例

  1. >>> x = 2
  2. >>> y = 8
  3. >>> a = "python" if x>y else "qiwsir"
  4. >>> a
  5. 'qiwsir'
  6. >>> b = "python" if x<y else "qiwsir"
  7. >>> b
  8. 'python'

总目录

如果你认为有必要打赏我,请通过支付宝:qiwsir@126.com,不胜感激。