python函数内容

  在刚接触python的时候就有个疑问,什么是函数? python语言的函数和数学语言的函数有区别吗?

什么是函数

数学函数:给定一个数集A,假设其中的元素为x。现对A中的元素x施加对应法则f,记作f(x),得到另一数集B。假设B中的元素为y。则y与x之间的等量关系可以用y=f(x)表示

python函数:函数就是一段事先组织好的,它具有可重复性,封装好,用来实现某个相关联功能的代码段,函数能提高应用的模块性,和代码的重复利用率。

格式:

# 未携带函数格式
def name():    # name表示函数的名称
    print('这是个函数')    # 函数的内容
    return name    # 返回函数值

name()    # 执行函数



# 携带参数函数格式
def name(name):
    print('这是个函数名',name)
    return name
name(
'name')

通常来说函数必须要遵循以下几点:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
  • 圆括号之间可以用于定义参数。
  • 函数内容以冒号起始,并且缩进。
  • return 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

可变与不可变传参

传不可变参数

# 传不可变参数
def
name(a): a = 20 print(a) b = 10 name(b) # 结果为20 print(b) # 结果为10

传可变参数

def changeme( mylist ):
   mylist.append([1,2,3,4])
   print( "函数内取值: ", mylist)
   return

# 调用changeme函数
mylist = [10,20,30]
changeme( mylist )

执行结果:
函数内取值:  [10, 20, 30, [1, 2, 3, 4]]

不可变:整数、字符串、元组

可变参数:字典,列表

全局变量和局部变量

name = 'AnJing'
def name_01(name):
    print('现在我的名字是:',name)
    name = 'test'
    print('现在我的名字是:',name)

name_01(name)
print('外面我的名字是:',name)

执行结果:
现在我的名字是: AnJing
现在我的名字是: test
外面我的名字是: AnJing

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域,局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中

 

函数之间的调用

def jiafa(a,b):
    '''加法'''
    c = a + b
    return c  # 返回C

def jianfa(c):
    '''减法'''
    d  = 2
    s = c -d
    print(s)
c = jiafa(2,3)    # 调用函数加法
jianfa(c)    # 调用函数减法

执行结果:
3

加法函数返回值赋给C,函数减法接受参数C进行完成减法操作

非固定参数

若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数,引入*args,**kwargs

# *args
def name(name,*args):
    print(name,args)
name('AnJing','test',123)

执行结果:
AnJing ('test', 123)

这个时候会发现*args 传入的内容会变成一个元祖

# **kwargs
def name(name,**kwargs):
    print(name,kwargs)
name('AnJing',it='test',age=123)

执行结果:
AnJing {'it': 'test', 'age': 123}

这个时候会发现**kwargs传入的内容会变成一个元祖

 

递归

函数之间可以进行调用,那么函数本身也可以进行调用,这种函数我们叫做递归 

# 递归函数
def calc(n):
    print(n)
    if int(n/2) ==0:
        return n
    return calc(int(n/2))

calc(10)

执行结果:
10
5
2
1

猜你喜欢

转载自www.cnblogs.com/qican/p/11103609.html