Python函数案例:分隔线演练-02-打印多条分隔线及需求变化处理
#16_从Python基础到实际使用(二)——Python基础(十六)——模块

## 1. 功能案例:分割线 Drill-02-打印多条分割线
### 1.功能案例:分割线钻-02-打印多条分割线
1) **要求 4**
* 定义一个函数,可以打印**5行**的分隔线。分隔线必须满足**要求 3**
2) **要求3**如下:
* 定义一个函数,可以打印分隔线的**任意次数的重复**。
````蟒蛇
def print_line(字符, 次数):
打印(字符*次)
````
### 2、提示:工作中应该冷静思考需求的变化,**不要轻易修改之前已经完成且可以正常执行的功能**!
### 3.需求4代码(先完成50+代码的打印,然后修改)
````蟒蛇
# dzs_09_打印多个分隔符.py
def print_line(字符, 次数):
打印(字符*次)
def print_lines():
行=0
当行 < 5 时:
打印行(“+”,50)
行+=1
打印行()
````
### 4. 示例
## 2.分隔线钻取-03-添加多行分隔线功能参数
### 1.功能案例:分割线钻-02-打印多条分割线
1) **要求 4**
* 定义一个函数,可以打印**5行**的分隔线。分隔线必须满足**要求 3**。
2) **要求3**如下:
* 定义一个函数,可以打印分隔线的**任意次数的重复**。
````蟒蛇
def print_line(字符, 次数):
print(字符*次)
````
### 2.要求4代码
````蟒蛇
# dzs_09_打印多个分隔符.py
def print_line(字符, 次数):
print(字符*次)
def print_lines():
行=0
当行 < 5 时:
打印行(“+”,50)
行+=1
def print_lines2(char2, times2):
行=0
当行 < 5 时:
print_line(char2, times2)
行+=1
print_lines2("=, 20)
打印行()
````
### 4. 示例
## 3.分隔线drill-04-[扩展]PyCharm为函数添加文档注释
### 1. 在 PyCharm 中,为函数添加文档注释,包括参数注释。
1)点击某个函数,如dzs_09_print multiple分隔线.py中的def print_lines2(char2, times2):
2) 点击函数左侧【黄色灯泡】小三角下的【插入文档字符串存根】。
3)在函数中添加注释如下:
````蟒蛇
def print_lines2(char2, times2):
"""打印多行分隔符
:param char2: 用于分隔行的分隔符
:param times2: 分隔线重复的次数
”“”
行=0
当行 < 5 时:
print_line(char2, times2)
行+=1
````
### 2.在PyCharm中,查看函数文档注释和参数注释
1)点击函数调用位置,如dzs_09_print multiple分隔符lines.py中的print_lines2("=", 20)。
2)点击【查看】下的【快速文档】即可查看。
3)也可以按快捷键Ctrl+Q直接查看。
4) 单击任意位置,注释就会消失。
## 4. 模块-01-概念介绍
### 1. 在模块中使用函数
> **模块是Python程序架构的核心概念**。
### 2. **模块**就像一个**工具包**。如果你想使用这个工具包中的工具,你需要**导入**这个模块。
### 3. 每个以扩展名“py”结尾的“Python”源代码文件都是一个**模块**。
### 4、模块中定义的**全局变量**和**函数**是模块可以提供给外界直接使用的工具。
## 5. Module-02-模块使用演练
### 1. python第一个模块体验
1) **步骤**:* 创建新的 `dzs_10_divider module.py`
* 复制`dzs_09_Print multiple seperators.py`的内容,**除了最后一行`print`代码**
* 添加字符串变量,如:name = "段子寿的个人博客"
````蟒蛇
name = "段子受的个人博客"
````
2)第2步:新建一个`dzs_10_experience module.py`文件,写入以下代码:
````蟒蛇
导入dzs_10_divider模块
dzs_10_separator 行 module.print_line("-", 80)
print(dzs_10_separator 模块.名称)
````
### 2.`dzs_10_separator module.py`代码
````蟒蛇
# dzs_10_divider模块.py
def print_line(字符, 次数):
"""打印单行分隔符
:param char: 用于分隔行的分隔字符
:param times: 分隔线重复的次数
”“”
打印(字符*次)
def print_lines(char, times, row2):
"""打印多行分隔符
:param char: 用于分隔行的分隔字符
:param times: 分隔线重复的次数
:param row2: 分隔行数
”“”
行=0
当行<行2时:
print_line(字符, 次数)
行+=1
name = "段子受的个人博客"
````
### 3.`dzs_10_experience module.py`代码
````蟒蛇
# dzs_10_experience模块.py
导入dzs_10_divider模块
dzs_10_separator 行 module.print_line("=", 70)
print(dzs_10_separator 模块.名称)
dzs_10_separator 行 module.print_lines("dzs168 ", 10, 3)
````
### 4.经验总结
1) 您可以在Python文件中**定义变量或函数**。
2) 然后使用`import`将这个模块导入到**另一个文件**中。
3) 导入后,可以使用`模块名称.变量`/`模块名称.函数`来使用本模块中定义的变量或函数。
> **模块**允许**已编写的代码**轻松**重用**!
### 5. 示例:
## 6. Module-03-模块名称也是一个标识符
### 1、模块名称也是一个标识符,所以需要遵循标识符规则。
1) 标识符可以由**字母**、**下划线**和**数字**组成。
2) **不能以数字开头**。
3) **不能与关键字同名**。
### 2.注意:
如果您命名以数字开头的 Python 文件,则无法在“PyCharm”中导入此模块。
## 7. Module-04-【科普】pyc文件可以提高程序执行速度
### 1.pyc文件(了解)
> `C` 的意思是`已编译` **已编译**。
### 2.查看Pyc文件**操作步骤**
1)浏览程序目录,你会发现一个`__pycache__`目录。
2)目录下会有一个`dzs_10_separator module.cpython-35.pyc`文件,`cpython-35`代表`Python`解释器的版本。
3) 这个`pyc`文件由Python解释器从**模块源代码**转换为**字节码**。
* `Python` 像这样保存**字节码**作为启动速度优化**。
### 3. **字节码**
1)`Python`在解释源程序时分为两步。
* 1.首先对源代码进行处理,**编译**生成二进制**字节码**。
* 2.然后对**字节码**进行处理,生成CPU可以识别的**机器码**。
2)获得模块的字节码文件后,下次运行程序时,如果自上次保存字节码以来源代码没有被修改过,Python将加载.pyc文件并跳过编译步骤。 。
3) 当`Python`重新编译时,它会自动检查源文件和字节码文件的时间戳。
4)如果再次修改源代码,下次运行程序时将自动重新创建字节码。
### 4.pyc文件图
## 8. 高级变量-01-确定学习目标
### 1.高级变量类型学习目标
* 列表
* 元组
* 字典
* 细绳
* 公共方法
*变量高级
### 2.Python中的数据类型可以分为**数值**和**非数值**
1) 数字型
* 整数类型(`int`)
* 浮点类型(`float`)
* 布尔类型(`bool`)
* True `True` `非零数字` - **非零表示 true**
* 假`假``0`
* 复数类型(`complex`)
* 主要用于科学计算,如:平面场问题、波动问题、电感电容等。
2)非数字类型
* 细绳
* 列表
* 元组
* 字典
### 3. 在`Python`中,所有**非数字变量**支持以下功能:
* 1.它们都是一个**序列**`序列`,也可以理解为**容器**。
* 2. **值** `[]`
* 3. **遍历** `for in`
* 4. **计算长度**、**最大/最小值**、**比较**、**删除**
* 5. **链接** `+` 和 **重复** `*`
* 6. **切片**
## 9.List-01-函数及定义方法
### 1.List:列表的定义
1)`List`(列表)是`Python`中**最常用的**数据类型,在其他语言中通常称为**数组**。
2)列表专门用来存储**一串信息**。
3) 列表用`[]`定义,**数据**用`,`分隔。
4) 列表的**索引**从“0”开始。
### 2.列表定义代码
````蟒蛇
name_list = ["zhangsan", "lisi", "wangwu"]
````
## 10.List-02-如何存储数据并从列表中获取值
### 1.什么是列表索引?
**Index**是数据在**List**中的位置号。 **索引**也可以称为**下标**。
> 注意:从列表中取值时,如果**超出索引范围**,程序会报错。
### 2. 栏目表示意图:
### 3.在ipython3中,演示列表数据存储和值示例
````蟒蛇
# 列出存储数据
name_list = ["zhangsan", "lisi", "wangwu"]
# 获取所有列表数据
姓名列表
# 取出张三
名称列表[0]
# 取出丽丝
名称列表[1]
# 删除王屋
名称列表[2]
# 下标超过就会报错
名称列表[3]
````
`请点击上一节中的相关链接:`
15_从Python基础到实际使用(2)——Python基础(15)——函数2