Python第七课
重点:while循环,嵌套循环,函数基础
时间:2019年12月12日
课程:黑马Python基础-11章、12章、13章(112.03 - 141.6)
11.while 循环
112.3 单步调试while循环(03-循环:hm-02-第一个while循环)
熟悉循环的逻辑步骤
113.4 死循环的概念及解决方法
死循环:循环内部没有 修改循环的判断条件,导致循环持续进行,程序无法终止。
解决方法:加上计数器
114.5 Python中的赋值运算符
image-20191212113642284.png
115.6 程序技术从0开始
基础所有的程序语言都选择从0开始计数
因此,编写程序时,应该尽量养成习惯:除非需求的特殊要求,否则 循环 的计数都从0开始
119.4 偶数求和
while循环中添加if条件,i % 2 == 0时,进行计算。
13. 循环嵌套
120.1 break 关键字的应用场景
break
:某一天见满足时,退出循环,不再执行后续重复的代码
121.2 break 代码演练
演练:03_循环 hm_06_break
122.3 continue
关键字的应用场景
continue
:某一条件满足时,不执行后续重复的代码
注意:死循环
注意:break
和 continue
只针对 当前所在循环 有效
123.4 continue
代码演练
演练:03_循环 hm_07_continue
124.1 循环嵌套的基本语法
-
while
嵌套就是:while
里面还有while
while 条件 1:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
while 条件 2:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
处理条件 2
处理条件 1
125.2 使用字符串运算直接输出小星星
需求:在控制台连续输出五行 *
,每一行星号的数量依次递增
*
**
***
****
*****
03_循环 hm-08-打印小星星
126.3 【扩展】print 函数的结尾处理
知识点 对 print
函数的使用做一个增强
-
在默认情况下,
print
函数输出内容之后,会自动在内容末尾增加换行 -
如果不希望末尾增加换行,可以在
print
函数输出内容的后面增加, end=""
-
其中
""
中间可以指定print
函数输出内容之后,继续希望显示的内容 -
语法格式如下:
# 向控制台输出内容结束之后,不会换行
print("*", end="")
# 单纯的换行
end=""
表示向控制台输出内容结束之后,不会换行
128.2 循环嵌套小星星
row = 1
while row <= 5:
# 假设 python 没有提供字符串 * 操作
# 在循环内部,再增加一个循环,实现每一行的 星星 打印
col = 1
while col <= row:
print("*", end="")
col += 1
# 每一行星号输出完成后,再增加一个换行
print("")
row += 1
129.1 九九乘法表
思路和步骤
130.2 打印小星星
小星星取代乘法表
131.3 九九乘法表数据输出
# 定义起始行
row = 1
# 最大打印 9 行
while row <= 9:
# 定义起始列
col = 1
# 最大打印 row 列
while col <= row:
# end = "",表示输出结束后,不换行
# "\t" 可以在控制台输出一个制表符,协助在输出文本时对齐
print("%d * %d = %d" % (col, row, row * col), end="\t")
# 列数 + 1
col += 1
# 一行打印完成的换行
print("")
# 行数 + 1
row += 1
132.4 使用转义字符调整格式
字符串中的转义字符
-
\t
在控制台输出一个 制表符,协助在输出文本时 垂直方向 保持对齐 -
\n
在控制台输出一个 换行符
制表符 的功能是在不使用表格的情况下在 垂直方向 按列对齐文本
13. 函数基础
133.1 学习目标
- 函数的快速体验
- 函数的基本使用
- 函数的参数
- 函数的返回值
- 函数的嵌套调用
- 在模块中定义函数
134.2 函数的概念以及作用
- 所谓函数,就是把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用
- 函数的使用包含两个步骤:
- 定义函数 —— 封装 独立的功能
- 调用函数 —— 享受 封装 的成果
- 函数的作用,在开发程序时,使用函数可以提高编写的效率以及代码的 重用
135.3 函数的快速体验
演练步骤
- 新建
04_函数
项目 - 复制之前完成的 乘法表 文件
- 修改文件,增加函数定义
multiple_table():
- 新建另外一个文件,使用
import
导入并且调用函数
136.1 函数定义语法
def 函数名():
函数封装的代码
……
-
def
是英文define
的缩写 - 函数名称 应该能够表达 函数封装代码 的功能,方便后续的调用
-
函数名称 的命名应该 符合 标识符的命名规则
- 可以由 字母、下划线 和 数字 组成
- 不能以数字开头
- 不能与关键字重名
调用函数很简单的,通过 函数名()
即可完成对函数的调用
137.2 第一个函数演练
04_函数 hm_03_0第一个函数
139.4 先定义函数,后使用函数
思考:能否将 函数调用 放在 函数定义 的上方?
- 不能!
- 因为在 使用函数名 调用函数之前,必须要保证
Python
已经知道函数的存在 - 否则控制台会提示
NameError: name 'say_hello' is not defined
(名称错误:say_hello 这个名字没有被定义)
140.5【扩展】单步越过和单步进入
用 单步执行 F8 和 F7 观察以下代码的执行过程
- 定义好函数之后,只表示这个函数封装了一段代码而已
- 如果不主动调用函数,函数是不会主动执行的
- F8 Step Over 可以单步执行代码,会把函数调用看作是一行代码直接执行
- F7 Step Into 可以单步执行代码,如果是函数,会进入函数内部
141.6 函数的文档注释
- 在开发中,如果希望给函数添加注释,应该在 定义函数 的下方,使用 连续的三对引号
- 在 连续的三对引号 之间编写对函数的说明文字
- 在 函数调用 位置,使用快捷键
F1
可以查看函数的说明信息
注意:因为 函数体相对比较独立,函数定义的上方,应该和其他代码(包括注释)保留 两个空行