您的位置:首页 > 编程语言 > Python开发

python(基础)函数入门

2020-08-02 19:24 459 查看

一、函数的概念

语法:

def 函数名(参数1,参数2,参数3…):

​ 函数体

​ 返回值

说明:

a.函数由两部分组成:声明部分和实现部分

b.def,关键字,是define的缩写,表示定义的意思

c.函数名:类似于变量名,遵循标识符的命名规则,尽量做到顾名思义

d.():表示的参数列表的开始和结束

e.参数1,参数2,参数3… :参数列表【形式参数,简称为形参】,其实本质上就是一个变量名,参数列表可以为空

f.函数体:封装的功能的代码

g.返回值:一般用于结束函数,可有可无,如果有返回值,则表示将相关的信息携带出去,携带给调用者,如果没有返回值,则相当于返回None

二、函数的参数

函数参数分为两类: 有参函数、无参函数

  1. 位置参数/必须参数
def f1(x, y):
print(x, y)
f1(3,4)
  1. 默认参数
# 默认参数
def f2(x, y, z=5):
print(x, y, z)
f2(3, 4, 6)
  1. 关键字参数
# 关键字参数
def f3(x, y, z):
print(x, y, z)
f3(z=3, y=4, x=5)
  1. 可变参数/不定长参数
# 可变参数/不定长参数
# *args: 用来接收任意多个位置参数
def f4(*args):
print(args)
f4()
f4(1,2,3,4,5,6)

def f5(x, y, *args, z, k):
print(x, y, args, z, k)

f5(1,2,3,4,5,6,z=7,k=8)

# **kwargs: 用来接收任意多个关键字参数,会得到一个字典
def f6(x, y, **kwargs):
print(x, y, kwargs)     # 5 6 {'z': 7, 'k': 8}

f6(5, 6, z = 7, k=8)
# f6(3,4,1,3)
  1. 接受任意参数,通配参数
# 参数的书写顺序:
#       形参:位置参数, *args,默认参数,**kwargs
#       实参:位置参数, 关键字参数
def f7(a,b,*args,c=6,d=7,**kwargs):
print(a,b,args,c,d,kwargs)

f7(1,2,3,4,d=77, x=8, y=9)

#接受任意参数:通配参数
def f8(*args, **kwargs):
print(args,kwargs)
f8(1,2,3,5,x=6,y=7)

三、匿名函数

不再使用def这种的形式定义函数,使用lambda来创建匿名函数

特点:

​ a.lambda只是一个表达式,比普通函数简单

​ b.lambda一般情况下只会书写一行,包含参数,实现体,返回值

语法:lambda 参数列表 : 实现部分

#语法:lambda 参数列表 : 实现部分

#1.
#需求:求两个数的和
#普通函数
def add(num1,num2):
sum = num1 + num2

add(num1 = 10,num2 = 20)

#匿名函数本身是没有函数名,将整个lambda表达式赋值给一个变量,然后将这个变量当做函数使用
sum1 = lambda n1,n2:n1 + n2
print(sum1(10,20))

#2.在匿名函数中也可以使用关键字参数
g = lambda  x,y:x ** 2 + y ** 2
print(g(3,4))
print(g(x = 3,y = 4))

#3.在匿名函数中也可以使用默认参数
h = lambda  x=0,y=0 : x ** 2 + y ** 2
print(h())
print(h(10))
print(h(10,20))

四、值传递和引用传递

值传递:传参的过程中传递的是值,一般指的是不可变的数据类型,number,tuple,string

引用传递:传参的过程中传递的是引用,一般指的是可变的数据类型,list,dict, set

代码演示:

# 基本类型: 不可变类型
#   int float str tuple bool None
# 引用类型:可变类型
#   list dict set

# 基本类型赋值: 不关联
a = 10
b = a
a = 20
print(a, b)  # 20 10

# 引用类型赋值:关联
l1 = [1,2,3]
l2 = l1
l1[0] = 99
print(l1,l2)

# 函数中
age = 10
person = {'name':'小明', 'age':43}

def change_age(age1,person1):  # age1= age; person1=person
global age
age1 += 1
person1['age'] += 1
# change_age()
change_age(age,person)
print(age,person)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐