欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python学习笔记之函数

程序员文章站 2022-12-20 17:32:00
python学习笔记之函数函数在python中函数是以def为开头的,后面跟上():括号里面是参数一般来说函数的第一行会使用# 或者""" “”"来说明函数的用途,规格用缩进来表示下面的代码在函数体中最后用return 表达式来返回一个值第一个例子:def printf(str): """用于打印文字的函数""" print(str*2,end='')str='hello world 'printf(str) # 传入参数调用函数运行结果:hello world he...

python学习笔记之函数

函数

在python中函数是以def为开头的,后面跟上():括号里面是参数

一般来说函数的第一行会使用# 或者""" “”"来说明函数的用途,规格
用缩进来表示下面的代码在函数体中

最后用return 表达式来返回一个值

第一个例子:

def printf(str):
    """用于打印文字的函数"""
    print(str*2,end='')

str='hello world '
printf(str) # 传入参数调用函数

运行结果:

hello world hello world 

注意这里的参数传递
在python中,类型属于对象,变量没有类型

分为可更改与不可更改对象

  1. 不可变类型:整数、字符串、元组
  2. 可变类型: 列表、字典

第二个例子:

def change_int(a):
    a += 10


b = 10
change_int(b)
print(b)

运行结果是:

10

为什么这里仍然输出的是10呢?
因为实例中有int对象2,变量b指向它,传参数的时候,是复制了变量b,此时b,a都指向了同一个int对象,而在函数中的赋值a+=10,相当于新生成了一个int值对象20,并让a指向它,然后函数退出来的时候,a就销毁了,最后输出的b的值不变仍然为10

那么要怎么样才能将运算结果带出来呢?
这里就需要用到return了
将第二个例子稍加改变一下

def change_int(a):
    a += 10
    return a


b = 10
x = change_int(b)
print(x)

输出结果:

20

这里函数返回了值a,也就是新的int对象x的值
再打印x就可以得到想要的结果20了

ps:在C语言中可以用指针来实现b值的改变

传可变参数
第三个例子

def changeable(list):
    """传入可以改变的列表"""
    list.append([0,1,2])    # 添加0,1,2进入列表
    print("函数内List的值:\n",list)

list = [7,8,9]
changeable(list)
print("函数外List的值:\n",list)

运行结果

函数内list的值:
 [7, 8, 9, [0, 1, 2]]
函数外List的值:
 [7, 8, 9, [0, 1, 2]]

可以看成list是发生改变了的

参数

分为

  • 必须参数
  • 关键字参数
  • 默认参数
  • 不定长参数

必须参数
以正确的顺序和数量传入参数,否则报错
可以参考第三个例子中的def changeable(list)就是必须参数

关键字参数
函数调用使用关键字参数来确定传入的参数值
顺序可以与声明的不一样

第四个例子

def introduce(name, age, address):
    print("我是来自{}的{},今年{}岁".format(address,name,age)

introduce(age=19, address='广东', name='Justin')
# 这里参数的位置可以与声明的不一样
#python可以通过关键字来正确传入参数

运行结果:

我是来自广东的Justin,今年19

默认参数
若没有给定的实参,则调用函数中给定的参数值

仍然是第四个例子稍微改动一些:

def introduce(name, age, address='甘肃'): 
    # 注意这里默认参数在最后给出
    # 要按照 必须、关键字、默认、不定的顺序来给出参数,否则会报错
    print("我是来自{}的{},今年{}岁".format(address,name,age))


introduce(age=19, address='广东', name='Justin')
introduce(age=19, name='Justin')

运行结果

我是来自广东的Justin,今年19岁
我是来自甘肃的Justin,今年19

不定长参数
需要一个函数能够处理比当初声明时更多的参数,这些参数叫做不定长参数

下面来看一个例子

第五个例子

def test(test1, *args):   # 这里*args就是不定参数
    print(test1)
    print(args)  # 加了*的参数会以元组的方式导入,存放所有的不定参数

test(60, 70, 80)

运行结果:

60
(70, 80)

第六个例子

def test_2(test2, **args):   # 这里**args就是不定参数
    print(test2)
    print(args)  # 加了**的参数会以字典的方式导入,存放所有的不定参数的键对

test_2(60, name='Mike',age=20)

运行结果

60
{'name': 'Mike', 'age': 20}

匿名函数
lambda

第六个例子

sum = lambda arg1, arg2: arg1 * arg2
# 基本的就是 变量名 = lambda 变量1,变量2……:运算表达式
print(sum(10,20))

运行结果:

200

码字不易,各位看官老爷点赞收藏一下哟

本文地址:https://blog.csdn.net/Enternalwiser/article/details/107490114