Python基础知识进阶(五---1)----程序基本结构、简单分支、异常处理、三大实例分析、基本循环结构、通用循环构造方法、死循环\嵌套循环、布尔表达式
程序基本结构、简单分支、异常处理、三大实例分析、基本循环结构、通用循环构造方法、死循环\嵌套循环、布尔表达式
1、程序基本结构
Python不支持直到型循环结构(可以通过特殊的方法,构造直到型循环结构)
简单条件构造:
简单条件基本形式: <expr><relop><expr>
<relop>是关系操作符<,<=,==,>,!=
使用“=”表示赋值语句,使用“==”表示等于
除数字外,字符或字符串也可以按照字典顺序用于条件比较
<condition>是布尔表达式,为bool类型,布尔值的真和假以字符串True和False表示
下面是求解二次方程的源程序
改进后版本,加入了判断语句
改进版
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》。未写完,明晚继续。多分支的决策方法
2017、9、29 继续学习 多分支
多分支决策
要解决双根问题,就需要对delta等于0的情况进行处理。语句的结构上要引入嵌套结构。
当delta<0,处理无实根情况,
当delta=0,处理实根情况
当delta>=0,处理双根情况。
一种解决方案是在程序中使用两个if——else语句。
把一个复合语句放到另一个语句中的结构之中成为嵌套。
下面是使用嵌套实现三分支结构决策的代码片段
if delta<0: print(Equation has no real roots) else: if delta ==0 : x=-b/(2*a) print("There is a double root at",x) else: #计算两个实根
此嵌套方案的流程图:
多分支决策:
多分支决策是解决复杂问题的重要手段之一。
一个三分支决策可以由两个二分支结构嵌套实现。
使用if-else描述多分支决策时,实现更多分支需要更多嵌套,影响程序的易读性。
》》》》Python使用if-elif-else描述多分支决策,简化分支结构的嵌套问题。
语句格式如下:
if <condition1>: <case1 statements> elif <condition2>: <case2 statements> elif<condition3>: <case3 statements> ... else: <default statements>
三分支程序:
改进后的程序流程图:
前面提及的空气质量提醒程序:(多分支)
《《《《《《《《《《《《《《《《《《《《《《《《《《《《异常处理》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
如果处理特殊情况的分支语句塞满整个代码空间,处理正常工作的主程序就显得不那么清晰易读了。因此引入异常处理机制,来解决这类问题。
异常处理机制使得程序设计语言可以编写代码来捕获和处理在程序运行发生的错误,而不是显示检查代码的每一步是否成功。
异常处理可以简单的理解为: 请做这些步骤,如果发生异常,按这样处理。
异常处理语句:
Python使用try...except...,可使程序不因运行错误而崩溃。
try:
<body>
except <ErrorType1>:
<handler1>
except <ErrorType2>:
<handler2>
except:
<handler0>
异常处理小例子:
异常处理语句:
Python的异常处理语句还可以使用else和finally关键字。
try:
<body>
except <ErrorType1>:
<handler1>
except <ErrorType2>:
<handler2>
except:
<handler0>
else:
<process_else>
finally:
<process_finally>
下面是利用try except的异常处理实例:
异常处理语句的优点:
try...except可以捕捉任何类型的错误。并提供一个稳定的出口
在二次方程求解中,还会有其他可能的错误,如:输入非数值类型(NameError),输入无效的表达式(SyntaxError)等。此时一个try语句可以匹配多个except来实现。
继续改进二次函数求根的函数,使之可以应对各种类型的错误。