作者:linxin66063 | 来源:互联网 | 2023-09-18 19:55
完整的 for 循环语法
- 在
Python
中完整的 for 循环
的语法如下:
for 变量 in 集合:循环体代码
else:没有通过 break 退出循环,循环结束后,会执行的代码
应用场景
- 在 迭代遍历 嵌套的数据类型时,例如 一个列表包含了多个字典
- 需求:要判断 某一个字典中 是否存在 指定的 值
- 如果 存在,提示并且退出循环
- 如果 不存在,在 循环整体结束 后,希望 得到一个统一的提示
students = [{"name": "阿土","age": 20,"gender": True,"height": 1.7,"weight": 75.0},{"name": "小美","age": 19,"gender": False,"height": 1.6,"weight": 45.0},
]find_name = "阿土"for stu_dict in students:print(stu_dict)if stu_dict["name"] == find_name:print("找到了")breakelse:print("没有找到")print("循环结束")
append和extend
append会把完整的元素添加进列表,比如可以把一个字典添加到列表的末尾;
extend会把元素拆开成单个元素后添加到列表的末尾。
LINUX 上的 Shebang
符号(#!
)
#!
这个符号叫做 Shebang
或者 Sha-bang
Shebang
通常在 Unix
系统脚本的中 第一行开头 使用- 指明 执行这个脚本文件 的 解释程序
使用 Shebang 的步骤
-
- 使用
which
查询 python3
解释器所在路径
$ which python3
-
- 修改要运行的 主 python 文件,在第一行增加以下内容
-
- 修改 主 python 文件 的文件权限,增加执行权限
$ chmod +x cards_main.py
./cards_main.py
example
我在程序的开头添加这一行
就能通过"./"来执行程序
而不必再在前面加上"python"
函数不能直接修改 全局变量的引用
- 全局变量 是在 函数外部定义 的变量(没有定义在某一个函数内),所有函数 内部 都可以使用这个变量
提示:在其他的开发语言中,大多 不推荐使用全局变量 —— 可变范围太大,导致程序不好维护!
在函数内部可以通过global声明修改全局变量的值
- 如果在函数中需要修改全局变量,需要使用
global
进行声明 - global 关键字会告诉解释器,后面的变量是一个全局变量
代码结构示意图(建议顺序)
全局变量命名的建议
- 为了避免局部变量和全局变量出现混淆,在定义全局变量时,有些公司会有一些开发要求,例如:
- 全局变量名前应该增加
g_
或者 gl_
的前缀
提示:具体的要求格式,各公司要求可能会有些差异。所以在进入公司时可以询问领导对全局变量的命名有什么要求,显得自己更有开发经验。
面试题 —— +=
- 在
python
中,列表变量调用 +=
本质上是在执行列表变量的 extend
方法,不会修改变量的引用
def demo(num, num_list):print("函数内部代码")num += numnum_list += num_listprint(num)print(num_list)print("函数代码完成")gl_num = 9
gl_list = [1, 2, 3]
demo(gl_num, gl_list)
print(gl_num)
print(gl_list)
函数的递归
函数调用自身的 编程技巧 称为递归
1 递归函数的特点
特点
- 一个函数 内部 调用自己
- 函数内部可以调用其他函数,当然在函数内部也可以调用自己
代码特点
- 函数内部的 代码 是相同的,只是针对 参数 不同,处理的结果不同
- 当 参数满足一个条件 时,函数不再执行
- 这个非常重要,通常被称为递归的出口,否则 会出现死循环!
示例代码
def sum_numbers(num):print(num)if num == 1:returnsum_numbers(num - 1)sum_numbers(3)
2 递归案例 —— 计算数字累加
需求
- 定义一个函数
sum_numbers
- 能够接收一个
num
的整数参数 - 计算 1 + 2 + … num 的结果(关键点就是假设前n+1项和1+2+…+n-1是成立的,所以就可以直接用n+前n-1项和来求出结果)
def sum_numbers(num):if num == 1:return 1temp = sum_numbers(num - 1)return num + tempprint(sum_numbers(3))
提示:递归是一个 编程技巧,初次接触递归会感觉有些吃力!在处理 不确定的循环条件时,格外的有用,例如:遍历整个文件目录的结构