一、程序流程图

1.用规定的一系列图形、流程线和文字说明算法从开始到结束全部步骤,包括基本操作和控制流程。

2.流程图的基本元素包括:

1) 表示相应操作的框

2) 带箭头的流程线

3) 框内必要的文字说明

3.设计程序框图的步骤:

第一步:用自然语言表述算法步骤;

第二步:确定每一个算法步骤所包含的逻辑结构,并用相应的程序框图表示,得到该步骤的程序框图;

第三步:将所有步骤的程序框图用流程线连接起来,并加上终端框,得到表示整个算法的程序框图。

4.任何算法(程序)都可以由顺序结构、选择结构和循环结构这三种基本结构组合来实现.

5.顺序结构流程图

这个图表示了语句是s1、s2按着箭头的自然顺序依次执行!

举例:温度转换程序流程图

6.选择结构:

选择结构也叫分支结构,是指在算法中通过对条件的判断,根据条件是否成立而选择不同流向的算法结构。

选择结构的形式如下:

两者的区别在于:单选择结构在条件不满足的条件下执行了空操作,而双选择结构则执行了S2操作!

7.循环结构:

循环结构是指在一定条件下反复执行某部分代码的操作,是程序设计中最能发挥计算机特长的程序结构!

两者区别是:当型循环先判断所给条件是否成立,如果成立执行循环体A,如此反复,直到不成立,退出循环!

直到型循环先执行A,再判断条件是否成立,如果不成立,再执行A,如此反复,直到条件成立,退出循环!

注意:python中不提供直到型循环结构的语句!在必要的时候我们可以通过一系列特殊的方法来构造直到型循环!

程序的三种结构图示例:

二、简单分支结构

下面是一些关系操作符的例子:

程序代码格式如下:

三、for循环:

1.python可以使用for语句循环遍历整个系列的值

for in :

在for循环中,循环变量var遍历了队列中的每一个值,循环的语句体为每个值执行一次。

words= ['cat','windows','sequence']

for w in words:

print(w,len(w))

结果如下:

('cat', 3)

('windows', 7)

('sequence', 8)

2.for循环-缺点:

1.程序开始时必须提供输入数字总数。

2.大规模数字求平均值需要用户先数清楚个数。

3.for循环需要提供固定循环次数

4.Python提供了另一种循环模式即无限循环,不需要提前知道循环次数。

3.无限循环:

1.语法: while语句

while :

2.while语句中是布尔表达式

3.

是一条或多条语句

当条件为真时,循环体重复执行

当条件为假时,循环体终止执行

i = 0

while i <10:

print(i)

i = i+1

1). 如果循环体忘记累加i,条件判断一直为真,循环体将一直执行,这就是所谓的死循环程序。

2). 这时通常使用-c来终止程序

4.for/while 的else、continue、break语句

break语句用于跳出最内层的while循环!

continue语句用于跳过本次循环语句,进入下一次循环语句,不是终止整个循环的执行!

else语句也可以和for循环语句搭配使用,else后面的表达式在没有break打断且for循环列表遍历完毕后,或者while循环语句条件不满足的情况下执行,这为我们程序编写提供了很大便利!

for n in range(2,10):

for x in range(2,n):

if n % x ==0:

print(n,"equals",x)

break

else:

#loop fell through without finding a factor

print(n,"is a prime number")

for x in range(2,10):

if 10 % x ==0:

print(10,"equals",x)

break

else:

#loop fell through without finding a factor

print(10,"is a prime number")

count = 2

while count <5 :

print("d")

count +=1

else:

#loop fell through without finding a factor

print(10,"is a prime number")

4.交互式循环

def main():

sum = 0.0

count = 0

moredata ="yes"

while moredata[0] == "y":

x = int(input("Enter a number: "))

sum = sum+x

count = count+1

moredata = input("Do you have more numbers (yes or no)?")

print(" The average of the number is",sum/count)

main()

注意:raw_input()函数和input()函数是有区别的:

这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError !

四、布尔表达式

#

if p1.getX() == p2.getX():

if p1.getY() == p2.getY():

#两点相同

else:

#两点不同

else:

#两点不同

像上面的比较p1和p2两点是不是在同一个点,也就是x值和y值是不是都相等,我们这里采用了嵌套的if判断,这种判断实际上是很不方便的,当有多个嵌套的条件判断时,就更加不方便!我们其实可以使用布尔

表达式and符号来代替这个决策结构!

布尔操作符:and ,or ,not

布尔运算符 and 和 or用于组合两个布尔表达式,并产生一个布尔结果!

and :只有and操作符两边都为真的时候,这个表达式才为真!

or : 只有or操作符两边都为假的时候,这个表达式才为假!,其它情况为真!

not : not运算符计算一个布尔表达式的反,not运算符是一个一元运算符!

布尔运算符和算数运算符,也有优先级规则,从高到底依次是:not and or!

a or not b and c == (a or ((not b) and c))

建议初学者给复杂的运算加上括号,防止混淆!

那么,上面的判断p1和p2两点是不是相同的时候,我们可以按着如下判断:

if p1.getX() == p2.getX() and p1.getY() == p2.getY():

#两点相同

else:

#两点不同

这样就会简洁不少!

计算机中所有的决策都可以理解为布尔表达式!指定、运用和理解这些表达式对程序员来说是一项重要技能!

布尔表达式遵循特定的代数定律,这些规律被称为布尔逻辑或布尔代数!

布尔代数规则:

从上面可以看出 and 与*号相似,而or与+号相似!

1. 任何数据和true进行"or"操作都为真

a or true == true

2. and 和 or操作符都符合分配率

a or (b and c ) == (a or b) and (a or c)

a and (b or c) == (a and b) or (a and c)

3.not操作符具有负负抵消的特性。

not(not a) == a

4.德摩根定律,not放进表达式后,and和or运算符之间发生的变化。

not (a or b) == (not a) and (not b)

not (a and b) == (not a) or (not b)

布尔代数的应用是简化程序内的布尔表达式:

1.布尔代数的应用

while not(scoreA == 15 or scoreB ==15):

#比赛继续

2.通过使用布尔代数,可以转换上面这个表达式。应用德摩根定律,其等价于表达式:

(not scoreA ==15) and (not scoreB == 15)

也就是如果A的分数不是15并且B的分数也不是15就继续比赛!

注意:使用not的分配率时,or和and的转变!

注意:在python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False

对于数字(整型和浮点型)的零值被认为是false,任何非零值都是true.

bool类型仅仅是一个特殊的整数,可以通过计算表达式True + True 的值来测试一下!

print(True+True)

结果为:2

python中的布尔表达式是短路值,也就是说,当知道这个表达式的结果为True或者False的时候就不会继续算下去了!也就是在and运算符中只要知道and左侧为假,在or运算符中,只要知道or的左侧为真,python就不会去评估第二个表达式!

python流程图基本元素-2-2:python之控制结构相关推荐

  1. python流程图基本元素-python | 控制流语句-顺序结构与分支结构

    1 程序流程图 程序流程图是指用一系列图形.流程线和文字说明描述程序的基本操作和控制流程,它是程序分析和过程描述的最基本方式.流程图基本元素共有7种,其中,连接点将多个流程图连接在一起,常用于将较大的 ...

  2. python流程图基本元素-Python初学(十一)

    前面几章说了下python的基本数据类型,接下来要说的是程序的控制结构. 知识导图 这些就是要讲的内容 程序的基本结构 程序的流程图: 程序流程图用一系列图形.流程线和文字说明描述程序的基本操作和控制 ...

  3. python流程图怎么画-画Python代码的数据流程图

    import turtle import random from turtle import * from time import sleep # 画樱花的躯干(60,t) def tree(bran ...

  4. Python 流程图 — 一键转化代码为流程图

    Graphviz是一个可以对图进行自动布局的绘图工具,由贝尔实验室开源.我们在上次 Python 快速绘制画出漂亮的系统架构图 提到的diagrams,其内部的编排逻辑就用到了这个开源工具包. 而今天 ...

  5. python中实现多路分支的最佳控制结构是_python程序设计答案

    [单选题]for i in range(0,2): print(i) 哪个选项是以上程序的输出结果? (4.0分) [简答题]定义一个类代表三角形,类中包含三条边.求周长的函数.求面积的函数. (30 ...

  6. 零基础自学python教程-零基础学Python不迷茫——基本学习路线及教程

    什么是Python? 在过去的2018年里,Python成功的证明了它自己有多火,它那"简洁"与明了的语言成功的吸引了大批程序员与大数据应用这的注意,的确,它的实用性的确是配的上它 ...

  7. python考证书-计算机二级 Python 怎么考?考什么?

    2020.09.26更新:今天的二级python最后一个大题考试内容(部分),没考试的同学大家还可以最后挣扎一下. /> ==================================== ...

  8. 转行学python后悔了-转行学Python可以吗?

    相信对于每个人而言,知道编程和学习编程这件事,出发点是不同的.我在北京接触编程的时间是2013年,那个时候还在一个二线城市上大学,还没有这么多各种融资,各种互联网创业的氛围,大家想的更多的是一些线下的 ...

  9. python去哪里学-学Python从哪里开始?

    相信对于每个人而言,知道编程和学习编程这件事,出发点是不同的.我在北京接触编程的时间是2013年,那个时候还在一个二线城市上大学,还没有这么多各种融资,各种互联网创业的氛围,大家想的更多的是一些线下的 ...

最新文章

  1. 何不用python_EXCEL数据太“脏”无从下手?何须用python,ETL一分钟搞定
  2. 独家 | R语言中K邻近算法的初学者指南:从菜鸟到大神(附代码&链接)
  3. graphpad做折线图坐标轴数字_多组数据制作折线图,四步让你的图表实用又美观,老板看了都说好...
  4. 快速生成NHibernate的映射文件和映射类的利器 —— codesmith软件
  5. 浅谈手机游戏测试的要点
  6. Flask和mysql多线程_数据库连接池Flask-SQLAlchemy中多线程安全的问题
  7. html鼠标悬停盒子凸起,css3 transform动画鼠标悬停div容器凸起放大显示
  8. {转载}非程序员的GNU Emacs使用心得
  9. oracle学习笔记(十三) 查询练习(三) 子查询查询
  10. C#中IListT与ListT的区别感想
  11. MobaXterm 中文乱码问题
  12. 如何获取b站、YouTube等网站的视频封面
  13. 电脑有弹窗广告怎么办?真实个人经验分享
  14. 算法工程师与java_java算法工程师的职责是什么?前景如何?
  15. MCS-51单片机结构学习总结
  16. 多可文档管理迁移说明
  17. 大数据开发都需要掌握哪些编程语言
  18. 【车间调度】基于改进帝国企鹅算法求解车间调度问题附matlab代码
  19. unity2D横版游戏教程10-场景控制
  20. 00后南航大二学生自制火箭,成功发射后回收

热门文章

  1. r语言中mpg数据_R语言数据筛选整理包dplyr
  2. python tcp server_python scoket 编程 | tcp server client - 简明教程
  3. python读excel字体颜色_无法使用python xlsxwri更改excel中的字体颜色
  4. 开发日记-20190518 关键词 函数式编程(二)
  5. flutter学习(排雷)一
  6. MLPclassifier,MLP 多层感知器的的缩写(Multi-layer Perceptron)
  7. 使用Networkx进行图的相关计算——黑产集团挖掘,我靠,可以做dns ddos慢速攻击检测啊...
  8. typescript 入门例子 Hello world——ts就是一个宿主机语言
  9. Linux系统管理技术
  10. Java面向接口编程,低耦合高内聚的设计哲学