python编程控制结构是_Python编程基础06:认识程序控制结构

一、程序控制结构

程序控制结构是指以某种顺序执行的一系列动作,用于解决某个问题。理论和实践证明,无论多复杂的算法均可通过顺序、选择、循环3种基本控制结构构造出来。每种结构仅有一个入口和出口。由这3种基本结构组成的多层嵌套程序称为结构化程序。

二、结构化程序设计

(一)结构化基本原则

1、自顶向下

程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。

2、逐步求精

逐步求精是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础。将现实问题经过几次抽象(细化)处理,最后到求解域中只是一些简单的算法描述和算法实现问题。即将系统功能按层次进行分解,每一层不断将功能细化,到最后一层都是功能单一、简单易实现的模块。求解过程可以划分为若干个阶段,在不同阶段采用不同的工具来描述问题。在每个阶段有不同的规则和标准,产生出不同阶段的文档资料。

3、模块化

一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。

4、限制使用goto语句

在程序比较简单是用goto语句是比较灵活,但是当程序比较复杂时很容易造成程序流程的混乱。利用goto语句对以后的后别人看程序是很难理解。调试程序的过程也会变得很困难。

注意:C语言和Java语言保留了goto关键字,而Python语言没有goto关键字。

(二)三种流程控制结构

1、顺序结构(Sequence Structure)

2、选择结构(Selection Structure)

3、循环结构(Loop Structure)

(1)前测试条件循环

前测试条件循环:先检票后上车(有可能一次循环操作也不执行)

(2)后测试条件循环

后测试条件循环:先上车后检票(无论如何至少要执行一次循环操作)

注意:C语言和Java语言提供了前测试和后测试循环结构,但是Python语言只有前测试循环结构

二、顺序结构

有一个入口和一个出口,按从上向下依的顺序执行各语句。

(一)顺序结构示意图

(二)顺序结构案例演示

任务1、计算三角形面积

利用海伦公式计算三角形面积

三边为a , b , c a, b, ca,b,c,半周长 p = a + b + c 2 p=\displaystyle \frac{a+b+c}{2}p=2a+b+c​

面积a r e a = p ( p − a ) ( p − b ) ( p − c ) area=\displaystyle \sqrt{p(p-a)(p-b)(p-c)}area=p(p−a)(p−b)(p−c)​

编写程序 - 计算三角形面积.py

# -*- coding: utf-8 -*-

"""

功能:计算三角形面积

作者:华卫

日期:2020年11月9日

"""

from math import sqrt

a = float(input('a = '))

b = float(input('b = '))

c = float(input('c = '))

p = (a + b + c) / 2

area = sqrt(p * (p - a) * (p - b) * (p - c))

print('area = {:.2f}'.format(area))

运行程序,查看结果

再运行程序,查看结果

任务2、求解一元二次方程

对于一元二次方程a x 2 + b x + c = 0 ax^2+bx+c=0ax2+bx+c=0

假设二次项系数 a ≠ 0 a≠0a​=0

判别式 Δ = b 2 − 4 a c \Delta=b^2-4acΔ=b2−4ac

x 1 = − b + Δ 2 a \quad x_1=\displaystyle \frac{-b+\sqrt{\Delta}}{2a}x1​=2a−b+Δ​​

x 2 = − b − Δ 2 a \quad x_2=\displaystyle \frac{-b-\sqrt{\Delta}}{2a}x2​=2a−b−Δ​​

编写程序 - 求解一元二次方程.py

# -*- coding: utf-8 -*-

"""

功能:求解一元二次方程

作者:华卫

日期:2020年11月9日

"""

from math import sqrt

a = float(input('a = '))

b = float(input('b = '))

c = float(input('c = '))

delta = b**2 - 4 * a * c

x1 = (-b + sqrt(delta)) / (2 * a)

x2 = (-b - sqrt(delta)) / (2 * a)

print('x1 = {}\nx2 = {}'.format(x1, x2))

运行程序,查看结果

再运行程序,查看结果

(三)顺序结构小结

顺序结构很简单,按照语句书写次序,依次从上往下执行。上述两个案例,大家可以看到,遇到不能求解的情形,就会抛出一个错误(ValueError……),那并不是我们想要的结果。

我们需要事先对能否求解进行判断,如果能求解,那么我们就计算给出结果;如果不能求解,我们就给出相应提示,告诉用户不能求解,这样处理,对用户比较友好。怎么根据情况不同来执行不同的操作呢?这就是我们下一讲的内容——选择结构。

本文分享 CSDN - howard2005。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值