基础-python函数内容

597 篇文章 17 订阅
100 篇文章 2 订阅

在刚接触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

点赞关注~~持续分享,加入我们,了解更多。642830685。群内免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值