Python程序设计项目化教程(AI助学)(微课版)(第2版)- 课件 任务3 系统界面设计与实现_第1页
Python程序设计项目化教程(AI助学)(微课版)(第2版)- 课件 任务3 系统界面设计与实现_第2页
Python程序设计项目化教程(AI助学)(微课版)(第2版)- 课件 任务3 系统界面设计与实现_第3页
Python程序设计项目化教程(AI助学)(微课版)(第2版)- 课件 任务3 系统界面设计与实现_第4页
Python程序设计项目化教程(AI助学)(微课版)(第2版)- 课件 任务3 系统界面设计与实现_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务3:系统界面设计与实现Python程序设计1、任务描述目录2、技术准备Python程序设计3、任务实施1、任务描述学生信息管理系统需要提供相应的操作界面来让用户选择执行相应的功能。本任务主要完成学生信息管理系统界面的设计与实现。完成本任务需要了解和掌握Python中三种基本控制结构的使用。2.1顺序结构技术准备2.2选择结构Python程序设计2.3循环结构2.4编码规范2.1顺序结构顺序结构是程序执行流程的默认结构,也是程序的基本结构。在顺序结构中程序按照语句出现的先后次序依次执行。其执行流程如下所示:

语句1语句22.1顺序结构1、赋值语句Python中利用赋值语句给变量赋值时可以有以下几种不同形式。(1)一次只给一个变量赋值格式:<变量名>=<表达式>功能:将表达式的值赋给指定变量。此种方式也支持复合赋值运算符。>>>a=3+5#简单赋值语句>>>a8>>>a+=5#复合赋值语句>>>a132.1顺序结构(2)一次给多个变量赋不同值格式:<变量1>,<变量2>,…,<变量n>=<表达式1>,<表达式2>,…,<表达式n>功能:将表达式1、表达式2、……表达式n的值分别赋给变量1、变量2、……变量n。>>>x,y=1,2#一次给多个变量赋不同值>>>x1>>>y22.1顺序结构(3)一次给多个变量赋相同值格式:<变量1>=<变量2>=…=<变量n>=<表达式>功能:将表达式的值分别赋给变量1、变量2、……变量n。>>>x=y=10#一次给多个变量赋相同值>>>x10>>>y102.1顺序结构2.输入Python中通过内置函数input()实现数据的输入。格式:input([提示信息])功能:用来接收用户键盘输入,以“Enter”键结束输入,函数的返回值是字符串。可选项[提示信息]为字符串数据,用于对用户输入做简短的提示。>>>x=input('enteranumber:')enteranumber:5#从键盘上输入5>>>x'5'>>>type(x)#返回类型是字符串<class'str'>2.1顺序结构提示:在使用input()函数时,不论从键盘上输入的是何内容,都作为字符串返回,如果需要其他类型数据,可通过类型转换函数来转换。>>>x=int(input('enteranumber:'))#将输入数据转换成整数enteranumber:5>>>x5>>>type(x)#此时x是整型数<class'int'>>>>x=float(input('enteranumber:'))#将输入数据转换成浮点数entranumber:5>>>x5.0>>>type(x)#此时x是浮点数<class'float'>2.1顺序结构3.输出Python中用内置函数print()进行输出。格式:print([输出列表][,sep=''][,end='\n'])功能:输出指定的内容。说明:(1)参数输出列表为要输出的内容,多个输出项之间用逗号分隔。(2)参数sep用于指定输出内容之间的分隔符,如果没有指定,默认为空格。(3)参数end用于指定结束标志符,默认为换行符“\n”。(4)交互式模式下也可直接输入表达式然后按“Enter”键就可输出相应的内容。2.1顺序结构>>>print('welcometolearnPython!')#输出一个字符串welcometolearnPython!>>>print(3)#输出一个数值常量3>>>print(3+4)#输出一个表达式7>>>print(1,2,3)#输出多个数据,默认以空格分隔123>>>print(1,2,3,sep=',')#输出多个数据,指定分隔符为逗号1,2,3>>>3+4#交互模式下也可直接通过表达式输出72.1顺序结构4.格式化输出Python支持格式化输出。可有两种不同方式来实现格式化输出。(1)格式符%通过格式符%来实现字符串格式化,使用格式如下图所示:2.1顺序结构常用格式字符如下表所示:格式字符说明%s字符串(采用函数str()的显示)%r字符串(采用函数repr()的显示)%c单个字符%d十进制整数%i十进制整数%o八进制整数%x十六进制整数%e科学记数法(用e表示)%E科学记数法(用E表示)%f、%F浮点数%g科学记数法(e)或浮点数(根据显示长度决定采用科学记数法还是浮点数形式)%G科学记数法(E)或浮点数(根据显示长度决定采用科学记数法还是浮点数形式)%%一个字符"%"2.1顺序结构>>>print('%s'%65)#按字符串格式输出65>>>print('%c'%65)#按字符格式输出A>>>print('%d'%234.45)#将234.45按整数格式输出234>>>print('%f'%123.4567)#将123.4567按浮点数格式输出123.456700>>>print('%.2f'%123.4567)#将123.4567按浮点数格式输出,保留两位小数123.462.1顺序结构>>>print('%10.2f'%123.4567)#按浮点数格式输出,保留两位小数,指定最小宽度123.46#宽度不足,前面加4个空格补足>>>print('%010.2f'%123.4567)#指定空位补00000123.46>>>print('%-10.2f'%123.4567)#左对齐输出,右边加4个空格补足123.46>>>print('%-8.2f%-8.1f'%(123.456,123.456))123.46123.5#第1个数后面有2个空格,第2个数后面有3个空格>>>print('名字:%s,年龄:%d'%('王芳',23))名字:王芳,年龄:232.1顺序结构(2)format()函数除了可用格式符“%”进行格式化输出外,Python还提供了format()函数进行格式化输出。格式:字符串.format(输出表列)功能:该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号“{}”作为特殊字符代替“%”。{}中的内容用于指向传入对象在format()中的位置(可以是数字表示的位置,也可以是关键字参数,没有指定时按默认顺序)。2.1顺序结构>>>print('hello{}'.format('world'))#等价于print("hello%s"%"world")helloworld>>>print('名字:{},年龄:{}'.format('王芳',23))#没有指定位置时,按默认顺序名字:王芳,年龄:23>>>print('名字:{1},年龄:{0}'.format(23,'王芳'))#设置指定位置名字:王芳,年龄:23>>>print('名字:{name},年龄:{age}'.format(age=23,name='王芳'))#设置关键字参数名字:王芳,年龄:232.1顺序结构通过指定位置或设置关键字参数的方式来确定输出格式与输出表列之间的对应关系。默认顺序是一一对应。利用format()函数进行格式化输出时也可以使用格式符来指定输出宽度、对齐方式、补零、小数点精度等。>>>print('{:.2f}'.format(123.4567))#保留两位小数输出123.46>>>print('{1:.2f}'.format(34,87))#将指定位置上的数据按两位小数输出87.00>>>print('{:.2%}'.format(0.34))#按百分比格式输出34.00%2.1顺序结构format()中可用格式符:数字格式输出描述3.1415926{:.2f}3.14保留小数点后两位3.1415926{:+.2f}+3.14带符号保留小数点后两位-1{:+.2f}-1.00带符号保留小数点后两位2.71828{:.0f}3不带小数(四舍五入)5{:0>2d}05数字补零(填充左边,宽度为2)5{:s<4d}5sss数字补s(填充右边,宽度为4)10{:s<4d}10ss数字补s(填充右边,宽度为4)1000000{:,}1,000,000以逗号分隔的数字格式0.25{:.2%}25.00%百分比格式1000000000{:.2e}1.00e+09指数记法13{:10d}13右对齐(默认,宽度为10)13{:<10d}13左对齐(宽度为10)13{:^10d}13中间对齐(宽度为10)11'{:+d}'.format(11)+11带符号整数输出表中“^”“<““>”分别表示居中、左对齐、右对齐,后面跟宽度。“:”号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。“+”表示在正数前显示正号,负数前显示负号;空格表示在正数前加空格。2.1顺序结构5.注释为了提高程序的可读性,可在程序的适当位置加上必要的注释。Python中注释有两种:行注释和块注释。行注释:以#开头,可以单独成行,也可以跟在某行代码的后边。块注释:也称多行注释,用三个单引号'''或者三个双引号"""将多行注释括起来,通常用于对函数、类等的大段说明。'''这是多行注释Createdon2020.3.12@authorlilly@organization'''#这是单行注释print('科技改变世界,梦想点亮未来!‘)#输出2.1顺序结构6.顺序结构示例【例3‑1】求任意两个整数的和。x=int(input('请输入一个整数:'))y=int(input('请输入一个整数:'))z=x+yprint('{}+{}={}'.format(x,y,z))【运行结果】请输入一个整数:3请输入一个整数:43+4=72.1顺序结构【例3‑2】交换两个变量的值。x=input('请输入x:')y=input('请输入y:')print('交换前x={},y={}'.format(x,y))x,y=y,x#两个变量值交换print('交换后x={},y={}'.format(x,y))【运行结果】请输入x:5请输入y:6交换前x=5,y=6交换后x=6,y=52.1顺序结构【例3‑3】输入圆的半径,求圆周长和面积。【分析】求圆周长和面积时需要用到圆周率,Python标准库math中提供了相应的符号常量pi,可直接导入使用。frommathimportpiasPI

r=float(input('请输入半径:'))circle=2*PI*rarea=PI*r*rprint('半径为:{:.2f},周长为:{:.2f},面积为:{:.2f}'.format(r,circle,area))【运行结果】请输入半径:2半径为:2.00,周长为:12.57,面积为:12.572.2选择结构1.单分支选择结构格式:if条件:

语句块功能:当条件为True或等价于True(如非0、非空字符串等)时,执行后面的语句块。说明:(1)条件一般为关系表达式或逻辑表达式,不须加括号,条件后面必须有冒号“:”,语句块为若干行语句,它们有相同的缩进。(2)在选择结构和循环结构中,条件表达式的值只要不是False、0(或0.0、0j等)、空值None、空列表、空元组、空集合、空字典、空字符串、空range对象或其他空迭代对象,Python解释器均认为与True等价。条件语句块TF2.2选择结构【例3‑4】输入两个整数,将其从大到小输出。n1=int(input('enteranumber:'))n2=int(input('enteranumber:'))ifn1<n2:n1,n2=n2,n1print('%d,%d'%(n1,n2))【运行结果】enteranumber:3enteranumber:66,32.2选择结构2.双分支选择结构格式:if条件:

语句块1else:

语句块2注意:if和else必须对齐,语句块1和语句块2必须有相同的缩进。功能:条件为True或等价于True时执行语句块1;条件为False或等价于False时执行语句块2。条件语句块1TF语句块22.2选择结构【例3‑5】输入一个整数,判断该数是奇数还是偶数。n1=int(input('enteranumber:'))ifn1%2==0:print('{}是偶数'.format(n1))else:print('{}是奇数'.format(n1))【运行结果】enteranumber:33是奇数enteranumber:66是偶数2.2选择结构【例3‑6】输入一个成绩,判断此成绩是否及格,给出相应的提示信息。score=float(input('enterascore:'))ifscore>=60:print('成绩{}及格'.format(score))else:print('成绩{}不及格'.format(score))【运行结果】enterascore:78成绩78.0及格enterascore:45.6成绩45.6不及格2.2选择结构【例3‑7】模拟用户登录。如用户名为admin且密码为123则登录成功,否则登录失败。user_name=input('enterusername:')pw=input('enterpassword:')ifuser_name=='admin'andpw=='123':print('登录成功!')else:print('用户名或密码错误')【运行结果】enterusername:adminenterpassword:123登录成功!enterusername:adminenterpassword:12345用户名或密码错误2.2选择结构说明:Python还支持如下形式的表达式,实现与双分支选择结构类似的效果。格式:表达式1if条件else表达式2功能:当条件为True时返回表达式1的值,否则返回表达式2的值。>>>score=80>>>print('及格'ifscore>=60else'不及格')及格2.2选择结构3.多分支选择结构格式:if条件1:

语句块1elif条件2:

语句块2elif条件3:

语句块3......elif条件n:

语句块nelse:

语句块n+1功能:首先判断条件1是否为True,如是,则执行语句块1,然后结束整个if语句;否则判断条件2是否为True,如是,则执行语句块2,然后结束整个if语句;依次类推,如果条件n也不成立,则执行语句块n+1。2.2选择结构【例3‑8】输入一百分制成绩,输出其相对应的等级。90-100分为优秀,80-89为良好,70-79为中等,60-69为及格,60分以下不及格。score=int(input('enterascore:'))ifscore>100orscore<0:print('输入错误')elifscore>=90:print('优秀')elifscore>=80:print('良好')elifscore>=70:print('中等')elifscore>=60:print('及格')else:print('不及格')【运行结果】enterascore:98优秀enterascore:88良好enterascore:78中等enterascore:68及格enterascore:58不及格enterascore:132输入错误enterascore:-9输入错误2.2选择结构4.选择结构的嵌套不论是单分支选择结构还是双分支选择结构或是多分支选择结构,其中的语句块中还可以再包含选择结构,这样就构成了选择结构的嵌套。在使用嵌套选择结构时要注意正确的缩进。2.2选择结构【例3‑9】利用选择结构的嵌套实现将百分制成绩转换为等级制。score=int(input('enterascore:'))ifscore>100orscore<0:print('输入错误')else:ifscore>=90:print('优秀')else:ifscore>=80:print('良好')else:ifscore>=70:print('中等')else:ifscore>=60:print('及格')else:print('不及格')2.3循环结构1.while循环格式:while条件:

语句块功能:当条件成立时,重复执行语句块(通常称为循环体),直到条件不成立为止。2.3循环结构【例3‑10】在屏幕上输出5次“科技无极限,创新无止境!”。i=0whilei<5:print('科技无极限,创新无止境!')i+=1【运行结果】科技无极限,创新无止境!科技无极限,创新无止境!科技无极限,创新无止境!科技无极限,创新无止境!科技无极限,创新无止境!2.3循环结构【例3‑11】求1~100的所有的偶数之和。s=i=0whilei<=100:s+=ii+=2print(‘1到100的所有偶数之和是:',s)【运行结果】1到100的所有偶数之和是:25502.3循环结构2.for循环在Python中,for循环通常用于遍历序列中的元素(如字符串、元组、列表等)或其他可迭代对象,它按照元素在可迭代对象中的顺序一一迭代,在处理完所有元素后自动结束循环。也即对序列中的每个元素都执行一遍循环体。格式:for变量in可迭代对象:

循环体功能:对可迭代对象中的每个元素执行一遍循环体。每次循环时自动把可迭代对象中的当前元素分配给变量并执行循环体,直到整个可迭代对象中的元素取完为止。2.3循环结构【例3‑12】依次输出一个字符串中的所有字符,各字符之间以逗号分隔。forchin‘科技兴国':print(ch,end=',')【运行结果】科,技,兴,国,2.3循环结构Python提供了一个内置函数range,用于生成一个等差整数列表,经常用在for循环中。range()函数使用格式:range([start,]stop[,step])功能:返回一个以起始值start开始,以终值stop结束,步长为step的等差数列。如果start没有指定,默认从0开始,step没有指定,默认为1。步长step可正可负。说明:如果要指定参数step,则必须要指定参数start。函数返回区间是一左闭右开区间,即不包括终值在内,例:range(1,5)生成的列表是[1,2,3,4]。2.3循环结构【例3‑13】依次输出自然数1~10,各数据之间用逗号分隔。foriinrange(1,11):print(i,end=',')【运行结果】1,2,3,4,5,6,7,8,9,10,2.3循环结构【例3‑14】求1~100的所有奇数和。s=0foriinrange(1,101,2):s+=iprint(‘1到100所有奇数之和为:',s)【运行结果】1到100所有奇数之和为:25002.3循环结构3.循环的嵌套一个循环体内又包含另一个完整的循环结构,称为循环的嵌套,也称为多重循环。不同循环结构可以互相嵌套。【例3‑15】输出九九乘法表。foriinrange(1,10):forjinrange(1,i+1):print('%d*%d=%-2d'%(i,j,i*j),end='')print()2.3循环结构此例也可用while循环的嵌套来实现,代码如下:i=1whilei<=9:j=1whilej<=i:print('%d*%d=%-2d'%(i,j,i*j),end='')j+=1print()i+=12.3循环结构for循环嵌套while循环实现的代码如下所示:foriinrange(1,10):j=1whilej<=i:print('%d*%d=%-2d'%(i,j,i*j),end='')j+=1print()2.3循环结构while循环嵌套for循环实现的代码如下所示:i=1whilei<=9:forjinrange(1,i+1):print('%d*%d=%-2d'%(i,j,i*j),end='')print()i+=12.3循环结构4.循环跳转语句通常情况下,循环结构会在执行完所有循环语句后自然结束。有些情况下,可能需要提前结束循环,Python提供了break和continue两种不同方式来提前结束循环。通常都需结合if语句判断,当满足某个条件时,提前结束循环。while循环和for循环中都可使用break和continue语句来提前结束循环。(1)break语句break语句用于提前结束整个循环。说明:break结束的只是它自身所在的循环,如果有循环嵌套,内层循环的提前结束不影响外层循环。2.3循环结构【例3‑16】求300以内能被19整除的最大正整数。foriinrange(300,0,-1):ifi%19==0:print('300以内能被19整除的最大正整数是:',i)break【运行结果】300以内能被19整除的最大正整数是:2852.3循环结构(2)continue语句continue语句用于提前结束本次循环。当执行到continue语句时,系统会自动跳过当前循环体中剩下的代码,从头开始下一次循环。【例3‑17】输出1~10的奇数。foriinrange(1,11):ifi%2==0:continueprint(i,end='')【运行结果】135792.3循环结构说明:在此只是演示continue的使用,此程序功能其实不必用continue也可以实现,代码如下所示。foriinrange(1,11,2):print(i,end='')提示:因循环跳转语句会破坏已有的循环结构,实际编程中应尽量避免使用循环跳转语句。2.3循环结构5.else子句在Python中,不论是while循环还是for循环,都可以使用else子句。此子句不是循环必需的,可根据需要来选择使用或不使用。使用格式如下:while循环中使用格式:while条件:

循环体else: else子句代码块for循环中使用格式:for变量in迭代对象:

循环体else: else子句代码块功能:else子句作为循环的子句,在循环语句正常结束后执行。换句话说,因遇到break而提前结束的循环不会执行else子句中的语句。2.3循环结构【例3‑18】求10~20所有的素数。importmath

foriinrange(10,20):k=math.ceil(math.sqrt(i))forjinrange(2,k+1):ifi%j==0:break;else:print(i,end='')【运行结果】111317192.3循环结构6.pass语句pass语句是空语句,它的出现是为了保持程序结构的完整性。pass不做任何事情,通常用来作占位语句。在程序设计时,有时暂时不能确定如何实现,或者要为以后的软件升级预留空间等,此时可以用pass“占位”。whilescore>=60: pass#待添加语句,暂时什么都不做2.4编码规范Python是一门优雅的语言,非常重视代码的可读性,对代码书写有着严格的要求。Python社区对代码编写有些共同的要求、规范和一些常用的代码优化建议,在编写代码时应尽量遵循这些规范和建议,养成良好的编码风格。基本的编码要求和规范如下:(1)严格使用缩进来表示程序代码的逻辑关系,一般以4个空格为一个缩进单位。(2)不要在行尾加分号。(3)一行代码不要超过80字符,尽量不要写过长的语句,如语句太长,可用圆括号折叠长行或是用续行符“\”来拆分语句。(4)空格与空行。运算符两侧建议使用空格分开;不同函数之间建议增加一个空行增加程序可读性。(5)对关键代码和重要的业务逻辑代码进行必要的注释。3.1系统业务流程设计任务实施3.2系统主界面实现Python程序设计3.3学生基本信息管理界面实现3.4学生成绩管理界面实现3.1系统业务流程设计学生信息管理系统启动后,首先进入系统主界面,如下图(a)所示,等待用户输入命令选择相应的功能。如果用户输入“info”命令,则进入学生基本信息管理子功能模块,界面如下图(b)所示,如果用户输入“score”命令,则进入学生成绩管理子功能模块,界面如下图(c)所示。在学生基本信息管理界面,用户通过输入相应的命令进行学生基本信息的增、删、改、显示等操作。在学生成绩管理界面用户可选择相应的功能进行成绩处理。3.2系统主界面实现print("====学生信息管理系统V1.0====")print("info:学生基本信息管理")print("score:学生成绩管理"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论