第四章 Python运算符和流程控制

在第一章的时候讲解了运算操作符和赋值操作符,这章来学习下其他常用操作符。

4.1 基本运算符

4.1.1 比较操作符


操作符

描述

示例

==

相等

>>> 1 == 1  True

!=

不相等

>>> 1 != 1 False

>

大于

>>> 2 > 1   True

<

小于

>>> 2 < 1  False

>=

大于等于

>>> 1 >= 1  True

<=

小于等于

>>> 1 <= 1  True

4.1.2 逻辑运算符

逻辑运算符常用于表达式判断。


操作符

描述

and


or


not

示例:

>>> a = "a"

>>> b = "b"

>>> a and b

'b'

>>> a or b

'a'

>>> a = ""

>>> b = "b"

>>> a and b

''

>>> a or b

'b'

and操作符判断表达式,如果a和b都为真,返回b的值,否则返回a的值。

or操作符也是判断表达式,如果a和b都为真,返回a的值,否则返回b的值。

类似于shell里的&&和||:[ 'a' == 'b' ] && echo no || echo yes

>>> a = ""

>>> if not a:   

...   print "yes"

... else:       

...   print "no"

...

yes

>>> a = "a"

>>> if not a:   

...   print "yes"

... else:

...   print "no"

...

no

not操作符用于布尔值(true和false)判断不为真,与if语句连用。上面是不为真用not,那为真时怎么弄呢?

>>> a = "a"

>>> if a:

...   print "yes"

... else:

...   print "no"

...

yes

>>> a = ""

>>> if a:

...   print "yes"

... else:

...   print "no"

...

no

4.1.3 成员运算符


操作符

描述

in

在对象里

not in 

不在对象里

示例:

>>> 'a' in 'abc'

True

>>> 'd' in 'abc'

False

>>> lst = ['a','b','c']

>>> 'a' in lst

True

>>> 'd' in lst

False

>>> 'a' not in 'abc'

False

>>> 'd' not in 'abc'   

True

>>> 'd' not in lst

True

4.1.4 标识运算符


操作符

描述

is

内存地址相等

is not 

内存地址不相等

示例:

>>> a = []

>>> b = []

>>> id(a)

139741563903296

>>> id(b)

139741563902144

>>> a is b

False

>>> a is not b

True

这里用到了id()函数,用于获取对象在内存的地址。

4.2 条件判断

   4.2.1 单分支

>>> a = 20

>>> if a < 18: 

...   print "no"

... else:

...   print "yes"

...

yes

   有时候一个简单的判断语句,感觉这样写麻烦,有没有一条命令搞定的。

   有的,简写if语句:

>>> a = 20

>>> result = ("yes" if a == 20 else "no")

>>> result

'yes'

>>> type(result)

<type 'str'>

# 有时会看到别人代码用中括号,意思把结果存储为一个列表

>>> result = ["yes" if a == 20 else "no"]

>>> result

['yes']

>>> type(result)

<type 'list'>

   4.2.2 多分支

>>> a = 20

>>> if a < 18:

...   print "no"

... elif a == 20:

...   print "yes"

... else:

...   print "other"

...

yes

   4.2.3 pass语句

     >>> a = 20

>>> if a < 18:

...   print "no"

... elif a == 20:

...   pass

... else:

...   print "other"

...

   pass语句作用是不执行当前代码块,与shell中的冒号做作用一样。

博客地址:http://lizhenliang.blog.51cto.com and https://yq.aliyun.com/u/lizhenliang
QQ群:323779636(Shell/Python运维开发群)

4.3 循环语句

   4.3.1 for

     1)迭代对象

       遍历字符串,每个字符当做单个遍历:

>>> for i in "abc":

...   print i

...

a

b

c

       使用range()函数生成一个数字序列列表,并遍历:

>>> for i in range(1,5):

...   print i

...

1

2

3

4

       回顾下第三章讲的遍历字典:

>>> d = {'a':1, 'b':2, 'c':3}

>>> for i in d.iteritems():

...   print "%s:%s" %(i[0],i[1])

...

a:1

c:3

b:2

      2)嵌套循环

       逐个循环判断外层列表里元素是否存在内层列表:

>>> for i in range(1,6):

...   for x in range(3,8):

...     if i == x:

...       print i

...

3

4

5

      3)简写语句

        简写for语句:

>>> result = (x for x in range(5))

>>> result

<generator object <genexpr> at 0x030A4FD0>

>>> type(result)

<type 'generator'>

说明:在这里用小括号,会生成一个生成器,在这里知道下就可以了,不过多讲解,后面会专门生成器用途。

# 同样用中括号会以列表存储

>>> result = [ x for x in range(5)]

>>> type(result)

<type 'list'>

>>> result

[0, 1, 2, 3, 4]

       for和if语句写一行:

>>> result = [ x for x in range(5) if x % 2 == 0]

>>> result

[0, 2, 4]

   4.3.2 while

    语法:

    while 表达式:

        执行语句...

       1)输出序列

         当条件满足时,停止循环:

>>> while count < 5:

...   print count   

...   count += 1   

...

0

1

2

3

4

       2)死循环

>>> import time

>>> i = 1

>>> while True:     

...   print i       

...   i += 1         

...   time.sleep(0.5)

...

1

2

3

......   # 会一直循环,直到海枯石烂,天荒地老...

       注意:当表达式值为true或者非零时,都会一直循环。

   4.3.3 continue和break语句

   continue当满足条件时,跳出本次循环。

   break当满足条件时,跳出所有循环。

   for和while用法一样。

      1)基本使用

       满足条件跳出当前循环:

#!/usr/bin/env python

for i in range(1,6):

    if i == 3:

        continue

    else:

        print i

# python test.py

1

2

4

5

#!/usr/bin/env python

count = 0

while count < 5:

    count += 1

    if count == 3:

        continue

    else:

        print count

# python test.py

1

2

4

5

       满足条件终止循环:

#!/usr/bin/env python

for i in range(1,6):

    if i == 3:

        break

    else:

        print i

# python test.py

1

2

#!/usr/bin/env python

count = 0

while count < 5:

    count += 1

    if count == 3:

        break

    else:

        print count

# python test.py

1

2

      2)输入错误次数超过三次退出

       例如:提示用户输入名字,如果名字是xiaoming输入正确退出,否则一直提示重新输入,直到三次退出。

#!/usr/bin/env python

count = 0

while 1:

    if count < 3:

        name = raw_input("Please input your name: ").strip()    # .strip()去除首尾空格

        if len(name) == 0:

            print "Input can not be empty!"

            count += 1

            continue

        elif name == "xiaoming":

            print "OK."

            break

        else:

            print "Name input error, please input again!"

            count += 1

    else:

        print "Error three times, Exit!"

        break

   4.3.4 else语句

      else语句会在循环正常执行完才执行。在for循环用法也一样。

>>> count = 0   

>>> while count < 5:

...   print count

...   count += 1

... else:

...   print "end"

...

0

1

2

3

4

end

>>> count = 0       

>>> while count < 5:

...   print count   

...   break

... else:

...   print "end"

...

0

时间: 2024-10-31 17:29:12

第四章 Python运算符和流程控制的相关文章

Java语言入门教程(八):Java语言中的运算符与流程控制

不论使用何种语言,最终都是为了实现业务逻辑.在面向对象的编程语言中 ,业务逻辑都在方法中实现.因此,对于初学者来说,了解完成Java类方法体的 基本知识点是非常必要的.本文中,将介绍编写方法体必须了解的两个方面:运 算符,流程控制. Java中的运算符根据其功能,可以分成4类.首先需要注意的是,Java中的运 算符是不能重载的.下面分别对4类运算符进行介绍. 1. 算术运算符:+,-,*,/,%,++,-- 算术运算符是对基本数据类型进行运算的操作符,其中容易混淆的是/表示除 ,而%表示取余.另

第十四章 Python发送邮件(常见四种邮件内容)

在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮件服务软件或者调用运营商邮箱服务器. 对于Python来说,需要编写脚本调用邮件服务器来发送邮件,使用的协议是SMTP.接收邮件,使用的协议是POP3和IMAP.我想有必要说明下 ,POP3和IMAP的区别:POP3在客户端邮箱中所做的操作不会反馈到邮箱服务器,比如删除一封邮件,邮箱服务器并不会删除.IMAP则会反

《python 与数据挖掘 》一 2.3 流程控制

本节书摘来自华章出版社<python 与数据挖掘 >一书中的第2章,第2.3节,作者张良均 杨海宏 何子健 杨 征,更多章节内容可以访问"华章计算机"公众号查看. 2.3 流程控制 流程控制是一门程序语言的基本,掌握Python流程控制语句就已经能够实现很多算法了.本节主要介绍Python的条件分支结构if语句和两种主要循环结构while语句和for语句,并在最后详细讲解Python函数的用法.如果读者有一定的编程基础,对条件分支.循环和函数这3种结构比较熟悉,那么本节的内

java学习笔记之数据类型 运算符 流程控制

java的基本数据类型 一:整型 1.十进制 2.八进制 八进制数是满8进1,包含0~7的8个数字,在整数前面添加一个"0",表示是八进制数. 3.十六进制 十六进制数是满16进1,包含0~9,a~f的16个数字,再整数前面添加一个"0x"表示是十六进制数. 二:浮点型 1.float:单精度浮点数 声明float类型的浮点数时,要在结尾加F或f. 2.double:双精度浮点数 声明double类型的浮点数时,要在结尾加D或d,浮点类型默认的类型是double,所

深入讲解Java中的流程控制与运算符_java

Java流程控制 Java流程控制的语法与 C/C++ 类似,也有 if...else.while.do...while.for.switch...case等,这里不再讲述具体语法,仅举例说明. 输出九九乘法表(右上三角): public class Demo { public static void main(String[] args){ int i, j; for(i=1; i<=9; i++){ for(j=1; j<=9; j++){ if(j<i){ //打印八个空格,去掉空

python 教程 第十四章、 地址薄作业

第十四章. 地址薄作业 #A Byte of Python #!/usr/bin/env python import cPickle import os #define the contacts file, list global file_contacts global list_contacts file_contacts = 'AddressBook.txt' list_contacts = [] #delete the file try: file_path = os.getcwd()

《Python数据科学实践指南》——2.4 流程控制

2.4 流程控制 到目前为止,我们所编写的程序都是线性的程序,程序中的语句按照顺序依次被执行,这样的程序能实现的功能非常有限,而且还需要编写大量的代码,损失了编写程序执行任务的大部分优势.事实上,可以使用条件判断及循环这两种常用的方式更有效率地编写程序. 2.4.1 条件判断 带有条件判断的程序又称为"分支程序",这样的程序由如三个部分构成. 这样的代码可以执行某些规则的比较,比如下面这段程序: if sex == "man": print("he&quo

《Python数据科学实践指南》一2.4 流程控制

2.4 流程控制 到目前为止,我们所编写的程序都是线性的程序,程序中的语句按照顺序依次被执行,这样的程序能实现的功能非常有限,而且还需要编写大量的代码,损失了编写程序执行任务的大部分优势.事实上,可以使用条件判断及循环这两种常用的方式更有效率地编写程序. 2.4.1 条件判断 带有条件判断的程序又称为"分支程序",这样的程序由如三个部分构成. 一个条件判断,对一个表达式求值,结果是True或False. 一个代码块,如果条件判断为True,则执行这部分代码. 一个可选的代码块,如果条件

Python 流程控制实例代码_python

首先,介绍if-else条件语句.if语句是用来根据表达式的真假来有选择的执行特定的程序块,控制程序的流程.用法同java等语言.对于else if,有一个elif的简写方式. 例如: 复制代码 代码如下: if x > 3: print("greater") elif x == 3: print("eq") else: print("small") 接下来介绍while语句.while语句的作用是在条件表达式为真时,重复执行特定的程序块.