您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > Python程序设计第1章顺序程序设计2(第2次课).
计算机编程导论课程建设组编著2014.3第1章顺序程序设计1.5顺序程序设计基础知识1.6顺序程序设计基础知识的应用框图复习框图又称流程图,是表达程序设计思想和程序设计步骤的一种直观工具。开始开始框—用于流程的开始结束结束框—用于流程的结束功能框—用来完成计算等功能单分支判断框—用于解决单分支问题例子:ifx0:n=n+1FalseTrue条件双分支判断框—用于解决双分支问题例子:ifx0:y=1+2*xelse:y=0print'y=',yFalseTrue条件FalseTrue条件循环框1—用于解决需要反复进行的问题。例子1:s=[1,2,3]forxins:printx例子2:i=1s=0whilei=100:s=s+ii=i+1prints循环框2—用于解决需要反复进行的问题。i=1s=0whileTrue:s=s+ii=i+1ifi100:breakprintsFalseTrue条件输入输出输入框—向程序输入数据例子:x=input('x=')输出框—程序向外输出信息例子:print's=',s框图直观且易于修改,有利于人们表达出解决问题的思想和方法。1.5顺序程序设计基础知识1.5.1Python的对象模型对象是python语言中最基本的概念,在python中处理的每样东西都是对象。python中有许多内置对象可供编程者使用,有些内置对象可直接使用,如数字、字符串、列表、del等;有些内置对象需要导入模块才能使用,如正弦函数sin(x),随机数产生函数random()等。对象类型例子数字1234,3.14,3+4j字符串'swfu',I'mstudent,'''Python'''日期2012-08-25列表[1,2,3]字典{1:'food',2:'taste',3:'import'}元组(2,-5,6)文件f=open('data.dat','r')集合set('abc'),{'a','b','c'}布尔型True,False空类型None编程单元类型函数、模块、类表1-1常用内置对象1.5.2python的变量和引用1.变量的创建x=3创建了变量x2.引用在python中从变量到对象的连接称为引用。x=3x3变量对象引用变量拥有自己的存储空间,变量连接到对象是该变量存储了对象单元的内存地址,并没有存储对象的值。3.共享引用共享引用是指多个变量引用同一个对象。下面的语句使两个变量都引用同一个对象3a=3b=a下面在windows中的idle中演示对象、变量和引用a=[1,2,3]b=a;a[0]1b[0]=4a[0]4a[4,2,3]b[4,2,3]1.5.3.1整数十进制整数如,0、-1、9、123十六进制整数,需要16个数字0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f来表示整数,为了告诉计算机这是一个十六进制数,必须以0x开头,如0x10、0xfa、0xabcdef八进制整数,只需要8个数字0、1、2、3、4、5、6、7来表示整数,为了告诉计算机这是一个八进制数,必须以0o开头,如0o35、0o11二进制整数、只需要2个数字0、1来表示整数,为了告诉计算机这是一个二进制数,必须以0b开头如,0b101、0b1001.5.3数字数字是python中最常用的对象。1.5.3.2浮点数浮点数又称小数,如15.0、0.37、-11.2、1.2e2、314.15e-21.5.3.3复数复数是由实部和虚部构成的数,如3+4j、0.1-0.5ja=3+4jb=5+6jc=a+bc8+10jc.real#复数的实部8.0c.imag#复数的虚部10.01.5.4字符串用单引号、双引号或三引号括起来的符号系列称为字符串,如'abc'、'123'、'中国'、Python、'''可换行的字符串'''空串表示为''或1.字符串合并a='abc'+'123‘2.转义字符转义字符可表示所有字符如'\n'是换行符'\x41'、'\101'、'A'都表示字符A请理解下列语句print123456123456print123\n4561234563.三引号的用法三引号表示的字符串可以换行,因此可用来表示超长字符串。或给程序加较长的注释。操作符描述x+y,x-y加法/字符串合并,减法/集合差集x*y,x/y,x//y,x%y乘法/重复,除法,求整商,余数/格式化x**y幂运算xy,x=y,xy,x=y大小比较,集合的包含关系比较x==y,x!=y相等比较,不等比较xory逻辑或(只有x为假才会计算y)xandy逻辑与(只有x为真才会计算y)notx逻辑非xiny,xnotiny成员与集合的关系xisy,xisnoty对象实体测试1.5.5操作符和表达式1.5.6常用内置函数函数功能abs(x)返回数字x的绝对值bin(x)把数字x转换为二进制串chr(x)返回编码为x的字符eval(s[,globals[,locals]])计算字符串中表达式的值并返回float(x)把数字或字符串x转换为浮点数并返回help(obj)返回对象obj的帮助信息hex(x)把数字x转换为十六进制串id(obj)返回对象obj的标识input([提示串])接受键盘输入,返回字符串len(obj)返回对象obj包含的元素个数range([start,],end[,step])oct(x)把数字x转换为八进制串ord(s)返回1个字符s的编码range([start,]end[,step])返回一个等差数列,不包括终值round(x[,小数位数])对x进行四舍五入。若不指定小数位数,则返回整数。str(obj)把对象obj转换为字符串理解下面的例子range(5)[0,1,2,3,4]range(2,10,3)[2,5,8]1.5.7对象的删除Python中删除对象用del语句。del用来删除一个对象,并释放对象所占资源。del的用法演示如下:a=[1,2,3]dela[1]a[1,3]x=5x5delx#此后x就不存在了1.5.8输入输出用Python进行程序设计,输入是通过input()函数来实现的,imput()的一般格式为:x=input('提示:')该函数返回输入的对象。可输入数字、字符串和其它对象输出是通过print语句来完成的,print语句的一般格式为:print对象1,对象2,...,对象n1.5.9模块的导入常用的是import模块名如:importmathmath.sin(0.5)#求0.5的正弦importrandomx=random.random()#获得[0,1)内的随机小数y=random.random()n=random.randint(1,100)#获得[1,100]上的随机整数1.7顺序程序设计基础知识的应用【例1-3】任意输入三个英文单词,按字典顺序输出。分析:三个单词输入后,需要比较两个字符串的大小,必须时交换两个字符串。开始输入三个单词分别送给x,y,zxyxz交换x,y的值交换x,z的值TrueFalseFalseTrue结束输出x,y,zyz交换y,z的值FalseTrue#Exp1_3.pys=input('x,y,z=')x,y,z=s.split(',')#把字符串用逗号进行分离,返回子串构成的列表ifxy:x,y=y,x#交换x,y的值ifxz:x,z=z,xifyz:y,z=z,yprint(x,y,z)输入及程序运行结果:x,y,z='bin,oct,hex'binhexoct【例1-4】输入一个二元一次方程组,解方程组。分析:根据代数知识,二元一次方程组的解是由方程组的4个系数和2个常数决定的。用加减消元法,把方程组等号左端区域变成对角形,从而得到解。121110020100ayaxaayaxa12110200ayaaxa 从变为图1-11加减消元法解二元一次方程组#Exp1_4.pya=[[0,0,0],[0,0,0]]#定义一个列表a[0][0],a[0][1],a[0][2]=input('请输入第1个方程的3个数:')a[1][0],a[1][1],a[1][2]=input('请输入第1个方程的3个数:')#第1行乘以-a[1][0]/a[0][0]加到第2行d=-a[1][0]/a[0][0]a[1][0]=a[1][0]+d*a[0][0]a[1][1]=a[1][1]+d*a[0][1]a[1][2]=a[1][2]+d*a[0][2]#第2行乘以-a[0][1]/a[1][1]加到第1行d=-a[0][1]/a[1][1]#a[0][0]=a[0][0]+d*a[1][0]a[0][1]=a[0][1]+d*a[1][1]a[0][2]=a[0][2]+d*a[1][2]print'x=',a[0][2]/a[0][0]print'y=',a[1][2]/a[1][1]输入及程序运行结果:请输入第1个方程的3个数:1,2,3请输入第2个方程的3个数:4,9,7x=13.0y=-5.0说明:将来使用循环和分支,用这种思想可解多元方程。1.8代码块的缩进python程序是依靠代码块的缩进来体现代码之间的逻辑关系的,缩进结束就表示一个代码块结束了。【例1-5】解决行列式的输出的问题#Exp1_5.pya=[[111,2,30],[4,50,6],[7,8,9]]#Exp1_5.pya=[[111,2,30],[4,50,6],[7,8,9]]s1=''print('______________1________________')forxina:s=''foryinx:s1='%6d'%ys=s+s1print(s)s1=''print'______________1________________'forxina:s=''foryinx:s1='%6d'%ys=s+s1printsprint'______________2________________'i=j=0whilei3:j=0s=''whilej3:s1=str(a[i][j])s1=s+(s1+''*(6-len(s1)))j=j+1printsi=i+1print'\n用了两种方法\n'程序运行结果:______________1________________1112304506789______________2________________1112300345061378923用了两种方法第2次上机作业:1.输入一个十进制数,输出其二进制串、八进制串、十六进制串。2.解一元一次方程ax+b=0的问题。由用户输入a,b,程序输出方程,并输出解。3.输入两个点,建立起直线方程y=kx+b。输入第3个点,求点到直线的距离。4.输入一个小数,对第三位小数进行四舍五入,保留两位小数。注:不能用round()函数,事实上我们就是想探索round()函数是如何设计的。python2.7.3的使用:(1)下载,可到下载。(2)安装,在windows中直接安装下载后的文件。(3)安装后可从windows的开始菜单中启动Idle.(4)通过File菜单新建立一个窗口。File-NewWindow新建立的窗口和Idle窗口如下所示:Idle启动后界面如下:(5)在新窗口中录入代码,如下:(6)代码存盘。用File菜单的save子菜单,或打ctrl+S然后起一个文件名如add.py。保存后的窗口如下:c(7)运行程序。用Run菜单的RunModule子菜单,或功能键F5。上述程序的运行结果如下:
本文标题:Python程序设计第1章顺序程序设计2(第2次课).
链接地址:https://www.777doc.com/doc-2853938 .html