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

简介: 第四章 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

QQ群:Shell/Python运维开发群 323779636


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
相关文章
|
1月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
171 3
|
1月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
208 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
1月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
2月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
2月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
664 0
JSON 监控 API
90 0
|
3月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
755 1
|
3月前
|
设计模式 算法 大数据
Python流程控制:让代码按你的节奏跳舞
Python流程控制是编程核心,通过if条件判断、for循环与while循环,控制代码执行顺序与逻辑分支。它帮助开发者实现智能决策、重复任务处理与交互式应用,是编写高效、清晰程序的关键。掌握这三大控制结构,将显著提升代码逻辑与程序性能。
140 0
|
4月前
|
数据采集 数据可视化 搜索推荐
Python数据分析全流程指南:从数据采集到可视化呈现的实战解析
在数字化转型中,数据分析成为企业决策核心,而Python凭借其强大生态和简洁语法成为首选工具。本文通过实战案例详解数据分析全流程,涵盖数据采集、清洗、探索、建模、可视化及自动化部署,帮助读者掌握从数据到业务价值的完整技能链。
560 0
|
6月前
|
人工智能 Python
Python 中的 `and`, `or`, `not` 运算符
本文介绍了 Python 中的逻辑运算符 `and`、`or` 和 `not` 的基本用法及其特性。这些运算符主要用于布尔运算,特别是在条件判断和循环中非常有用。文章详细解释了每个运算符的功能,例如 `and` 检查所有表达式是否为真,`or` 检查是否有任意一个表达式为真,`not` 用于取反。此外,还提到这些运算符支持短路特性,并可应用于非布尔值场景。掌握这些运算符有助于编写更高效、简洁的代码。
534 11

推荐镜像

更多
下一篇
oss云网关配置