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函数 -> 正文阅读

[Python知识库]python函数

1.函数的定义与调用

# 定义一个函数
def hello():
    print("hello world")

def hello_name(name):
    print("hello", name)

def area(a, b):
    return a+b
# 调用函数
hello()
hello_name("siri")
print(area(2, 4))

2.参数传递

  • 可更改对象与不可更改对象

(1)在python中,类型属于对象,变量是没有类型的,变量可以理解为是一个对象的引用,是一个指向对象的指针;

(2)可更改对象:数字、字符、元组,不可更改对象:列表、字典、集合;

(3)修改不可变对象的值时,实际上是重新生成了一个对象,原来的引用指向新生成的对象;

(4)修改可变对象的值时,实际上是直接修改了原来的值,引用没有变化;

(5)不可变对象传递参数时,传递过去的是他的值,在函数中修改这个值后,是新生成了一个对象,原来的变量还是指向原来的对象,所以原来的变量的值不会改变;

def test(b):
    print(id(b))
    b = b/2
    print(id(b))


a = 1
print(id(a))
test(a)
C:\Users\max\Desktop\pythonStudy\venv\Scripts\python.exe C:/Users/max/Desktop/pythonStudy/demo.py
140707870840480
140707870840480
2393646856240

进程已结束,退出代码 0

(6)可变对象传递参数时,传递过去的是他本身,修改后这个变量的值也会改变。

def test(b):
    print(id(b))
    b[0] = 2
    print(id(b))


a = [1, 2]
print(id(a))
test(a)
C:\Users\max\Desktop\pythonStudy\venv\Scripts\python.exe C:/Users/max/Desktop/pythonStudy/demo.py
1631128189056
1631128189056
1631128189056

进程已结束,退出代码 0
  • 调用函数时参数种类

(1)必须参数

必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。

(2)关键字参数

关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。

def print_it(name, age):
    print(name, "is", age)


# 使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值
print_it(age=8, name="Berry")
C:\Users\max\Desktop\pythonStudy\venv\Scripts\python.exe C:/Users/max/Desktop/pythonStudy/demo.py
Berry is 8

进程已结束,退出代码 0

(3)默认参数

调用函数时,如果没有传递参数,则会使用默认参数。

def print_it(name, age=18):
    print(name, "is", age)


print_it("Berry")
C:\Users\max\Desktop\pythonStudy\venv\Scripts\python.exe C:/Users/max/Desktop/pythonStudy/demo.py
Berry is 18

进程已结束,退出代码 0

(4)不定长参数

# 加了星号*的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数
def print_it1(*num):
    print(num)


# 加了两个星号**的参数会以字典的形式导入
def print_it2(**num):
    print(num)


# 声明函数时,参数中星号*可以单独出现,单独出现星号*后的参数必须用关键字传入
def print_it3(*, c):
    print(c)


# 可以不传递变量
print_it1()
print_it1(1, 2, 3)
print_it2()
print_it2(a=1, b=2, c=3)
print_it3(c=1)
C:\Users\max\Desktop\pythonStudy\venv\Scripts\python.exe C:/Users/max/Desktop/pythonStudy/demo.py
()
(1, 2, 3)
{}
{'a': 1, 'b': 2, 'c': 3}
1

进程已结束,退出代码 0

(5)强制位置参数

  • ?python3.8新增了一个函数形参语法 / 用来指明函数形参必须使用指定位置参数,不能使用关键字参数的形式。

3.匿名函数

  • python 使用 lambda 来创建匿名函数

(1)lambda 只是一个表达式,函数体比 def 简单很多。

(2)lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

(3)lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。

(4)虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

sum = lambda a, b: print(a+b)
sum(1, 2)

4.return语句?

  • 用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。
def test():
    pass


print(test())  # None
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 07:53:56  更:2021-11-24 07:55:10 
 
开发: 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年12日历 -2024/12/27 21:01:17-

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