一、程序流程图

1.用规定的一系列图形、流程线和文字说明算法从开始到结束全部步骤,包括基本操作和控制流程。
2.流程图的基本元素包括:
  1)  表示相应操作的框
  2) 带箭头的流程线
  3) 框内必要的文字说明

3.设计程序框图的步骤:
第一步:用自然语言表述算法步骤;
第二步:确定每一个算法步骤所包含的逻辑结构,并用相应的程序框图表示,得到该步骤的程序框图;
第三步:将所有步骤的程序框图用流程线连接起来,并加上终端框,得到表示整个算法的程序框图。

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

5.顺序结构流程图

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

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

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

选择结构的形式如下:

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

7.循环结构:

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

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

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

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

程序的三种结构图示例:

二、简单分支结构

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

程序代码格式如下:

三、for循环:

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

for <var> in <sequence>:
<body>

在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 <condition>:
<body>

2.while语句中<condition>是布尔表达式
3.<body>是一条或多条语句
  当条件<condition>为真时,循环体重复执行
  当条件<condition>为假时,循环体终止执行

i = 0
while i <10:
print(i)
i = i+1

  1). 如果循环体忘记累加i,条件判断一直为真,循环体将一直执行,这就是所谓的死循环程序。
  2). 这时通常使用<Ctrl>-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("\nThe 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用于组合两个布尔表达式,并产生一个布尔结果!
<expr> and <expr> :只有and操作符两边都为真的时候,这个表达式才为真!
<expr> or <expr> : 只有or操作符两边都为假的时候,这个表达式才为假!,其它情况为真!

not <expr>: 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就不会去评估第二个表达式!

  

 

2-2:python之控制结构的更多相关文章

  1. Python的控制结构(转)

    首先我的工作第一语言是c/c++(面向对象子集).选择学习python一方面是因为看很多人都说python开发效率高,所以想验证一下:另一方面,Eric S. Raymond在文章:如何成为一名黑客 ...

  2. Python入门 - 控制结构

    python控制结构有:for循环, while循环, if条件语句,下面我们直接上代码. 一.for循环 a = range(5) for x in a : print(x) 0 1 2 3 4二. ...

  3. 2、Python程序控制结构(0530)

    条件测试: 1.if 条件测试表达式 python的比较操作 1.所有的python对象都支持比较操作 可用于测试相等性.相对大小等: 如果是符合对象,python会检查其所有部分,包括自动遍历各级嵌 ...

  4. python程序控制结构

    一:顺序结构 顺序结构的程序是指程序中的所有语句都是按照书写顺序逐一执行的,但是顺序结构的程序功能有限. 二:选择结构 选择结构也称为分支结构,用于处理在程序中出现两条或更多执行路径可供选择的情况.选 ...

  5. Python学习笔记(四)Python程序的控制结构

    在学习了 Python 的基本数据类型后,我们就要开始接触Python程序的控制结构,了解 Python 是如何使用控制结构来更改程序的执行顺序以满足多样的功能需求.如果有的小伙伴在之前学过C语言,j ...

  6. Python学习手册之函数和模块

    在上一篇文章中,我们介绍了 Python 的控制结构,现在我们介绍 Python 函数和模块. 查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/9976234 ...

  7. python在linux下的使用

    1.查看python(解释器)的版本(什么版本的解释器支持哪一版版的语言标准) 一般在linux上已经预装了python,只要在Bash Shell中输入python,即可看到如下版本信息: 按Ctr ...

  8. python中if语句和循环语句

    //2019.12.05 python循环控制结构(一)控制循环结构 1-1 程序的判断语句与组合1.对于python的控制结构主要有以下三大类:(1)分支结构(2)循环结构(3)异常处理 2.pyt ...

  9. 华南理工大学 Python第4章课后小测-1

    1.(单选)下面程序的输出结果是: for c in "ComputerScience": print(c,end="") if c=="S" ...

随机推荐

  1. 查找->静态查找表->折半查找(有序表)

    文字描述 以有序表表示静态查找表时,可用折半查找算法查找指定元素. 折半查找过程是以处于区间中间位置记录的关键字和给定值比较,若相等,则查找成功,若不等,则缩小范围,直至新的区间中间位置记录的关键字等 ...

  2. Oracle shrink table

    shrink必须开启行迁移功能. alter table table_name enable row movement ; 在oracle中可以使用alter table table_name shr ...

  3. java之map的基本介绍

    map简介 在讲解Map排序之前,我们先来稍微了解下map.map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等.其中这四者 ...

  4. MySql left join 多表连接查询优化语句

    先过滤条件然后再根据表连接 同时在表中建立相关查询字段的索引这样在大数据多表联合查询的情况下速度相当快 创建索引: create index ix_register_year ON dbo.selec ...

  5. 搭建nginx服务器,虚拟主机,反向代理

    1 搭建Nginx服务器 1.1 问题 在IP地址为192.168.10. 5的主机上安装部署Nginx服务,并可以将Nginx服务器升级到更高版本,要求编译时启用如下功能: SSL加密功能 查看服务 ...

  6. 20170811 使用Bootstrap框架写个页面

    采用Bootstrap-table 做的页面. 1. 增加Query 查询功能,涉及Ajax 来加载页面数据吧! <meta charset="UTF-8">  < ...

  7. mysql 5.7配置项最详细的解释

    配置样例 首先提供一个我使用的配置样例 [client] #password=88888888 socket=/data/var/mysql/mysql.sock [mysqld_safe] pid- ...

  8. 使用python脚本实现统计日志文件中的ip访问次数

    使用python脚本实现统计日志文件中的ip访问次数,注意此脚本只适用ip在每行开头的日志文件,需要的朋友可以参考下 适用的日志格式: 106.45.185.214 - - [06/Aug/2014: ...

  9. 晨枫U盘启动盘制作工具V4.0-安装原版XP的方法

    [1]进入第一个PE后找到我们事先准备好的xp光盘iso镜像,右键点击加载虚拟磁盘(也可以利用虚拟光驱来加载或者直接用右键里的RAR解压到本地硬盘分区) [2]打开桌面上的windows安装工具,wi ...

  10. Spark History Server产生背景

    以standalone运行模式为例,在运行Spark Application的时候,Spark会提供一个WEBUI列出应用程序的运行时信息:但该WEBUI随着Application的完成(成功/失败) ...