【Python基础学习篇】Python控制语句

一、结构化程序设计

结构化程序设计是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块。

下图为描述判断摸个数字是属于正数、负数还是零的流程图。

结构化程序设计的主要方法是-自顶向下、逐步细化。把需要解决的问题分成若干个任务来完成,再对每个任务进行设计,逐步细化。

结构化程序设计分为3中结构:

1、顺序结构

2、判断结构

3、循环结构

-----------------------------------------------------------------------------------------------------------------------------------

补充知识点:

Python中,raw_input()捕获用户的原始输入。

raw_input()函数的声明如下:

raw_input([prompt])->string

参数prompt是控制台中输出的提示文字,提示用户输入。返回值为字符串。如果输入的是数字,返回的还是字符串,使用前需要调用int()转换一下。

例子:字符串和数字类型的转换

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2 #Author: [email protected] #字符串和数字类型的转换 x = raw_input("x:")  x = int(x)  x = x + 1

input()支持用户输入数字或表达式,不支持输入字符串。

input()函数的声明如下:

input([prompt])->value

参数prompt是控制台中输出的提示文字,提示用户输入。返回数字类型的值。

例如:

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2 #Author: [email protected] #字符串和数字类型的转换 x = input("x:")  print (x)  x = raw_input("x:")  print (x)

-------------------------------------------------------------------------------------------------------------------------------------------

二、条件语句

1、if语句

if语句用于检测某个条件是否成立。如果成立,则执行if语句内的代码,否则跳过if语句,执行后面的代码

if语句的格式如下:

if(表达式):     语句1else:     语句2

例子:

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2 #Author: [email protected] #if语句 a = input("a:")  b = input("b:")  if (a > b):      print a,">",b      print a,"<",b

例子:

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2 #Author: [email protected] #if else语句 a = input("a:")  b = input("b:")  if (a > b): print a,">",b  else: print a,"<",b

说明:

else子句后需要加一个冒号,是的Python解释器能识别出else子句对应的代码块。

2、if...elif...else语句

if...elif...else语句的格式如下:

if(表达式1):语句1    elif(表达式2):语句2         ...    elif(表达式n):语句nelse:语句m

例子:

score = input("score:"):if (score >= 90) and (score <= 100):print ("A")elif (score >= 80) and (score <= 90):print ("B")elif (score >= 60) and (score <= 80):print ("C")else:print ("D")
3、if语句的嵌套

if语句的嵌套是指在if语句中可以包含一个或多个if语句。格式如下:

if(表达式1):if(表达式2):语句1elif(表达式3):语句2     ...else:语句3   elif(表达式n):     ...else:      ...

例子:

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2 #Author: [email protected] #嵌套的条件语句 x = -1 y = 99  if (x >= 0):      if (x > 0):          y = 1      else:          y = 0  else:     y = -1  print ("y = ",y)
4、实现switch语句的功能

Python中没有提供switch语句,Python可以通过字典实现switch语句的功能。

方法如下:

首先,定义一个字典。字典是由键值对组成的集合。

其次,调用字典的get()获取相应的表达式。

例子:

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2 #Author: [email protected] #使用字典实现switch语句 from __future__ import division  x = 1 y = 2 operator = "/" result = {  "+" : x + y,  "-" : x - y,  "*" : x * y,  "/" : x / y,  }  print (result.get(operator))

输出结果:

---------- python ----------

0.5输出完成 (耗时 0 秒) - 正常终止

另一种使用switch分支语句的方案是创建一个switch类,处理程序的流程。这种方法比较复杂,需要涉及到面向对象、for循环、中断语句、遍历等知识。

实现的步骤如下:

(1)创建一个switch类,该类继承自Python的祖先类object。调用构造函数int()初始化需要匹配的字符串,并需要定义两个成员变量value和fall。value用于存放需要匹配的字符串,fall用于记录是否匹配成功,初始值为false,表示匹配不成功。如果匹配成功, 程序往后执行。

(2)定义一个match()方法,该方法用于匹配case自己。这里需要考虑3中情况:首先是匹配成功的情况,其次是匹配失败的默认case子句,最后是case子句中没有使用break中断的情况。

(3)重写__iter__()方法,定义了该方法后才能使switch类用于循环语句中。__iter__()调用match()方法进行匹配。通过yield保留字,使函数可以在循环中迭代。此外,调用StopIteration异常中断循环。Python中的循环都是通过异常StopIteration中断的。这样switch类就构造完成了。

(4)编写调用代码,在for...in...循环中使用switch类。

例子:实现switch语句的功能

#!/usr/bin/python# -*- coding: UTF-8 -*-class switch(object):def __init__(self, value): # 初始化需要匹配的值valueself.value = value         self.fall = False # 如果匹配到的case语句中没有break,则fall为true。def __iter__(self):yield self.match # 调用match方法 返回一个生成器raise StopIteration # StopIteration 异常来判断for循环是否结束def match(self, *args): # 模拟case子句的方法if self.fall or not args: # 如果fall为true,则继续执行下面的case子句# 或case子句没有匹配项,则流转到默认分支。return Trueelif self.value in args: # 匹配成功self.fall = Truereturn Trueelse: # 匹配失败return False

operator = "+"x = 1y = 2for case in switch(operator): # switch只能用于for in循环中if case(‘+‘):print (x + y)breakif case(‘-‘):print (x - y)breakif case(‘*‘):print (x * y)breakif case(‘/‘):print (x / y)breakif case(): # 默认分支print ("")

输出结果:

---------- python ----------

3输出完成 (耗时 0 秒) - 正常终止

三、循环语句

    循环语句是指重复执行同一个代码块。循环语句是由循环体及循环终止条件两部分组成,一组被重复执行的语句称为循环体,循环的终止条件决定重复执行的次数。

Python中的循环语句有while语句和for语句。

1、while循环

while循环的格式如下:

while(表达式):     ...else:     ...

例子:

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2 #Author: [email protected] #while循环 numbers = raw_input("输入几个数字,用逗号分隔:").split(",")  print numbers  x = 0  while x < len(numbers):  print (number(x))  x += 1

例子:

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2 #Author: [email protected] #else子句的while循环 x = input("输入x的值:")  i = 0  while (x != 0):  if (x > 0):      x -= 1  else:      x += 1      i = i + 1  print ("第%d次循环:"%i,x)  else:  print ("x等于0:",x)

在使用循环语句时,应注意循环表达式的布尔值,避免死循环的出现。死循环是指循环条件永远为真。

2、for循环

for循环用于遍历一个集合,依次访问集合中的每个项目。

for循环的格式如下:

for 变量 in 集合:     ...else...

for ...in...循环通常与range()函数一起使用,range()返回一个列表,for...in...遍历列表中的元素。

range()函数的声明如下:

range ([start,]stop[,step])->list of integers

说明:

  • range()返回一个递增或递减的数字列表,列表的元素值由3个参数决定
  • 参数start表示列表开始的值,默认值为0
  • 参数stop表示列表结束的值,该参数不可缺少
  • 参数step表示步长,每次递增或递减的值,默认值为1
  • range()返回一个递增或递减的数字列表,列表的元素值由以上3个参数决定的。例如range(-5,-1,-1)返回的列而表为[5,4,3,2,1,0]

例子:遍历range()生成的列表,过滤出正数、负数和0

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2 #Author: [email protected] #for in 语句 for x in range(-1,2):  if x > 0:      print ("正数:",x)  elif x == 0:      print ("零:",x)  else:      print ("负数:",x)  else:      print ("循环结束")

在C、JAVA语言中,支持如下结构的for语句:

for (表达式1;表达式2;表达式3)      语句块

Python不支持这样的for循环,可以使用while循环实现类似的功能

x = 0while x < 5:      print x       x = x + 2

也可以使用for循环,借助range()函数来实现。例如:

for x in range(0,5,2):print x
3、break和continue语句

break和continue语句用于控制语句的跳转

(1)break语句

break语句可以使程序跳出switch语句,也可以结束循环语句

例子:

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2 #Author: [email protected] #break语句可以使程序跳出switch语句 operator = "+" x = 1 y = 2  for case in switch(operator):      if case(‘+‘):          print (x + y)          break     if case(‘-‘):          print (x - y)          break     if case(‘*‘):          print (x * y)          break     if case(‘/‘):         print (x / y)         break     if case(): # 默认分支        print ("")

在循环结构中,break语句可以提前结束循环

例子:在0~99的数中查找用户输入的值

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2 #Author: [email protected] # break语句 x = input("输入x的值:")  y = 0  for y in range(0, 100):      if x == y:          print ("找到数字:", x)          break     else:          print ("没有找到")

break语句不能运行在循环体或分支之外。

(2)continue语句

continue语句用于循环中的控制,当程序执行到continue语句时,程序将转到下一次循环。break语句会直接终端循环,而continue语句则是停止本次循环,进入下一次循环,循环语句并没有中止。

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2 #Author: [email protected] # break语句 x = input("输入x的值:")  y = 0  for y in range(0, 100):      if x == y:         print ("y =:", y)         continue     else:         print ("x =:",x)         break

四、结构化程序示例

冒泡排序

冒泡排序的程序可以分解为两个模块:冒泡算法的实现函数和主函数

例子:实现冒泡排序算法

#!/usr/bin/python# -*- coding: UTF-8 -*-def bubbleSort(numbers): # 冒泡算法的实现for j in xrange(len(numbers) - 1, -1, -1):for i in xrange(j):if numbers[i] > numbers[i+1]: # 把数值小的数字放到顶端numbers[i], numbers[i+1] = numbers[i+1], numbers[i]print (numbers)def main(): # 主函数numbers = [23, 12, 9, 15, 6]     bubbleSort(numbers)if __name__ == ‘__main__‘:     main()

输出结果:

---------- python2.7 ----------[12, 23, 9, 15, 6]

[12, 9, 23, 15, 6]

[12, 9, 15, 23, 6]

[12, 9, 15, 6, 23]

[9, 12, 15, 6, 23]

[9, 12, 15, 6, 23]

[9, 12, 6, 15, 23]

[9, 12, 6, 15, 23]

[9, 6, 12, 15, 23]

[6, 9, 12, 15, 23]

输出完成 (耗时 0 秒) - 正常终止
时间: 2024-10-02 11:45:39

【Python基础学习篇】Python控制语句的相关文章

【Python基础学习篇】Python基本语法

一.Python的文件类型 Python的文件类型主要分为3种,分别是源代码.字节代码和优化代码. 1.源代码 以py为扩展名 2.字节代码 Python源文件经过编译后生成扩展名为pyc的文件,pyc是编译过的字节文件.这种文件不能使用文本编辑工具打开或修改. 下面这段脚本可以把hello.py文件编译为hello.pyc文件 import py_compile py_compile compile("hello.py") 将此脚本保存为以py为扩展名的文件,运行后即可得到hello

python 基础学习之 python怎么制作第一个直方图 散点图 折线图 非常简单 利用python画图 python利用numpy画图 我用python制作第一个直方图 散点图 折线图

思路 首先声明 :非常简单  最简单的入门就是 直接拷贝几行代码看看效果 运行玩玩 注意: 本文采用窗口弹出运行显示的方式   可能需要网页显示图表 并且实时生成可能需要另找办法  暂时不处理. 安装numpy python文件导入numpy 复制几行代码 保存即可 在目录下 直接点击运行python文件  就会弹出一个类似cmd的小黑窗  另外再弹出一个绘制出来的图表 完成 关闭的时候 关闭图片  小黑窗自动回关闭. 部分效果图如下 代码参考 Python干货:分享Python绘制六种可视化图

【Python基础学习篇十】Python正则表达式(2015-01-01)

一.正则表达式简介 正则表达式用于文本匹配的工具,在源字符串中查找与给定的正则表达式相匹配的部分.一个正则表达式是由字母.数字和特殊字符组成的.正则表达式中有许多特殊的字符,这些特殊字符是构成正则表达式的要素. 1.正则表达式中的特殊字符: 2.正则表达式中的常用限定符: 利用{}可以控制字符重复的次数. 例如,\d{1,4}表示1位到3位的数字: 某些地区的电话号码是8位数,区号也有可能是3位或4位数字. \d{3}-\d{8}|\d{4}-\d{7} 3.限定符与"?"的组合 二.

【Python基础学习篇】Python字典

字典(Dictionary)是由"键-值"对组成的集合,字典中的"值"通过"键"来引用. 一.字典的创建 字典由一系列的"键-值"(key-value)对组成,"键-值"对之间用"逗号"隔开,并且被包含在一对花括号中. 创建字典的格式如下: dictionary_name = {key1:value1,key2:value2,...} 如果需要创建一个空的字典,只需要一对花括号即可,如下

【Python基础学习篇八】Python函数

函数是一段可以重复多次调用的代码,通过输入的参数值,返回需要的结果. 一.函数的定义 函数的定义使用保留字def定义.函数在使用前必须定义,函数的类型即返回值的类型. Python函数定义的格式如下: def 函数名 (参数1[=默认值1],参数2[=默认值2]...): ... return 表达式 函数名可以是字母.数字或下划线组成的字符串,但不能以数字开头.函数的参数放在一对圆括号中,参数的个数可以有一个或多个,参数之间用逗号隔开,这种参数称之为形式参数. 例子: #!/usr/bin/e

【Python基础学习篇】Python序列

序列是具有索引和切片功能的集合.元组.列表和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力,因此元组.列表和字符串都属于序列. 例子:序列的索引功能 #!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v3.3 #Author: [email protected] #索引操作 tuple = ("apple","banana","grape","orange&

【Python基础学习篇】Python列表

列表(List)通常作为函数的返回类型.列表和元组相似,也是由一组元素组成,列表可以实现添加.删除和查找操作,元素的值可以被修改. 一.列表的创建 列表是由一系列元素组成,所有的元素都被包含在一对方括号中.列表创建后,可以执行添加.删除或修改操作. 列表的创建格式如下所示: list_name = [元素1,元素2,...] 列表的添加可以调用append(),该方法的声明如下所示: append(object) 其中,object可以是元组.列表.字典或任何对象.append()每次添加的新元

【Python基础学习篇】Python元组

元组是Python中内置的一种数据结构.元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符串.数字甚至元组.元组是写保护的,即元组创建后不能再做任何修改操作,元组通常代表一行数据,而元组中的元素代表不同的数据项. 一.元组的创建 Tuple(元组)由一系列元素组成,所有元素被包含在一对圆括号中.创建元组时,可以不指定元素的个数,相当于不定长的数组,但是一旦创建后就不能修改元组的长度. 元组创建的格式如下所示: tuple_name = (元素1,元素2,...) 例子:元组的初始化 t

【Python基础学习篇九】Python字符串

一.字符串的操作 字符串是Python的一种基本类型,字符串的操作包括字符串的格式化.字符串的截取.过滤.合并.查找等操作. 二.字符串的格式化 Python将若干值插入到带有"%"标记的字符串中,从而可以动态的输出字符串. 字符串的格式化语法如下: "% s" % str1 "%s %s" % (str1,str2) 例子: #!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2.7