IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python 函数 b站大学 -> 正文阅读

[Python知识库]python 函数 b站大学

  • 创建与调用
  • 内存
  • 返回值
  • 有默认值的参数
  • 参数个数可变
  • 参数传递
  • 参数传递顺序
  • 变量作用域
  • 递归
# ==================== 创建与调用
def cal(a,b):  # ab为形参
    c = a-b
    return c # 一个返回值,则返回其本身的数据类型

result = cal(3,2)  # 1020为实参
print(result)   # 1
result = cal(b=2,a=3) # =左侧为关键字参数
print(result)   # -1

# ==================== 理解内存
def fun(a,b):
    a = 66
    b.append(88)
    print(a,b)
    # return    # 无返回值,则可以省略

x = 12
y = [1,2,3]
fun(x,y)     # 66 [1,2,3,88]
print(x,y)   # 12 [1, 2, 3, 88]

# ==================== 返回值:eg:奇偶分类(再综合以上两个例子理解返回值)
def clasify(n):
    odd = []   # 存奇数
    even = []  # 存偶数
    for i in n:
        if i%2==0:
            even.append(i)
        else:
            odd.append(i)
    return odd,even  # 如果返回值为多个,则返回结果为元组

lst = [1,4,7,3,8,2,9,0]
print(clasify(lst))  # ([1, 7, 3, 9], [4, 8, 2, 0])

# ==================== 定义默认值参数
def fun(a,b=10):  # 参数b有了默认值
    print(a,b)

fun(100)   # 100 10
fun(20,30) # 20 30

# 类比:print
print('hello') # 默认 end='\n'
print('world')
print('hello',end='\t')
print('world')

# ==================== 参数个数可变(参数只能是一个)
def fun1(*args): # 个数可变的 位置形参,一个* 返回结果为元组
    print(args)

fun1(10)     # (10,)
fun1(1,2,3)  # (1, 2, 3)

def fun2(**args): # 个数可变的 关键字形参,两个* 返回结果为字典
    print(args)

fun2(a=10)           # {'a': 10}
fun2(a=1, b=2, c=3)  # {'a': 1, 'b': 2, 'c': 3}

# 类比 print 转定义,它是位置形参,所以
print('hello','world')

'''def fun3(**args1, *args2):
    pass  # error
    两种都有,只能把位置形参放前边
    '''
def fun3(*args1, **args2):
    pass

# ==================== 参数传递
def fun(a,b,c,d):
    print('a:',a)
    print('b:',b)
    print('c:',c)
    print('d:',d)

fun(1,2,3,4)         # 位置实参传递
fun(a=1,b=2,c=3,d=4) # 关键字实参传递
fun(1,2,d=4,c=3)     # 混合

def fun(a,b,*,c,d):  # * 规定*右边只能用关键字传递参数
    print('a:',a)
    print('b:',b)
    print('c:',c)
    print('d:',d)

fun(1,2,c=3,d=4)

def fun(a,b,c):
    print('a:',a)
    print('b:',b)
    print('c:',c)

fun(1,2,3)       # 位置传参
fun(a=1,c=3,b=2) # 关键字传参
lst=[1,2,3]
fun(*lst)    # 需把列表的每个元素转为位置实参
dict={'a':1,'b':2,'c':3}
fun(**dict)  # 需把字典的每个元素转为关键字实参

# ==================== 参数传递顺序
def fun(a,b,*,c,d,**args):
    pass
def fun(*args1,**args2):
    pass
def fun(a,b=10,*args,**args2):
    pass

# ==================== 变量作用域
def fun():
    global age  # 单独函数内定义的为局部变量,+global声明后变为全局变量
    age = 21
    print(age)

# print(age) # NameError: name 'age' is not defined
fun()
print(age)  # 只能fun()声明后才能调用age

# ==================== 递归函数 占内存
# 阶乘
def fac(n):
    if n==1:
        return 1
    else:
        return n*fac(n-1)

print(fac(3))

# 斐波那契数列
def feibo(n): # 第n项
    if n==1 or n==2:
        return 1
    else:
        res = feibo(n-1)+feibo(n-2)
        return res

# 输出第6位的数字
print(feibo(6))
# 输出前六位的数字
for i in range(1,7):
    print(feibo(i))
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:46:25  更:2021-08-02 10:47:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 8:47:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码