第2章 顺序结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.5 顺序结构程序举例 例 已知x,y,求z的值。 分析:这是一个求表达式值的问题, 程序分为以下三步。 求x,y的值。 求z的值。 输出z的值。
例 从键盘输入一个三位整数n,输出其逆 序数m。例如,输入n=127,则m=721。 分析:程序分为以下三步。 输入一个3位整数n。 求逆序数m。 输出m。
2.4.2 格式化输出 Python格式化输出的基本做法是,将输 出项格式化,然后利用print()函数输出。具 体实现方法有三种: 利用字符串格式化运算符%。 利用format()内置函数。 利用字符串的format()方法。
1.字符串格式化运算符% 在Python中,格式化输出时,用运算符%分 隔格式字符串与输出项,一般格式为; 格式字符串%(输出项1,输出项2,……,输出项 n) 其中,格式字符串由普通字符和格式说明 符组成。普通字符原样输出,格式说明符决 定所对应输出项的输出格式。格式说明符以 百分号%开头,后接格式标志符。例如: >>> print("%+3d,%0.2f"%(25,123.567)) +25,123.57
ห้องสมุดไป่ตู้
Python是动态类型语言,也就是说不需 要预先定义变量类型,变量的类型和值在 赋值那一刻被初始化。例如: >>> x=67.2 >>> x="ABCD" Python中的赋值并不是直接将一个值赋 给一个变量,而是通过引用传递的。在赋 值时,不管这个对象是新创建的还是一个 已经存在的,都是建立变量对该数据对象 的引用(并不是值)。
例 已知f(x,y)=x2+y2,输入x,y的值,求出对 应的函数值。 程序如下: def f(x,y): return x**2+y**2 print("f(3,4)=",f(3,4)) 第一个语句定义了一个函数,然后调用该函 数。 前面的f(x,y)函数可以定义成lambda函数的形 式。 f=lambda x,y:x**2+y**2 print("f(3,4)=",f(3,4))
2.3 赋值语句
Python的赋值和一般的高级语言的赋值 有很大的不同,它是数据对象的一个引用。 2.3.1 赋值语句的一般格式 一个变量通过赋值可以指向不同类型的 对象。赋值语句的一般格式为: 变量=表达式 赋值号左边必须是变量,右边则是表达 式。赋值的意义是先计算表达式的值,然 后使该变量指向该数据对象,该变量可以 理解为该数据对象的别名。
用N-S图描述例2-2的算法
2.2 Python程序的书写规则
2.2.1 初识Python程序
例 输入三个变量的值,然后按小到大顺序输出。 程序如下:
x=int(input('input x:')) y=int(input('input y:')) z=int(input('input z:')) if x>y: x,y=y,x if x>z: x,z=z,x if y>z: y,z=z,y print(x,y,z) #输入x的值 #输入y的值 #输入z的值 #如果x>y,则x和y的值互换 #如果x>z,则x和z的值互换 #如果y>z,则y和z的值互换
2.3.2 复合赋值语句 Python还提供了12种复合赋值运算符: +=、-=、*=、/=、//=、%=、**=、<<=、 >>=、&=、|=、^= 其中,前7种是常用的算术运算,后5种是 关于位运算的复合赋值运算符。例如: x+=5.0 x*=u+v 分别等价于“x=x+5.0”和“x=x*(u+v)”。
print(format(15,'X'),format(65,'c'),format(3.145,'f'))
F A 3.145000
3.字符串的format()方法 在Python中,字符串都有一个format()方 法,这个方法会把格式字符串当作一个模版, 通过传入的参数对输出项进行格式化。字符 串format()方法的调用格式为: 格式字符串.format(输出项1,输出项2,……, 输出项n) 格式说明符使用大括号扩起来,一般形式 如下: {[序号或键]:格式说明符} 例如: >>> '{0:.2f},{1}'.format(3.145,500) '3.15,500'
例 求一元二次方程ax2 + bx + c = 0的根。 分析:由于Python能进行复数运算,所以 不需要判断方程的判别式,而直接根据求根 公式求根。调用复数运算函数需要导入 cmath模块。
例 有一线段AB,A的坐标为(1,1),B的 坐标为(4.5,4.5),如图2-13所示。求AB的 长度,以及黄金分隔点C的坐标。黄金分割 点在线段的0.618处。
2.3.3 多变量赋值 1.链式赋值 链式赋值语句的一般形式为: 变量1=变量2=……=变量n=表达式 例如: >>> a=b=10 赋值语句执行时,创建一个值为10的整型 对象,将对象的同一个引用赋值给a和b,即 a和b均指向数据对象10。
2.同步赋值 同步赋值的一般形式为: 变量1,变量2,……,变量n=表达式1,表达式 2,……,表达式n 其中赋值号左边变量的个数与右边表达式 的个数要一致。同步赋值首先计算右边n个 表达式的值,然后同时将表达式的值赋值给 左边的n个变量,这并非等同于简单地将多 个单一赋值语句进行组合。例如: >>> a,b,c=10,20,30
分析:A,B的坐标可用复数表示:即A 为(1+1j),B为(4.5+4.5j)。AB的长度就是(AB)的模,可用abs函数直接求出复数的模。 黄金分隔点C的坐标为A+0.618×(B-A)。
2.注释 注释对程序的执行没有任何影响,目的是 对程序作解释说明,以增强程序的可读性。 程序中的单行注释采用#开头,注释可以从 任意位置开始,可以在语句行末尾,也可以 独立成行。对于多行注释,一般推荐使用多 个#开头的多行注释,也可采用三引号(实际 上是用三引号括起来的一个多行字符串,起 到注释的作用)。 注意,注释行是不能使用反斜杠续行的。
2.4 数据输入输出
2.4.1 标准输入输出
1.标准输入 Python用内置函数input()实现标准输入,其调用 格式为: input([提示字符串]) 其中,中括号中的“提示字符串”是可选项。如 果有“提示字符串”,则原样显示,提示用户输入 数据。input()函数从标准输入设备(键盘)读取一 行数据,并返回一个字符串(去掉结尾的换行符) 。例如: >>> name=input("Please input your name:") Please input your name:jasmine↙
2.1.2 算法及其描述
1.算法的概念 计算机解决问题的方法和步骤,就是计 算机解题的算法。 例2-1 求
a a y a b ,a b b 4 ,a b b
例2-2 输入20个数,要求找出其中最大 的数。
2. 算法的描述 (1)用传统流程图描述算法 例2-3 用传统流程图来描述例2-1和例 2-2的算法。 用传统流程图描述的算法分别如图2-1 和图2-2所示。
用传统流程图描述例2-1的算法
用传统流程图描述例2-2的算法
(2)用结构化流程图描述算法 ①程序的三种基本结构:顺序结构、选 择结构和循环结构。
顺序结构
选择结构
(a)当型循环结构
(b)直到型循环结构
三种基本程序结构具有如下共同特点: 只有一个入口。 只有一个出口。 结构中无死语句,即结构内的每一部 分都有机会被执行。 结构中无死循环,即循环在满足一定 条件后能正常结束。
例 输出Fibonacci数列前50项之和。 程序如下: a,b=0,1 s=0 for i in range(50): #i从0变化到49 s+=b a,b=b,a+b print("s=",s)
2.2.2 Python语句缩进规则 Python通过语句缩进对齐反映语句之间的 逻辑关系,从而区分不同的语句块。就一个 语句块来讲,需要保持一致的缩进量。 程序段一: for i in range(0,50): s+=b a,b=b,a+b
②结构化流程图(N-S图):以三种基 本结构作为构成算法的基本元素,每一种 基本结构用一个矩形框来表示,而且取消 了流程线,各基本结构之间保持顺序执行 关系。
顺序结构的N-S图
选择结构的N-S图
(a)当型循环结构
(b)直到型循环结构
例 用N-S图描述例2-1和例2-2的算法。
用N-S图描述例2-1的算法
2.标准输出
Python语言直接使用表达式可以输出该表达式的 值。 常用的输出方法是用print()函数,其调用格式为: print([输出项1,输出项2,……,输出项n][,sep=分隔 符][,end=结束符]) 其中sep表示输出时各输出项之间的分隔符(默 认以空格分隔),end表示结束符(默认以回车换 行结束)。 例如: print(10,20,sep=',',end='*') print(30) 输出结果为: 10,20*30
程序段二: for i in range(0,50): s+=b a,b=b,a+b
两种缩进方式可用流程图直观表示。
(a) 两种缩进方式的比较
( b)
2.2.3 Python语句行与注释 1.语句行 在Python中,语句行从解释器提示符 后的第一列开始,前面不能有任何空格, 否则会产生语法错误。每个语句行以回 车符结束。可以在同一行中使用多条语 句,语句之间使用分号分隔。 如果语句行太长,可以使用反斜杠将 一行语句分为多行显示。 如果在语句中包含小括号、中括号或 大括号,则不需要使用多行续行符。
2.format()内置函数 format()内置函数可以将一个输出项单独进 行格式化,一般格式为: format(输出项[,格式字符串]) 其中,格式字符串是可选项。当省略格式字 符串时,该函数等价于函数“str(输出项)”的 功能。format()内置函数把输出项按格式字符 串中的格式说明符进行格式化。 >>>
第2章 顺序结构
程序设计的基本步骤 算法的概念 Python程序的书写规则 赋值语句 输入输出语句 顺序结构程序设计方法
2.1 程序设计概述
2.1.1 程序设计的基本步骤
分析问题,确定数学模型或方法 设计算法,画出流程图 选择编程工具,按算法编写程序 调试程序,分析输出结果