资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Conditional ExecutionChapter 3Python for Informatics: Exploring Informationwww.py4inf.comUnless otherwise noted, the content of this course material is licensed under a Creative Commons Attribution 3.0 License.http:/creativecommons.org/licenses/by/3.0/.Copyright 2010- Charles R. SeveranceConditional StepsOutput:SmallerFinisProgram:x = 5if x 20: print Biggerprint Finisx = 5X 20 ?print Biggerprint FinisYesYesComparison OperatorsBoolean expressions ask a question and produce a Yes or No result which we use to control program flowBoolean expressions using comparison operators evaluate to - True / False - Yes / NoComparison operators look at variables but do not change the variableshttp:/en.wikipedia.org/wiki/George_BooleRemember: “=” is used for assignment.Python Meaning= Greater than or Equal Greater than!= Not equalComparison Operatorsx = 5if x = 5 : print Equals 5if x 4 :print Greater than 4if x = 5 :print Greater than or Equal 5if x Preferences - Language Menu/Tab SettingsTextWrangler: TextWrangler - Preferences - Editor DefaultsPython cares a *lot* about how far line is indented. If you mix tabs and spaces, you may get “indentation errors” even if everything looks finePlease do this now while you are thinking about it so we can all stay sane.This will save you much unnecessary pain.x = 5if x 2 :print Bigger than 2print Still biggerprint Done with 2for i in range(5) :print iif i 2 : print Bigger than 2print Done with i, ix = 5if x 2 :# commentsprint Bigger than 2# dont matterprint Still bigger# but can confuse youprint Done with 2# if you dont line # them upincrease / maintain after if or fordecrease to indicate end of blockblank lines and comment lines ignoredMental begin/end squaresx = 5if x 2 :print Bigger than 2print Still biggerprint Done with 2for i in range(5) :print iif i 2 : print Bigger than 2print Done with i, ix = 5if x 2 :# commentsprint Bigger than 2# dont matterprint Still bigger# but can confuse youprint Done with 2# if you dont line # them upx 1print More than onex 1 :print More than oneif x 1print More than onex 1 :print More than oneif x 1print More than onex 1 :print More than oneif x 2print BiggeryesnoX = 4print Not biggerprint All DoneTwo-way using else :x = 4if x 2 :print Biggerelse :print Smallerprint All donex 2print BiggeryesnoX = 4print Smallerprint All DoneTwo-way using else :x = 4if x 2 :print Biggerelse :print Smallerprint All donex 2print BiggeryesnoX = 4print Smallerprint All DoneMulti-wayif x = 2 : print Two or moreelse :print Something elseWhich will never print?The try / except StructureYou surround a dangerous section of code with try and except.If the code in the try works - the except is skippedIf the code in the try fails - it jumps to the except section$ cat notry.py astr = Hello Bobistr = int(astr)print First, istrastr = 123istr = int(astr)print Second, istr$ python notry.py Traceback (most recent call last):File notry.py, line 2, in istr = int(astr)ValueError: invalid literal for int() with base 10: Hello BobThe program stops hereAllDone SoftwareInputDevicesCentralProcessingUnitMainMemoryOutputDevicesSecondaryMemoryGenericComputer$ cat tryexcept.py astr = Hello Bobtry:istr = int(astr)except:istr = -1print First, istrastr = 123try:istr = int(astr)except:istr = -1print Second, istr$ python tryexcept.py First -1Second 123When the first conversion fails - it just drops into the except: clause and the program continues.When the second conversion succeeds - it just skips the except: clause and the program continues.try / exceptastr = Bobastr = Bobtry:print Helloistr = int(astr)print Thereexcept:istr = -1print Done, istrprint Helloprint Thereistr = int(astr)print Done, istristr = -1Safety netSample try / except$ python trynum.py Enter a number:42Nice work$ python trynum.pyEnter a number:fourtytwoNot a number$rawstr = raw_input(Enter a number:)try: ival = int(rawstr)except: ival = -1if ival 0 : print Nice workelse: print Not a numberExerciseRewrite your pay computation to give the employee 1.5 times the hourly rate for hours worked above 40 hours.Enter Hours: 45Enter Rate: 10 Pay: 475.0475 = 40 * 10 + 5 * 15ExerciseRewrite your pay program using try and except so that your program handles non-numeric input gracefully.Enter Hours: 20 Enter Rate: nine Error, please enter numeric inputEnter Hours: forty Error, please enter numeric inputSummaryComparison operators = = !=Logical operators: and or notIndentationOne Way DecisionsTwo way Decisions if : and else :Nested DecisionsMultiway decisions using elifTry / Except to compensate for errorsShort circuit evaluations
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号