文档章节

三、python 的流程控制

知识的搬运码农
 知识的搬运码农
发布于 2017/06/13 23:34
字数 1055
阅读 12
收藏 0

三、python的流程控制

1.顺序结构

python和shell,java等语言都有一定的执行顺序即顺序结构。

python语言在解释器中的执行顺序是:从上到下依次执行,从左到右执行,所以函数或者变量必须先声明后调用。

2.分支选择结构

在python中只有if选择结构,没有java里的switch...case..结构和shell里的case ...;;;....esac结构,并且与java中的用法规则相似,但是语法格式不一样。

当表达式的结果是数据类型里面的布尔型中的true时,执行if后面:的语句,如果是false执行else:或者elif后面的语句,elif之后的表达时的判断原理与上面相似。

2.1 if 选择结构

if express(result is True or False) :
    代码块

2.2 if - else选择结构

if express(result is True or False) :
    代码块
else:
    代码块

2.3 if -elif-else多层嵌套选择结构

if express(result is True or False) :
    代码块
elif express(result is True or False) :
    代码块
elif express(result is True or False) :
    代码块
    .....
else:
    代码块

3.循环结构

在python中,循环结构只有for ...in...结构和while结构,没有像java(普通for循环,增强for循环,while循环,do-while循环)里那么丰富。

3.1 for ... in ...循环

和shell里的用法基本相同

语法:

for variable_name in (List,Tuple,Dictionary or range()):

    代码块

dic = {'123':123,234:126,2:4}
for n in dic:
    print(n)

结果:

123
234
2

li = [1,2,3,4,6]
for n in li:
    print(n,end='')

结果:

12346

tup = (2,5,9,0)
for n in tup:
    print(n,end=',')

结果:2,5,9,0,

接下来说range()对象中的参数,这是创建range类的对象。

下面是官方文档的说明:

class range()  

@overload def __init__(self, stop: int)  Documentation is missing. The following is copied from class range.  
range(stop) -> range object range(start, stop[, step]) -> range object
Return an object that produces a sequence of integers from start (inclusive) to stop (exclusive) by step. range(i, j) produces i, i+1, i+2, ..., j-1. start defaults to 0, and stop is omitted! range(4) produces 0, 1, 2, 3. These are exactly the valid indices for a list of 4 elements. When step is given, it specifies the increment (or decrement).

它里面的参数不能用关键字参数给予赋值,并且值只能是integer。

#反向输出从1-9中以2为步长的数,前两个数表示开始和终止的数,包含左边的数,不包含右边的数,
#最右边的是步长,符号按照前面两个数的关系而定,前小后大为正数,前大后小为负,可以是任意值,表示取值间隔。
for n in range(10,1,-2):#和reserved(range(2,9,2))结果一样
    print(n)

结果是:

8
6
4
2

#输出从0到9的正数
for n in range(10):
    print(n,end='-')

结果:0-1-2-3-4-5-6-7-8-9-

3.2 while 循环

while express(result is True or False) :

     循环体

当后面的表达式的结果是True时执行循环,如果结果为False时结束循环

n = 0
while n < 4:#这里的表达式是关系表达式
    print(n)
#在python中没有“++”和“--”的操作,这是因为底层变量储存的不是值而是内存地址,数据的存储方式是用堆的形式储存
    n+=1

结果是:

1
2
3


3.3 循环控制

python和java中的循环控制关键字或者说语句是的用法规则完全一样,只不过是多了一个pass

3.3.1 break

直接结束该循环。

n = 1
while n < 9:
    print(n,end='p')
    if n == 5:
        #当n为5时直接退出循环
        break
    n+=2

结果是:1p3p5p

3.3.2 continue

只结束本层循环,continue后面的语句不执行

n = 1
while n < 9:
    n+=1
    if n == 5:
        #只不输出5
        continue
    print(n,end='*')

结果:2*3*4*6*7*8*9*

3.3.3 pass 

Python pass是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句。

Python 语言 pass 语句语法格式如下:

pass

实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*- 

# 输出 Python 的每个字母
for letter in 'Python':
   if letter == 'h':
      pass
      print '这是 pass 块'
   print '当前字母 :', letter

print "Good bye!"

以上实例执行结果:

当前字母 : P
当前字母 : y
当前字母 : t
这是 pass 块
当前字母 : h
当前字母 : o
当前字母 : n
Good bye!

 

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

知识的搬运码农
粉丝 1
博文 9
码字总数 19698
作品 0
海淀
私信 提问
Python开发(基础):初识Python

Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quo...

wbb827
2018/07/03
0
0
云计算Python自动化运维开发实战:行和缩进

学习Python时,遇到的第一个需要注意的地方是,不使用括号来表示代码的类和函数定义块或流程控制。代码块是由行缩进,这是严格执行表示方式。 缩进位的数目是可变的,但是在块中的所有语句必...

长沙千锋
2018/05/15
0
0
【3D打印】在pcDuino上安装3D打印机控制软件

3D打印(3D printing),即快速成型技术的一种,它是一种以数字模型文件为基础,运用粉末状金属或塑料等可粘合材料,通过逐层打印的方式来构造物体的技术。3D打印通常是采用数字技术材料打印...

pc朵拉
2013/12/11
3.8K
0
Python抓取框架:Scrapy的架构

Python抓取框架:Scrapy的架构 最近在学Python,同时也在学如何使用python抓取数据,于是就被我发现了这个非常受欢迎的Python抓取框架Scrapy,下面一起学习下Scrapy的架构,便于更好的使用这...

durban
2012/04/15
490
0
Python抓取框架 Scrapy 的架构分析

最近在学Python,同时也在学如何使用python抓取数据,于是就被我发现了这个非常受欢迎的Python抓取框架Scrapy,下面一起学习下Scrapy的架构,便于更好的使用这个工具。 一、概述 下图显示了S...

索隆
2013/04/09
449
1

没有更多内容

加载失败,请刷新页面

加载更多

JS基础-该如何理解原型、原型链?

JS的原型、原型链一直是比较难理解的内容,不少初学者甚至有一定经验的老鸟都不一定能完全说清楚,更多的"很可能"是一知半解,而这部分内容又是JS的核心内容,想要技术进阶的话肯定不能对这个...

OBKoro1
今天
6
0
高防CDN的出现是为了解决网站的哪些问题?

高防CDN是为了更好的服务网络而出现的,是通过高防DNS来实现的。高防CDN是通过智能化的系统判断来路,再反馈给用户,可以减轻用户使用过程的复杂程度。通过智能DNS解析,能让网站访问者连接到...

云漫网络Ruan
今天
14
0
OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
2.8K
24
SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
46
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部