简单谈谈Python流程控制语句

人们常说人生就是一个不断做选择题的过程:有的人没得选,只有一条路能走;有的人好一点,可以二选一;有些能力好或者家境好的人,可以有更多的选择;还有一些人在人生的迷茫期会在原地打转,找不到方向。对于相信有上帝的人来讲,这就好像是上帝事先为我们制定好了人生路线,也好像是那些神仙为唐曾师徒的取经之路提前设置的重重磨难,上帝和神仙掌控了一切。编程语言可以模拟人类生活的方方面面,程序员就像上帝和神仙一样可以通过编程语言中特殊的关键字控制程序的执行过程,这些关键字组成的就是流程控制语句。

编程语言中的流程控制语句分为以下几类:

  1. 顺序语句
  2. 分支语句
  3. 循环语句

其中顺序语句不需要单独的关键字来控制,就是一行行的执行,不需要特殊的说明。这里主要要说的是 分支语句 和 循环语句。

一、分支语句

条件分支语句是通过一条或多条语句(判断条件)的执行结果(True/False)来决定执行哪个分支的代码块。Python中提供的分支语句为:if..else语句,没有提供switch..case语句。if..else语句有以下几种形式:

单分支:
if 判断条件:
    代码块
如果单分支语句的代码块只有一条语句,可以把if语句和代码写在同一行:

if 判断条件: 一句代码
实例:判断指定的uid是不是root用户

uid = 0

if uid == 0:
  print("root")

也可以这样写:

uid = 0

if uid == 0: print("root")

输出结果:root

双分支:

if 判断条件:
    代码块
else:
    代码块
实例:根据用户id打印用户身份

uid = 100

if uid == 0:
  print("root")
else:
  print("Common user")

输出结果:Common user

多分支:

if 判断条件1:
    代码块1
elif 判断条件2:
    代码块2
...
elif 判断条件n:
    代码块n
else:
    默认代码块

实例:根据学生分数打印字母等级

score = 88.8
level = int(score % 10)

if level >= 10:
  print('Level A+')
elif level == 9:
  print('Level A')
elif level == 8:
  print('Level B')
elif level == 7:
  print('Level C')
elif level == 6:
  print('Level D')
else:
  print('Level E')

输出结果:Level B

说明:

当上面的“判断条件”中的表达式可以是任意的表达式,也可以是任意类型的数据对象实例。只要判断条件的最终返回结果的“真”值测试为True时,就表示该条件成立,相应的代码块就会被执行;否则表示条件不成立,需要判断下一个条件。

二、循环语句

当我们需要多次执行一个代码语句或代码块时,可以使用循环语句。Python中提供的循环语句有:while循环和for循环。需要注意的是Python中没有do..while循环。此外,还有几个用于控制循环执行过程的循环控制语句:break、continue和pass。

1. while循环

基本形式
while循环语句的基本形式如下:

while 判断条件:
    代码块
当给定的判断条件的返回值的真值测试结果为True时执行循环体的代码,否则退出循环体。

实例:循环打印数字0-9

count = 0
while count <= 9:
  print(count, end=' ')
  count += 1

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

while死循环

当while的判断条件一直为True时,while循环体中代码就会永远循环下去。

while True:
    print("这是一个死循环")
输出结果:

这是一个死循环
这是一个死循环
这是一个死循环
...
此时可以通过 Ctrl + C终止运行。

while..else
语句形式:

while 判断条件:
    代码块
else:
    代码块
else中的代码块会在while循环正常执行完的情况下执行,如果while循环被break中断,else中的代码块不会执行。

实例1:while循环正常执行结束的情况(else中的语句会被执行)

count = 0
while count <=9:
  print(count, end=' ')
  count += 1
else:
  print('end')

执行结果为:0 1 2 3 4 5 6 7 8 9 end

实例2:while循环被中断的情况(else中的语句不会被执行)

count = 0
while count <=9:
  print(count, end=' ')
  if count == 5:
    break
  count += 1
else:
  print('end')

输出结果:0 1 2 3 4 5

2. for循环

for循环通常用于遍历序列(如list、tuple、range、str)、集合(如 set)和映射对象(如dict)。

基本形式
for循环的基本格式:

for 临时变量 in 可迭代对象:
    代码块
实例:遍历打印一个list中的元素

names = ['Tom', 'Peter', 'Jerry', 'Jack']
for name in names:
  print(name)

对于序列,也通过索引进行迭代:

names = ['Tom', 'Peter', 'Jerry', 'Jack']
for i in range(len(names)):
  print(names[i])

执行结果:

Tom
Peter
Jerry
Jack

for...else

与while..else基本一致,不再赘述。

3. 循环控制语句

循环控制语句可以更改循环体中程序的执行过程,如中断循环、跳过本次循环。

循环控制语句 说明
break 终止整个循环
contine 跳过本次循环,执行下一次循环
pass pass语句是个空语句,只是为了保持程序结构的完整性,没有什么特殊含义。pass语句并不是只能用于循环语句中,也可以用于分支语句中。
实例1:遍历0-9范围内的所有数字,并通过循环控制语句打印出其中的奇数

for i in range(10):
  if i % 2 == 0:
    continue
  print(i, end=' ')

输出结果:1 3 5 7 9

实例2:通过循环控制语句打印一个列表中的前3个元素

names = ['Tom', 'Peter', 'Jerry', 'Jack', 'Lilly']
for i in range(len(names)):
  if i >= 3:
    break
  print(names[i])

输出结果:

Tom
Peter
Jerry

4. 循环嵌套

循环嵌套是指:在一个循环体里面嵌入另一循环。

实例1:通过while循环打印99乘法表

j = 1
while j <= 9:
  i = 1
  while i <= j:
    print('%d*%d=%d' % (i, j, i*j), end='\t')
    i += 1
  print()
  j += 1

实例2:通过for循环打印99乘法表

for j in range(1, 10):
  for i in range(1, j+1):
    print('%d*%d=%d' % (i, j, i*j), end='\t')
    i += 1
  print()
  j += 1

输出结果:

1*1=1  
1*2=2   2*2=4  
1*3=3   2*3=6   3*3=9  
1*4=4   2*4=8   3*4=12  4*4=16 
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25 
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36 
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49 
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64 
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

(0)

相关推荐

  • Python 流程控制实例代码

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

  • python学习 流程控制语句详解

    ###################### 分支语句 python3.5 ################ #代码的缩进格式很重要 建议4个空格来控制 #根据逻辑值(True,Flase)判断程序的运行方向 # Ture:表示非空的量(String,tuple元组 .list.set.dictonary),所有非零的数字 # False:0,None .空的量 #逻辑表达式 可以包含 逻辑运算符 and or not if: ##################################

  • 浅析Python基础-流程控制

    Python编程语言的作用非常强大,而且其应用方便的特点也对开发人员起到了非常大的作用.在这里我们就可以先从Python流程控制关键字的相关概念开始了解,从而初步掌握这一语言的特点. Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年. 像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议. 哪门语言都会有流程控制

  • 简单谈谈Python流程控制语句

    人们常说人生就是一个不断做选择题的过程:有的人没得选,只有一条路能走:有的人好一点,可以二选一:有些能力好或者家境好的人,可以有更多的选择:还有一些人在人生的迷茫期会在原地打转,找不到方向.对于相信有上帝的人来讲,这就好像是上帝事先为我们制定好了人生路线,也好像是那些神仙为唐曾师徒的取经之路提前设置的重重磨难,上帝和神仙掌控了一切.编程语言可以模拟人类生活的方方面面,程序员就像上帝和神仙一样可以通过编程语言中特殊的关键字控制程序的执行过程,这些关键字组成的就是流程控制语句. 编程语言中的流程控制

  • Python流程控制语句的深入讲解

    1.程序结构 计算机在解决问题时,分别是顺序执行所有语句.选择执行部分语句.循环执行部分语句,分别是:顺序结构.选择结构.循环结构.如下图: 2.选择语句 2.1最简单的if语句 Python使用保留字if来组成选择语句,其格式如下: if 表达式: 代码块 表达式可以是一个单纯的布尔值或者变量,也可以是比较表达式或者逻辑表达式,如果表达式值为真,则执行"代码块":如果值为假,就跳过"代码块",执行后面语句,如图 注:1.在Python中,当表达式的值为非零的数或者

  • 简单谈谈Python中的json与pickle

    这是用于序列化的两个模块: • json: 用于字符串和python数据类型间进行转换 • pickle: 用于python特有的类型和python的数据类型间进行转换 Json 模块提供了四个功能:dumps.dump.loads.load pickle 模块提供了四个功能:dumps.dump.loads.load import pickle data = {'k1':123, 'k2':888} #dumps可以将数据类型转换成只有python才认识的字符串 p_str = pickle.

  • 简单谈谈python中的语句和语法

    python程序结构 python"一切皆对象",这是接触python听到最多的总结了.在python中最基层的单位应该就是对象了,对象需要靠表达式建立处理,而表达式往往存在于语句中,多条语句组成代码块,多个代码块再组成一整个程序.python的核心其实是由语句和表达式组成.所以在这里简单探讨一下python中的语句和表达式. 因为以后可能会接触到两个版本的python,所以这里讲一讲python2与python3的语句差异: 1.python2中没有nolocal语句. 2.prin

  • 详解Python流程控制语句

    流程控制 流程:代码执行的过程 控制:对代码执行过程的把控 三大结构 顺序结构:代码默认从上到下,依次执行 分支结构:单项分支,双向分支,多项分支,巢状分支 循环结构:while循环和for循环 单项分支 语句: if 条件表达式:     code1     code2 当条件表达式成立时,返回True,执行对应的代码块 job = "programmer" if job == "programmer": print("钱多") print(&

  • 简单谈谈Python面向对象的相关知识

    一.私有化 上篇说过封装,既将我们不想让别人看到代码的内容,但是又需要用到的内容,通过类内部调用来实现调用. 说到这里却不得不提一下上篇的: class Person(object): def __init__(self, name, age): self.xxx = name self.xxxx = age 这里面self后面的名字,是可以自己随意命名的,上一篇和后面一样只是为了好记忆罢了 只要你记得住,便是颠倒也是无事 1.1 属性私有化 何为属性私有? 举个例子便是:你的私房钱,你的手机电

  • Python流程控制语句详解

    目录 1.if判断 1.1 if语句 1.2 else语句 1.3 elif语句 2.循环 2.1 while循环 2.2 for循环 2.3 break和continue语句 3.其他 1.if判断 1.1 if语句 if 表达式: 语句1 语句2 …… 1.“if”后的条件测试不止支持布尔型,也可以使用数字. 2.如果条件测试的内容是字符串,则只有字符串是空字符串时,条件测试的结果才为“False”. 3.不仅仅是字符串,条件测试中空列表.空元组.空字典也是“False”. 4.当if条件为

  • 简单谈谈python中的lambda表达式

    最近在coding时发现使用lambda还是有诸多优点的,很多时候代码更整洁,更pythonic,所以在此简单总结一下 1.lambda是什么 举个简单的例子: func = lambda x: x*x def func(x): return x*x 两个func的定义是完全相同的,那两种函数定义方法配合map使用,将list中所有元素求平方,代码会是什么样的, def func(x): return x*x map(func, [i for i in range(10)]) map(lambd

  • 简单谈谈Python中的反转字符串问题

    按单词反转字符串是一道很常见的面试题.在Python中实现起来非常简单. def reverse_string_by_word(s): lst = s.split() # split by blank space by default return ' '.join(lst[::-1]) s = 'Power of Love' print reverse_string_by_word(s) # Love of Power s = 'Hello World!' print reverse_stri

  • 简单谈谈Python中的闭包

    Python中的闭包 前几天又有人留言,关于其中一个闭包和re.sub的使用不太清楚.我在我们搜索了下,发现没有写过闭包相关的东西,所以决定总结一下,完善Python的内容. 1. 闭包的概念 首先还得从基本概念说起,什么是闭包呢?来看下维基上的解释: 复制代码 代码如下: 在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数.这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外.所以,有另一种说法认为闭包是由函

随机推荐