第四章:Python中程序的组织结构

一、程序的组织结构

1996年,计算机科学家证明了这样的事实,任何简单或复杂的算法都可以有顺序结构选择结构循环结构,这三种基本结构组合而成

1-4-1 程序的组织结构

二、顺序结构

  • 什么是顺序结构
    • 程序从上到下顺序地执行代码,中间没有任何的判断和跳转,直到程序的结束
  • 顺序结构流程图

1-4-2 顺序结构

  • 代码演示

    • 代码编写
    """把大象当冰箱一共需要几步"""
    print('---------程序开始------------')
    print('1.把冰箱打开')
    print('2.把大象放进去')
    print('3.关闭冰箱门')
    print('---------程序结束------------')
    
    • 结果分析
    ---------程序开始------------
    1.把冰箱打开
    2.把大象放进去
    3.关闭冰箱门
    ---------程序结束------------
    

三、对象的布尔值

Python中一切皆对象,所有对象都有一个布尔值

  • 获取对象的布尔值

    • 使用内置函数bool()
  • 以下对象的布尔值为False,其他对象的布尔值为True

    • False
    • 数值0
    • None
    • 空字符串
    • 空列表
    • 空元组
    • 空字典
    • 空集合
  • 代码演示

    • 代码编写
    # 测试对象的bool
    print("以下对象的布尔值为False")
    print(bool(False))  # False
    print(bool(0))  # False
    print(bool(0.0))  # False
    print(bool(None))  # False
    print(bool(""))  # False   空字符串
    print(bool([]))  # False   空列表
    print(bool(list()))  # False   空列表
    print(bool(()))  # False   空元组
    print(bool(tuple()))  # False  空元组
    print(bool({}))  # False   空字典
    print(bool(dict()))  # False   空字典
    print(bool(set()))  # False 空集合
    print("其他对象的布尔值为True")
    

四、分支结构(选择结构)

  • 什么是选择结构
    • 程序根据判断条件选择性的执行部分代码,明确的让计算机知道在什么条件下,该去做什么

4.1 单分支if结构

  • 中文含义
    • 如果…就…
      • 如果下雨,就带伞
  • 语法结构
if 条件表达式:
	条件执行体
  • 流程图

1-4-3 单分支结构流程图

  • 代码演示:取款操作

    • 代码编写
    """取款操作"""
    money = 1000  # 余额
    s = int(input("请输入取款金额:"))  # 取款金额
    # 进行判断,余额是否充足
    if money >= s:
        money = money - s
        print("取款成功,余额为:", money)
    

4.2 双分支if…else结构

  • 中文含义
    • 如果…不满足…就…
      • 如果下雨,就带伞,没下雨,就不带伞
  • 语法结构
if 条件表达式:
	条件执行体1
else
	条件执行体2
  • 流程图

1-4-4 双分支结构流程图

  • 代码演示:取款操作

    • 代码编写
    "从键盘录入一个数,编写程序需让计算机判断是奇数还是偶数"
    num = int(input("请输入一个整数:"))
    
    # 条件判断
    if num % 2 == 0:
        print(num, "为偶数")
    else:
        print(num, "为奇数")
    

4.3 多分支if…elif…else结构

  • 语法结构
if 条件表达式1:
	条件执行体1
elif 条件表达式2:
	条件执行体2
	....
elif 条件表示式N:
	条件执行体N
[else:]
	条件执行体N+1
  • 流程图

1-4-5 多分支结构流程图

  • 代码演示
"""从键盘录入一个整数升级,并判断
90-100  A
80-89   B
70-79   C
60-69   D
0-59    E
小于0或者大于100的数位非法数据(不是成绩的有效范围)"""
score = int(input("请输入一个成绩:"))
if 90 <= score <= 100:
    print("A")
elif 80 <= score <= 89:
    print("B")
elif 70 <= score <= 79:
    print("C")
elif 60 <= score <= 69:
    print("D")
elif 0 <= score <= 59:
    print("E")
else:
    print("非法数据")

4.4 if语句的嵌套

  • 语法结构
if 条件表达式1:
	if 内层条件表达式:
		内层条件执行体1
	else 内层条件执行体2:
else:
	条件执行体
  • 流程图

1-4-6 嵌套if构流程图

  • 代码演示
answer = input("您是会员吗?Y或N")
money = float(input("请输入你的购物金额:"))
if answer == "Y":
    print("会员")
    if money >= 200:
        print("付款金额为:",money*0.8)
    elif money>=100:
        print("付款金额为:", money * 0.9)
    else:
        print("不打折,付款余额为:、")
else:
    print("非会员")

4.5 条件表达式

  • 本质:if…else…的简写
  • 语法结构
x	if	判断条件	else	y	
  • 运算规则
    • 如果判断条件的布尔值为True,条件表达式的返回值为x否则条件表达式的返回值为False
  • 代码演示
"""从键盘录入两个整数,并判断大小"""
num_a = int(input("请输入第一个整数:"))
num_b = int(input("请输入第二个整数:"))
# 比较大小
"""if num_a >= num_b:
    print(num_a, "大于等于", num_b)
else:
    print(num_a, "小于", num_b)"""

print("使用条件表达式进入比较")
print(str(num_a) + "大于等于" + str(num_b) if num_a >= num_b else str(num_a) + "小于" + str(num_b))

4.6 pass语句

  • 什么是pass语句

    • 语句什么都不做,只是一个占位符,用在语法上需要语句的地方
  • 什么时候用

    • 先搭建语法结构,还没想好代码怎么写的时候
  • 可以和哪些语句一起使用

    • if语句的条件执行体
    • for-in语句的循环体
    • 定义函数时的函数体
  • 代码演示

answer = input("您是会员吗?:y/n")
if answer == "y":
    pass
else:
    pass
# 代码不会报错

五、循环结构

5.1 range()函数的使用

  • 用于生成一个整数序列

  • 创建range()对象的三种方式

    参数为左闭右开

    • range(stop):创建一个[0,stop]之间的整数序列,步长为1
    • range(start,stop):创建一个[start,stop]之间的整数序列,步长为1
    • range(start,stop,step):创建一个[start,stop,stop]之间的整数序列,步长为step
  • range函数的返回值是一个迭代器对象

  • range类型的优点:

    • 不管range对象表示的整数序列有多长,所有range对象占有的内存空间都是相同的
      因为仅仅需要存储start,stop和step只有当用到range对象时,才会去计算序列中的相关元素
  • innot in 判断整数序列中是否**存在(不存在)**指定的整数

  • 代码演示

# range创建的三种方式
"""第一种创建方式,只有一个参数"""
r = range(10)  # 默认从零开始,步长默认为1
print(r)
print(list(r))
"""第二种方式,给了两个参数"""
r2 = range(1, 10)
print(list(r2))

"""第三种方式,给了三个参数"""
r3 = range(1, 10, 2)
print(list(r3))

"""in 与 not in
判断指定的整数在不在序列中"""
print(10 in r3)
print(10 not in r3)

5.2 while循环

  • 语法结构
while	条件表达式:
	条件执行体(循环体)
  • 流程图

1-4-7 while循环流程图

  • 选择结构的if和循环结构的while的区别
    • if是判断一次,条件为True执行一次
    • while是判断N+1次,条件为True执行N次
  • while循环的执行流程(四步循环法)
    初始化的变量条件判断的变量改变的变量为同一个
    • 初始化变量
    • 条件判断
    • 条件执行体(循环体)
    • 改变变量
  • 代码演示
"""计算0到4的累加和"""
# 初始化变量
a = 0
sum = 0
# 条件判断
while a <= 4:
    # 条件执行体
    sum += a
    # 改变变量
    a += 1
print("和为:", sum)
  • 练习题:计算1到100之间的偶数和
"""代码1"""
# 初始化变量
a = 1
sum = 0
# 条件判断
while a <= 100:
    # 条件执行体
    if not bool(a % 2) :
        sum += a
    # 改变变量
    a += 1
print("1到100之间的偶数和为:", sum)

"""代码2"""
# 初始化变量
a = 1
sum = 0
# 条件判断
while a <= 100:
    # 条件执行体
    if a % 2 == 0:
        sum += a
    # 改变变量
    a += 1
print("1到100之间的偶数和为:", sum)

5.3 for-in循环

  • for-on循环概念
    • in 表达从(字符串、序列)中依次取值,又称为遍历
    • for-in遍历的对象必须是可迭代对象
  • 语法结构
for 自定义的变量 in 可迭代对象:
	循环体
  • 流程图

1-4-8 for-in循环流程图

  • 循环体内不需要访问自定义变量,可以将自定义变量替代为下划线
  • 代码演示
for item in "Python":
    print(item)

for i in range(0, 10):
    print(i)

# 如果在循环体中不需要使用到自定义变量,可将自定义变量写为_
for _ in range(5):
    print("人生苦短,我用Python")  # Python循环5次

"""使用for in 计算1到100之间的偶数和"""
sum = 0
for item in range(1, 101):
    if item % 2 == 0:
        sum += item
print("1到100的偶数和为:", sum)
  • 练习:输出1到999之间的水仙花数
"""输出100到999之间的水仙花数
水仙花数,举例
153=3*3*3+5*5*5+1*1*1"""
for item in range(100, 1000):
    ge = item % 10
    shi = item // 10 % 10
    bai = item // 100
    if item == ge ** 3 + bai ** 3 + shi ** 3:
        print(item)

5.4 break、continue、与else语句

5.4.1 break语句

  • 用于结束循环结构,通常与分支结构if一起使用、
  • 代码演示
"""从键盘录入密码,最多录入三次,如果正确就结束循环"""
for item in range(1, 4):
    pwd = input("请输入密码:")
    if pwd == "8888":
        break
    else:
        print("密码不正确")

5.4.2 continue语句

  • 用于结束当前循环,进入下一次循环,通常与分支结构中的if一起使用
  • 代码演示
"""输出1到50之前所有的倍数"""
for item in range(1, 51):
    if item % 5 != 0:
        continue
    print(item)

5.4.3 else语句

for item in range(3):
    pwd = input("请输入密码:")
    if pwd == "9999":
        print("密码正确")
    else:
        print("密码不正确")
else:
    print("对不起,三次机会已经用完")

5.5 嵌套循环

  • 嵌套循环
    • 循环结构中又嵌套了另外的完整的循环结构,其中内层循环作为外层循环的循环体执行
  • 代码演示
"""输出一个三行四列的矩形"""
for i in range(1,4):
    for j in range(1,5):
        print("*",end="\t")
    print()
    
"""输出一个9行的直角三角形"""
for i in range(1,10):
    for j in range(1,i):
        print("*",end="\t")
    print()
  • 二重循环中的break和continue
for i in range(1, 5):
    for j in range(1, 11):
        if j % 2 == 0:
            continue
        print(j,end="\t")
    print()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
随着国家大数据战略的深入实施,各行业智慧化建设急需数据分析人才和智能应用人才。智慧化简单来说是一个以机器替换人力的过程,而机器的“灵魂”是程序Python已经成为公认的驱动大数据智能应用的主流编程语言Python程序设计的书籍已经琳琅满目,每一本书都凝聚了作者对Python的理解和对程序设计的认识,都是作者编程开发和教学经验的总结,都折射出作者的专业背景。由于大数据专业学生对程序设计的要求不是很高,但又需要具备一定的计算思维能力,熟悉用程序进行数据分析的一般流程,因此程序设计教材要言不甚深、文不甚俗,既要覆盖相关技术,又不能面面俱到,注重对问题的分析和解释,用程序表达算法。鉴于此,我们编写了本书。 本书每一章的标题都以Python开头,凸显Python在各个部分都有其独特的编程理念和方法。与其他高级编程语言如C、C++和Java等相比,Python在数据的表示、处理和可视化方面都有绝对的优势。有编程基础的学习者在学习Python时最好能忘掉以往程序设计语言的语法,彻底转变观念,以全新的姿态融入到Python的编程特点和规律之。如变量定义、数据类型、数据结构、控制结构、类和对象、文件访问、数据分析和可视化,每一部分都有其特别之处,都值得我们重新认识,重新使用,重新熟悉。每一章开始的思维导图都是对本章技术脉络的梳理,开门见山地给学习者展示本章的知识和技术体系,以便学习者在学习过程始终能保持思路清晰和整体把握。每一章开头的本章导读都是编者多年来程序开发与设计教学经验的提炼与升华,都是对程序设计的理解和感悟,值得学习者深入领会。每一章开头的本章要点都是要求学习者深入理解的重要知识和熟练掌握的关键技术。每一章的小结都是对本章要点的具体解释,供学习者复习查询。 本书为河北省高等教育教学改革研究与实践项目“新工科背景下警务大数据应用专业人才培养模式与教学实践研究”(编号:2018GJJG450)的阶段性成果。 下面是本书的体系结构图。 第1章Python编程初步。学习本章,要了解Python作为一种计算机程序设计脚本语言,结合了解释性、编译性和互动性的特点;了解在Linux和Windows安装Python的方法;了解IDLE、PyCharm和Jupyter三种常用Python程序编辑环境。工欲善其事,必先利其器,通过对本章的学习,学习者可拥有一个强大的编程工具,从此开启数据分析编程之旅。 第2章Python语言基础。Python作为一门与计算机交流的编程语言,有着跟自然语言相似的特点:字、词、句、段落、篇章,以及相应的行文语法规则。学习本章,要理解程序行文的字词句,主要包括基本数据类型、常量和变量、运算符和表达式;理解程序的段落和篇章,主要包括常用内置函数、库函数和系统函数的使用;掌握程序的语法规则,主要包括常用的变量定义和标识符命名规则、语句组织成文编码规则等。这些都是程序设计的基础,学习者只有对此熟练掌握后,才能在后续的学习得心应手。 第3章Python组合数据类型。组合数据类型是Python语言区别于其他高级编程语言的一大特色,通过组合数据类型,省去了其他语言各种复杂数据结构的设计,给编程人员带来了极大的方便,这也是Python流行于数据分析领域的原因之一。学习本章,要熟练掌握Python组合数据类型(列表、元组、字符串、字典、集合)的创建、访问和常见基本操作,以及序列解包功能。 第4章 Python控制结构。针对物质随时间由简单向复杂、由低级向高级发展的顺序,Python语言有相应的顺序结构语句;针对物质运动发展的条件性,Python语言有相应的选择结构语句;针对物质运动的波浪式前进螺旋式上升规律,Python语言有相应的循环结构语句。学习本章,要从马克思主义自然哲学视角理解Python语言在描述物质运动规律时的表达方式;掌握用Python语言描述常用算法,解决一些基本问题的方式。 第5章 Python函数与模块。有些经常用到的能实现特定功能的代码块,我们总是不希望每次用到时都重写一遍,甚至不希望复制一遍,但又想重复使用。Python里这些经常重用的代码块以函数(Function)的形式被定义,每一次复用被称为函数调用,计算机依然要执行重用的代码。学习本章,要理解函数的概念,掌握定义函数的方法,深刻理解函数调用参数的传递(值传递、地址传递),理解变量的作用域(变量的作用范围或变量的生命周期),理解函数集合模块、包等概念,掌握模块和包的创建及使用方法。 第6章 Python面向对象程序设计。面向过程的程序设计方法难以保证程序的安全性和代码的可重用性,而面向对象的程序设计方法能够更好地提高大型程序的质量和开发效率,增强程序的安全性和提高代码的可重用性。学习本章,重在理解面向对象程序设计思想、类和对象的概念

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巧克力配酸奶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值