python数据处理的流程控制课件

PPT
  • 阅读 63 次
  • 下载 0 次
  • 页数 96 页
  • 大小 1.517 MB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
python数据处理的流程控制课件
可在后台配置第一页与第二页中间广告代码
python数据处理的流程控制课件
可在后台配置第二页与第三页中间广告代码
python数据处理的流程控制课件
可在后台配置第三页与第四页中间广告代码
python数据处理的流程控制课件
python数据处理的流程控制课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 96
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】python数据处理的流程控制课件.ppt,共(96)页,1.517 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-44427.html

以下为本文档部分文字说明:

第二次上机总结11、以file的形式写代码,交互式的界面只适合于单语句代码的测试2、file文件中以函数为单位写代码,方便调用以实现代码重用3、inport语句放在程序的开头,即程序总注释后面,第一个

函数前面1第二次上机总结2提高课堂效率了解每次课的主要内容2第3章数据处理的流程控制计算机程序根据语句的顺序依次向下执行。#convert.py#AprogramtoconvertCelsiustempstoFahrenheitdefmain():celsius=input

("Whatisthe...”)fahrenheit=9.0/5.0*celsius+32print"Thetemperatureis",fahren...main()流程图:用标准化的图形符号来表示程序步骤但这种顺序执行显然是不够的,我们会要求某个功能

重复执行,也会要求根据不同的前提条件执行不同的功能,所以引入了另两种控制结构——分支和循环§3.2分支结构§3.3异常处理§3.4循环结构§3.5结构化程序设计1单分支结构2二分支结构3多分支结构(一)温度转换的例子(eg3_1.py)#convert.py#Ap

rogramtoconvertCelsiustempstoFahrenheitdefmain():celsius=input("Whatisthe...”)fahrenheit=9.0/5.0*celsius+32print"Thetemperatureis",fahren

...main()(一)温度转换的例子希望他可以根据不同的温度给出不同的提示。Iffahrenheit>90printahotwarningIffahrenheit<30printacoldwarning(一)温

度转换的例子:流程图(一)温度转换的例子改进版#convert2.pydefmain():celsius=input("Whatisthe...?")fahrenheit=9.0/5.0*celsius+32print"Thetemperatureis",fahrenhei

t,...iffahrenheit>90:print"It'sreallyhotoutthere,..."iffahrenheit<30:print"Brrrrr.Besuretodresswarmly"main()单分支语句(二)用于执行决策的if语句语法:if<condition>:(if

fahrenheit>90:)<body>next语义:先判断条件表达式(condition)true,执行语句体(body),再转向下一个语句false,忽略语句体(body),直接转向下一个语句语句体(body):一个或多个语句在:后面缩进显示,body中

的各语句缩进对齐(三)条件表达式的格式简单条件表达式(condition):比较两个表达式<expr1><relop><expr2>(a+2<=a*2)关系运算:<,<=,==,>=,>,!=数值比较:整型数的比较,实型数

的比较字符串比较:按字典序。字母序由编码(ASCII等)决定.如:大写字母在小写字母前.<condition>称为布尔表达式结果为true/false,1/0Relationoperation(关系运算符)§3.2分支结构§3.3异常处理§

3.4循环结构§3.5结构化程序设计1单分支结构2二分支结构3多分支结构求一元二次方程的例子(ver1.0)#quadratic.pyimportmathdefmain():print"Thisprogramfindsthereal..."a,b,c=input("Ple

aseenter..(a,b,c):")discRoot=math.sqrt(b*b-4*a*c)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/(2*a)print"Thesolutionsare:",r

oot1,root2main()ThisprogramfindstherealsolutionstoaquadraticPleaseenterthecoefficients(a,b,c):1,1,2Traceback(mostrecentcalllast):F

ile"C:\DocumentsandSettings\Terry\MyDocuments\Teaching\W04\CS120\Textbook\code\chapter3\quadratic.py",line21,in-t

oplevel-main()File"C:\DocumentsandSettings\Terry\MyDocuments\Teaching\W04\CS120\Textbook\code\chapter3\quadratic.py",line14,inmaindiscRoot=m

ath.sqrt(b*b-4*a*c)ValueError:mathdomainerrorver1.0的运行引入决策分支结构#quadratic2.py,当discrim>=0时才有解importmathdefmain():print"Thisp

rogramfindstherealsolutions...\n"a,b,c=input("Pleaseenterthe...(a,b,c):")discrim=b*b-4*a*cifdiscrim>=0:discR

oot=math.sqrt(discrim)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/(2*a)print"\nThesolutionsare:",root1,root2main()求

一元二次方程的例子(ver2.0)ver2.0的运行结果ThisprogramfindstherealsolutionstoaquadraticPleaseenterthecoefficients(a,b,c):1,1,1

>>>discRoot<0时,没有任何执行语句就结束了应该给出提示#quadratic2.py的改良importmathdefmain():print"Thisprogramfindstherealsolutions...\n"a,b,c

=input("Pleaseenterthe...(a,b,c):")discrim=b*b-4*a*cifdiscrim>=0:discRoot=math.sqrt(discrim)root1=(-b+di

scRoot)/(2*a)root2=(-b-discRoot)/(2*a)print"\nThesolutionsare:",root1,root2ifdiscRoot<0:print“Theequationhasnorealroots!”main()求一元二次方程的例子(ver2.

0+)该程序两个if语句的流程图?做了基于同一个值的两次条件表达式的判断,不够高效二分支结构二分支结构语法:if<condition>:<statements1>else:<statements2>nextstatements#quadratic3.py考虑到负值并会给出提

示importmathdefmain():print"Thisprogramfindstherealsolutions...\n"a,b,c=input("Pleaseenterthe...(a,b,c):")discrim=b*b

-4*a*cifdiscrim<0:print"\nTheequationhasnorealroots!"else:discRoot=math.sqrt(b*b-4*a*c)root1=(-b+discRoot)/(2

*a)root2=(-b-discRoot)/(2*a)print"\nThesolutionsare:",root1,root2main()求一元二次方程的例子(ver3.0)ThisprogramfindstherealsolutionstoaquadraticPleaseentertheco

efficients(a,b,c):1,2,1Thesolutionsare:-1.0-1.0该程序还可以改善:同时<0、==0、>0三种情况ver3.0的运行结果§3.2分支结构§3.3异常处理§3.4循环结构§3.5结构化程序设计1单分支结构2二分支结构3多分支结构多分支结构ifdiscrim

<0:print"Equationhasnorealroots"else:#大于等于0的情况ifdiscrim==0:root=-b/(2*a)print"Thereisadoublerootat",rootelse:#大于0的情况discRoot=math.sqr

t(b*b-4*a*c)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/(2*a)print"\nThesolutionsare:",root1,root2if...else的嵌套:if或el

se后面的语句块可以是if…else语句多分支结构的实现1:if...else的嵌套教材p121:第13题程序设计:输入百分制的考试分数,输出相应的等级制名称。设A:90-100,B:80-89,C:70-79,D:

60-69,F:60分以下多层嵌套会导致缩进很多多分支结构的实现2:elif语法:if<condition1>:<case1statements>elif<condition2>:<case2statements>elif<condition3>:<case3statements

>…else:<defaultstatements><nextstatements>语义:找到第一个为真的条件表达式并执行对应语句序列,控制转向下一条语句;若无,则执行else下的语句序列,控制转向下一条语句。#quadratic4.py同时考虑三种情况importmat

hdefmain():print"Thisprogramfindstherealsolutions...\n"a,b,c=input("Pleaseenterthe...(a,b,c):")discrim=b*b-4*a*cifdiscrim<0:print"\n

Theequationhasnorealroots!"elifdiscrim==0:root=-b/(2*a)print"\nThereisadoublerootat",rootelse:discRoo

t=math.sqrt(b*b-4*a*c)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/(2*a)print"\nThesolutionsare:",root1,root2求一元

二次方程的例子(ver4.0)教材p121:第13题程序设计:输入百分制的考试分数,输出相应的等级制名称。设A:90-100,B:80-89,C:70-79,D:60-69,F:60分以下Boolean操作符

有时候简单的bool表达式还不够用and、or、not等去组合多个布尔表达式<条件表达式1>and<条件表达式2><条件表达式1>or<条件表达式2>not<条件表达式>布尔操作结果PQPandQPorQnotPTTTTFTFFTFFTFTT

FFFFT我们可以用布尔操作符任意地组合各种布尔表达式。最终的结果还是T或F。Boolean操作符aornotbandc是T还是F(a,b,c皆为T)?操作符的优先级:not>and>or上述表达式等价于(aor((notb

)andc))在记不住优先级的时候,加小括号确定优先级写Bool表达式的例子:模拟racquetball的结束两个人比赛,得分记为scoreA,scoreB,没分出胜负之前循环比赛,直到有一人胜出。循环的退出表达式怎么写?

先得15分者胜(1)有一位得15分的表示scoreA==15orscoreB==15(2)满足上述条件的时候停止,否则继续比赛whilenot(scoreA==15orscoreB==15):#continueplaying只

要满足一个条件就要退出取not的时候就是没退出,继续游戏例:模拟racquetball的结束先得15分或7:0者胜whilenot(a==15orb==15or(a==7andb==0)or(b==7anda==0))必须有一方大于15并且至少要多2分才胜whil

enot((a>=15anda-b>=2)or(b>=15andb-a>=2))Boolean代数对布尔表达式的要求:能写:将实际问题所涉及的条件表达成布尔表达式能计算:能对布尔表达式进行演算和推导布尔表达式也能进行代数计算(布尔逻辑)Boolean代数an

dhaspropertiessimilarto*orhaspropertiessimilarto+0and1correspondtofalseandtrue,respectively.AlgebraBooleanalgebraa*0=0aand

false==falsea*1=aaandtrue==aa+0=aaorfalse==aBoolean代数任何数ortrue,其结果肯定为true:aortrue==trueand和or服从分配律:aor(bandc)==(aorb)and(aorc)a

and(borc)==(aandb)or(aandc)双重否定就是肯定:not(nota)==a摩根定律:not(aorb)==(nota)and(notb)not(aandb)==(nota)or(notb)Python对布尔值和布尔运算的处理很灵活可扩展阅读中文教材2.4.4Py

thon中真假的表示与计算§3.2分支结构§3.3异常处理§3.4循环结构§3.5结构化程序设计quadratic.py程序会产生很多问题quadratic2-4.py利用决策分支避免了其中的开方为负数时的运行错误在其他很多程序里,也经常用决策分支结构保护程序,

避免出现虽然几率很小但还是不可避免会发生的错误。#quadratic.pyimportmathdefmain():print"Thisprogramfindsthereal..."a,b,c=input("Pleaseenter..(a,b,c):")ifa==0:#

非二次方程handler1…iftype(a)!=‘int’ortype(b)!=‘int’ortype(c)!=‘int’:#输入类型错误handler2…discRoot=math.sqrt(b*b-4*a*c)ifdiscRoot<0:handler3…root1=(-b+dis

cRoot)/(2*a)root2=(-b-discRoot)/(2*a)print"Thesolutionsare:",root1,root2main()raw_input()当程序中充斥着这样的错误检测代码时,解决问题的算法反而不明显了。是不是可以把程序的主干留着,错误处理代码提出来放到专

门的地方异常处理机制异常处理机制把错误集中在一起处理,以免影响算法的主线条。Python提供try...except...可使程序不因运行错误而崩溃,尽量让用户不受意外结果的困扰。异常处理语句语法:try:<mainbody>e

xcept<ErrorType1>:<handler1>except<ErrorType2>:<handler2>...except:<handlern>nextstatement语义:执行<body>。若无错,控制转下一语句;若有错

,查找匹配该错误的except子句,找到则执行相应的处理程序,找不到则程序崩溃,系统报错。编程实例:完善quadratic.py用异常处理语句来捕获math.sqrt的溢出错误(quadratic5.py)

try:...exceptValueError:...错误类型:从系统报错信息中可得。如ValueError,TypeError,NameError等Traceback(mostrecentcalllast):File"C:\

DocumentsandSettings\Terry\MyDocuments\Teaching\W04\CS120\Textbook\code\chapter3\quadratic.py",line21,in-toplevel-main()File"C:

\DocumentsandSettings\Terry\MyDocuments\Teaching\W04\CS120\Textbook\code\chapter3\quadratic.py",line14,inmaindiscRoot=math

.sqrt(b*b-4*a*c)ValueError:mathdomainerror#quadratic5.pyimportmathdefmain():print"Thisprogramfindstherealsolutions...

\n"a,b,c=input("Pleaseenterthe...(a,b,c):")try:discRoot=math.sqrt(b*b-4*a*c)root1=(-b+discRoot)/(2*a)root2=(-b-discRoot)/

(2*a)print"\nThesolutionsare:",root1,root2exceptValueError:print"\nNorealroots“exceptZeroDivisionError:print“inputerror,acannotbezero."main()求一元二次方

程的例子(ver5.0)将a等于0的判断也作为异常,使程序更加简洁运行程序ver5.0:ThisprogramfindstherealsolutionstoaquadraticPleaseenterthecoefficients(a,b,c):1,1,1Norealrootstry„exce

pt可以捕捉任何类型的错误,包括内置类型,自定义类型等。对于quadraticprogram,还会有其他的运行错误,如:输入非数值类型,输入非常量而是变量(NameError),输入无效的数值类型(TypeError)

等。此时可以用一个try语句加多重except来实现。§3.2分支结构§3.3异常处理§3.4循环结构§3.5结构化程序设计(1)for循环:回顾(2)while循环(3)常见循环模式(4)循环的非正常中断for循环

语法:for<var>in<sequence>:<body>例子:foriinrange(100):printi语义:循环索引值var依次取sequence中的值,每循环一次执行一次<body>用for处理序列数据的两种遍历方式>>>data=['Bornon:','July',2,2

005]直接遍历序列>>>fordindata:printd,通过索引遍历序列>>>foriinrange(len(data)):printdata[i],可以更灵活地处理序列数据,如>>>foriinrange(0,len(data),3

):...用for处理各种序列数据字符串>>>forcin"helloworld":printc,元组>>>foriin(1,2,3):printi嵌套序列:如元组的列表>>>fortin[(1,2),(3,4),(5,6)]:printt,t[0],t[1](1,2)12(3,4)

34(5,6)56123helloworld假设我们要求一组数的均值为了实现程序的通用性,必须使得该程序能够求任意个数的平均值程序特点:不要求记录每个值,只要求平均值,所以我们可以只记录加和值。for循环例子#average1.py#Apro

gramtoaverageasetofnumbersdefmain():n=input("Howmanynumbersdoyouhave?")sum=0.0foriinrange(n):x=input("Enteranumber>>")sum=sum+xprint"

\nTheaverageis",sum/nfor循环累积计算:(1)初始值的设定(2)循环计算,更新Howmanynumbersdoyouhave?5Enteranumber>>32Enteranumber>>45Enteranumber>>34Enteranumber

>>76Enteranumber>>45Theaverageofthenumbersis46.4average1.py的缺点:需要用户输入n,不适合事先不知道n的场合不知道n则不能用确定的计数循环for不确定的条件循环:while上机课上交的作业问题:1、没交作

业:915691689172919291949196920592162、存成了txt文件(9169,9175)3、没写成函数的形式(9197,9211)4、输出格式:%上机课上交的作业问题:59%的应用printi,”$”+str("%0.2f“%prin

cipal)printi,“$%0.2f“%principal§3.2分支结构§3.3异常处理§3.4循环结构§3.5结构化程序设计(1)for循环:回顾(2)while循环(3)常见循环模式(4)循环的非正常中断语法:while<condition>:<bod

y>nextstatement语义:只要条件成立就反复执行循环体;当条件不成立则执行下一条语句。不确定循环:whilewhile<condition>:<body>条件表达式(condition)是一个bool型的表达式。语句体(body)是一句或多

句语句,多句语句时缩进对齐。每次循环时,先检查条件表达式,为真时执行body,为假时略过body执行while后的语句,循环终止。不确定循环:whilewhile循环的特点循环前测试条件若不满足,则循环体一次都不执行循环体影响下一次条件测试

否则导致无穷循环条件循环体yesno例如:要依次打印1-10这10个数:forloop:foriinrange(1,11):printiwhileloop:i=1whilei<=10:printii=i+1while循环

的特点两者有什么区别???(1)while需要对循环变量i进行初始化,而for循环的循环变量是自动处理的(2)while语句相对简单,但循环体一定要影响下一次条件测试试想,如果没有i=i+1这条语句,会发

生什么事情?i一直为0,陷入死循环§3.2分支结构§3.3异常处理§3.4循环结构§3.5结构化程序设计(1)for循环:回顾(2)while循环(3)常见循环模式(4)循环的非正常中断(一)交互式循环(二)哨兵循环(三)后测试循环(四)嵌套循环根据用户交

互来决定是否循环下去求和例子(eg3_10.py):用户不断输入数据,程序得到数据后不断累加,最后算出输入数据的总和伪代码:设置一个循环控制变量(moredata=yes/no)while(moredata为y

es):获得用户输入的数据处理该数据询问用户是否还要输入数据,即更新moredata的值(一)交互式循环#交互式循环的codesum=0#累积值赋初值moredata=“yes“#循环控制变量赋初值whi

le(moredata[0]==“y”ormoredata[0]==“Y“):x=input("Inputanumber:")sum=sum+xmoredata=raw_input("More?(yes/no)")print"Thesumis",sum(

一)交互式循环运行eg3_10.pyInputanumber:32More?(yes/no)yInputanumber:40More?(yes/no)yInputanumber:50More?(yes/no)yInputanumbe

r:45More?(yes/no)nThesumis167优点:用户不用事先输入n缺点:用户会被没完没了的“y”的输入烦死改进:设置一个特殊数据值作为终止循环的信号。(二)哨兵循环(SentinelLoops)Asentin

elloop就是一直循环干事直到碰到一个特殊值。这个特殊值被称为哨兵(sentinel)。这个哨兵必须能很明确地和其它输入值分开。算法模式:前导输入while该数据不是哨兵:处理该数据循环尾输入(下一个数据)哨兵循环例(1)正常数据是非负数,则可以-1作为哨兵:eg3_11.py

sum=0x=input("Inputanumber(-1toquit):")whilex>=0:sum=sum+xx=input("Inputanumber(-1toquit):")print"Thesumis",sum哨兵循环例(2)正常数据是任何实数,则可以空串作为哨

兵:eg3_12.pysum=0x=raw_input("Inputanumber(<Enter>toquit):")whilex!="":sum=sum+eval(x)x=raw_input("Inputanumber(<Enter>

toquit):")print"Thesumis",sum(三)后测试循环输入验证问题:检查用户输入是否符合要求,不符合就要求用户重新输入,直至符合为止。这是一种后测试循环:执行循环体后才测试条件循环体至少执行一次直至条件成立才退出循环有些语言

提供repeat…until语句Python可用while实现只需确保首次进入while时条件成立x=1whilex<0:...例如,假设程序要求用户输入一个正数,则用下面代码片段可检查输入合法性:x=-1whilex<0

:x=input(“pleaseinputapositivenumber:”)(四)嵌套循环(NestedLoops)分支结构能够嵌套,循环结构也能嵌套——一个循环语句体内可以是循环语句。如果序列的成员本身又是序列,就需要嵌套循环来处理。数学中向量是一维序列,矩阵是二维序列(四)嵌套循环(

NestedLoops)用嵌套循环遍历矩阵元素:a=[[11,12],[21,22],[31,32]]sum=0foriina:forjini:sum=sum+jprintsumsum=0foriina:forjini:sum=sum+jprintsum,sum=0fo

riina:forjini:sum=sum+jprintsum,嵌套循环例打印乘法口诀表关键是输出的排列>>>foriinrange(1,10):forjinrange(1,i+1):print"%dx%d=%-2d"%(j,i,j*i),pri

nt1x1=11x2=22x2=41x3=32x3=63x3=91x4=42x4=83x4=124x4=161x5=52x5=103x5=154x5=205x5=251x6=62x6=123x6=184x6=245x

6=306x6=361x7=72x7=143x7=214x7=285x7=356x7=427x7=491x8=82x8=163x8=244x8=325x8=406x8=487x8=568x8=641x9=92x9=183x9=274x9=365x9=456x9=54

7x9=638x9=729x9=81§3.2分支结构§3.3异常处理§3.4循环结构§3.5结构化程序设计(1)for循环:回顾(2)while循环(3)常见循环模式(4)循环的非正常中断正常的循环总是按“从头到尾再回到头”的方式进行,但是很多编程语言都提供了特

定条件下打破正常循环方式的语句,便于解决问题。Python:break和continue循环的非正常中断循环非正常中断:break语义:中止本轮循环,结束break所处的循环语句。常与whileTrue形式的无穷循环配合使用例1:

输入合法性检查whileTrue:x=input("请输入非负数:")ifx>=0:break例2:break也可以跳出for循环foriinrange(10):print"烦"ifi>4:break循环非正常中断:continue语义:中止本轮循环,控制转移到所处循环语句的开

头“继续”下一轮循环。例:对列表中的奇数求和a=[23,28,39,44,50,67,99]sum=0foriina:ifa%2==0:continuesum=sum+iprintsumforiinrange(10):print"烦"ifi>4:continueforiinrange(10):i

fi>4:continueprint"烦"foriinrange(10):ifi==4:breakprint"烦"foriinrange(10):ifi==4:continueprint"烦"烦烦烦烦烦烦烦烦烦烦烦烦烦§3.2分支结构§3.3异常处理§3.4循环结构§3.5结构

化程序设计程序设计的发展早期:手工作坊式程序规模小,功能简单要在有限内存中尽快完成计算凭借程序员的个人编程技巧后来:作为工程来开发程序规模大,功能复杂内存和速度不是问题,软件可靠性和开发效率变得突出依靠系统化的开发方法和工具程序开发的周期Step1、需求分析:

我们要解决什么问题?分析的越仔细越好。Step2、制定程序规格:程序要做什么?主要关注能完成什么,而非程序怎么运行。例如,对于简单程序,我们只要描述输入输出,然后看他们是怎么关联的即可。Step3、算法设计:描述怎么做。阐明程序的整个框架结构。考虑程序如何运行,

设计适合于上述规格的算法。一般用伪代码给出总体结构,不纠缠细节。Step4、算法实现:用某种程序设计语言编写代码。Step5、测试与排错:测试程序是否如预期,排除bug(debug)。Step6、维护程序:运行中还会不断有问题,如持续开发、程序的改进等。什么是好的程序解决同一个问题,可以设计出多

种处理过程,即编制多种程序。即使各种程序都正确。仍然有好坏之分。除了正确性,好的程序应该是:效率高易理解易维护可扩展如何得到好的程序手工作坊阶段靠的是个人编程技巧如今则要善于依靠程序设计方法和工具方法:结构化方法,模块化方法,面向对象方法等工具:建模工具,集成开发环境等编

程案例:求最大值(1)考虑求三个数x1,x2,x3的最大值的问题策略1:每个数都与其他数比较大小ifx1>=x2andx1>=x3:max=x1elifx2>=x1andx2>=x3:max=x2

else:max=x3此算法中各分支彼此独立。但实际上一个分支的信息对其他分支是有用的!此算法不适合较大n的情况编程案例:求最大值(2)策略2:判定树ifx1>=x2:ifx1>=x3:max=x

1else:max=x3else:ifx2>=x3:max=x2else:max=x3好处:只需两次比较,效率高.坏处:结构复杂,复杂度随n爆炸式增长.编程案例:求最大值(3)策略3:顺序处理,记录当前最大值。max=x1ifx2>=max:

max=x2ifx3>=max:max=x3效率高易读易理解可扩展到nn=input("Howmanynumbers?")max=input("Inputanumber:")foriinrange(n-1):x=inpu

t("Inputanumber:")ifx>max:max=xprint"max=",max编程案例:求最大值(4)策略4:利用现成代码。Python提供内建函数max(x1,x2,...,xn)>>>x1,x2,x3=input("enter

3numbers:")>>>print"max=",max(x1,x2,x3)小结给定问题,有多种解决方法不要只凭第一感匆忙编程,要多考虑是否有更好算法;首先要正确,其次要结构清晰、高效、可扩展,漂亮。问自己会如何解决问题

追求一般性借鉴,重用现成算法补充:有条件地执行程序回顾Python模块的执行:模块最后一行的main()就是启动程序的语句执行方式:Windows下双击模块图标编辑状态下runDOS命令行下:python<myfile>.py在会话或其他程序中import并执行库:import一个库

时,一般没有直接执行其中的函数,而是通过点运算符调用某函数时才执行模块中没有main()一行被其他程序import但不执行有条件执行程序混合型模块:既能作为独立程序直接执行,又能作为库被其他程序import而不执行,利用的知识如下:•import一个模块时,Python将该模块中

的一个特殊变量__name__设置为该模块的名字;例如importpiechart__name__=‘piechart’•直接执行模块时,__name__被设置为’__main__’有条件执行程序#convert.

py#AprogramtoconvertCelsiustempstoFahrenheit#by:SusanComputewelldefmain():celsius=input("WhatistheCelsiustemperature?")fahrenheit=(9.0/5.0)*

celsius+32print"Thetemperatureis",fahrenheit,"degreesFahrenheit."if__name__=='__main__':main()debug.py文件中代码如左下图,test.py文件

中的代码如右下图文件,且debug.py和test.py位于同一文件夹中,那么运行test.py的输出结果是什么?A.debugB.__name__C.testD.__main__#code2:test.pyimportdebugif__name__=='__main

__':debug.out()#code1:debug.pydefout():print__name__第三章课堂作业(1)读程序写结果:defmain():a=[50,75,53,92,77,64,79,21]s=[0]*10foriinrange(len(a)):k=a[i]/10s[k]

=s[k]+1m=s[0]k=1whilek<10:ifs[k]!=0:print"%d#"%(s[k]),ifs[k]>m:m=s[k]k+=1print"%d"%(m)(2)编程:输入年份,输出该年是否

闰年。提示:如果年份能被4整除,并且当它能被100整除的时候也能被400整除,则该年是闰年。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?