Python函数基础(三)
2021/9/16 22:37:48
本文主要是介绍Python函数基础(三),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录(PS:觉得不错请点赞收藏支持一下)
- 一、引用
- 1.1 入门
- 1.2 引用当作实参
- 二、递归
- 三、任务清单
一、引用
1.1 入门
在Python中,值是靠引用来传递来的。
# 用 id() 来判断两个变量是否为同一个值的引用 # 我们可以将 id 值理解为那块的内存地址 """ 1. 如果两个变量的值一样,则两个变量的内存地址一样,变量 a 和 变量 b 引用的是同一个 10 """ a = 10 b = a print(id(a)) # 2576104778320 print(id(b)) # 2576104778320 """ 2. 如果两个变量的值不一样,则两个变量的内存地址不一样 """ n1 = 20 n2 = 30 print(id(20)) # 1588465396624 print(id(30)) # 1588465396944 """ 3. int类型的值是不可变的 """ m1 = 1 m2 = m1 m1 = 2 print(id(m1)) # 2966472517968 print(id(m2)) # 2966472517936 """ 4. 列表是可变的 """ a = [10,20,30] b = a print(id(a)) # 1804906729216 print(id(b)) # 1804906729216 print('-----修改列表 a 之后---------') a.append(100) print(id(a)) # 1804906729216 print(id(b)) # 1804906729216
1.2 引用当作实参
""" 1. 调用 f1 函数时,传递了实参 n, 相当于 a = n,此时变量 a 和 n 引用同一个内存地址 2. 在函数内,通过 a += a, 改变了变量 a 的 值, 所以变量 a 和 n 是不同的内存地址 """ def f1(a): print(a) # 100 print(id(a)) # 2255722403280 a += a # 200 print(id(a)) # 2255722406544 n = 100 f1(n) """ 传列表实参,引用的内存地址是一样的,因为列表是可变的 """ def f1(a): print(a) # ['a','b'] print(id(a)) # 2553637375744 a += a # ['a','b','a','b'] print(id(a)) # 2553637375744 n = ['a','b'] f1(n)
二、递归
- 特点
- 函数内部自己调用自己
- 必须有出口
- 举例
""" 学递归前 计算 10 以内整数的累加的和 """ result = 0 for i in range(1,11): result += i print(result) # 55 """ 学递归后 计算 10 以内整数的和 """ def my_sum(n): if n == 1: return n return n + my_sum(n-1) print(my_sum(10)) # 55
三、任务清单
- 利用递归,将列表中的所有是列表类型的元素拆开,添加到一个新列表中,并返回这个新列表。
def f1(list1): list2 = [] for i in list1: # isinstance(变量名,类型) 函数, 判断某个变量是否是某个数据类型 if isinstance(i,list): list2.extend(f1(i)) else: list2.append(i) return list2 l1 = [10, 'b', 'c', ['d', 50, ['e', 70, [80, 'f']]], ['g', 100]] res = f1(l1) print(res) # [10, 'b', 'c', 'd', 50, 'e', 70, 80, 'f', 'g', 100]
这篇关于Python函数基础(三)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门