【python | linux04】函数用法详解(一)

简介: 如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数

 🍁作者简介:🏅云计算领域优质创作者🏅新星计划第三季python赛道TOP1🏅 阿里云ACE认证高级工程师🏅

✒️个人主页:小鹏linux

💊个人社区:小鹏linux(个人社区)欢迎您的加入!

目录

1.函数介绍及定义

1.1函数的优点

1.2定义函数

1.3传参函数

2.函数的类型

2.1无参数,无返回值类型

2.2无参数,有返回值类型

2.3有参数,无返回值类型

2.4有参数,有返回值函数

2.5函数小总结:

2.6给函数添加文档说明名

3.函数的参数及返回值

3.1函数的参数

3.2定义有参数类型的函数

3.3函数中的缺省值

3.3.1 不定长参数

3.4返回值介绍

3.4.1 带有参数的返回值

3.4.2 带有多个参数的返回值


1.函数介绍及定义

1.1函数的优点

如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数

1.2定义函数

格式:

def 函数名():

--tab-- 代码

调用函数

定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它。

调用函数很简单,通过 函数名() 即可完成调用

举例

-使用函数打印自己的信息

要求:定义一个函数,能够输出自己的姓名和年龄,并且调用这个函数让它执行

提示:使用def定义函数,编写完函数之后,通过 函数名() 进行调用。函数命名要见名知意

def information():
    name=input("请输入你的姓名")
    age=input("请输入你的年龄")
    print(name,age)
information()

image.gif

1.3传参函数

格式:

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

--tab-- 代码

传参函数的调用:

函数名(参数1,参数2,……)

举例:

让用户输入两个数,让他们相加,并返回结果

def addNum(a,b):                               #a和b两个参数叫做形式参数
    print(a)
    print(b)
    #print("a+b=%d"%(a+b))   
    c = a+b
    return c
result = addNum(100,200)                       #100和200为实际参数
print("result:%s"%result)

image.gif

2.函数的类型

函数根据有没有参数,有没有返回值,可以相互组合,一共有4种:

无参数,无返回值          

无参数,有返回值

有参数,无返回值          

有参数,有返回值

2.1无参数,无返回值类型

def 函数名():

    pass

#定义函数,能够打印信息
def printInfo():
    print("-"*20)
    print("  人生苦短,我用Python ")
    print("-"*20)
print_info()

image.gif

2.2无参数,有返回值类型

应用场景:此类函数,不能接收参数,但是可以返回某个数据,一般情况下,像采集数据,用此类函数

def 函数名():

    return xxx

#获取温度
def getTemp():
    return 24
result = getTemp()
print("当前的温度为:%s"%result)

image.gif

2.3有参数,无返回值类型

此类函数,能接受参数,但是不能返回结果,一般情况下,对某些变量设置数据而不需要结果的时候,可以使用此类函数

def 函数名(参数1,参数2.....):

    pass

#0关灯 , 1开灯
def setOnOff(isOffOn):
    if isOffOn == 0:
        print("关灯")
    elif isOffOn ==1:
        print("开灯")
#调用函数
setOnOff(1)
setOnOff(0)

image.gif

2.4有参数,有返回值函数

此类函数,不仅能接受参数,还可以返回某个数据,一般情况下,像处理数据并需要结果的应用,都使用此类函数

def 函数名(参数1,参数2.....):

    return xxx

#计算1-?之间的累计和
def calcNum(num):
    result = 0
    i=1
    while i<=num:
        result+=i
        i+=1
    return result
num = int(input("请输入一个数:"))
result = calcNum(num)
print("1-%d的累计和为:%d"%(num,result))

image.gif

2.5函数小总结:

定义函数时,是根据实际的功能需求来设计的,所以不同开发人员编写的函数类型各不相同。

2.6给函数添加文档说明名

格式:

def 函数名():

“文档说明”

代码

调用:

print(help(函数名))

def add(a,b):

    "用来完成对2个数求和"

    print("%d"%(a+b))

print(help(add))

#生成工作中的文档说明
def initData():
    """
    初始化商品价格、
    日期、
    分类
    :return:
    """
    pass
def upData():
    '''
    用来更新商品数据
    :return:
    '''
    pass
def findData():
    #用来搜索数据
    pass
def delData():
    "删除数据"
    pass
def createData():
    '''
    添加创建数据
    :return:
    '''
    pass
if __name__ == '__main__':
    import test08
    print(help(test08))

image.gif

3.函数的参数及返回值

3.1函数的参数

为了让一个函数更通用,即想让它怎么计算,就让怎么计算,在定义函数的时候可以让函数接收数据,就解决了这个问题,这就是函数的参数

3.2定义有参数类型的函数

格式

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

代码

传参函数的调用

函数名(参数1,参数2,……)

举例

def add(a,b,c): #a,b 称为形参

    "用来完成对2个数求和"

    print("%d"%(a+b+c))

num1 = int(input("请输入第一个数:"))

num2 = int(input("请输入第二个数:"))

num3 = int(input("请输入第三个数:"))

add(num1,num2,num3) #实参

def add2Num(a,b):
    print(a,b)
add2Num(1,2)
add2Num(b=1,a=2)
add2Num(1,b=3)
#add2Num(a=1,3) #语法错误不能使用

image.gif

小总结

定义时小括号中的参数,用来接收参数用的,称为 “形参”

调用时小括号中的参数,用来传递给函数用的,称为 “实参”

3.3函数中的缺省值

调用函数时,缺省参数的值如果没有传入,则被认为是默认值。

注意:带有默认值的参数一定要位于参数列表的最后面

#定义函数 ,age=18 为缺省参数

def printInfo(name,age=18):

    print("-"*20)

    print(name)

print(age)

printInfo("张三")

printInfo("李四",35)

printInfo(age = 28,name = "李四") #命名参数传参方式

def test(a,b,c=30,d=40):
    print("-"*20)
    print(a)
    print(b)
    print(c)
print(d)
test(10,20)
test(10,20,33)
test(10,20,33,44)
A=100
B=1000
test(b=A,a=B)

image.gif

3.3.1 不定长参数

有时可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,声明时不会命名

基本语法如下:

def functionname([formal_args,] *args, **kwargs):

" 函数 _ 文档字符串 "

function_suite

return [expression]

#不定长参数,*args 以元组格式存储数据(有*就变成不定长参数)

#让很多数相加

def sum2Num2(a,b,*args):

    print("="*30)

    print(a)

    print(b)

    print(args)

    result = a+b

    for num in args:

        result +=num

    print("ta们的和是:%d"%result)

sum2Num2(11,22,33,44,55,66)

sum2Num2(11,22,33)

sum2Num2(11,22)

#sum2Num2(11) #错误,至少要传递没有传递的形参

def test(a,b,c=30,*args,**kwargs):
    print("="*30)
    print(a)
    print(b)
    print(args)
    print(kwargs)
A=(40,50)
B={"name":"小鹏","age":39}
test(10,20,30,*A,**B) #拆包

image.gif

image.gif

3.4返回值介绍

所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果。

3.4.1 带有参数的返回值

想要在函数中把结果返回给调用者,需要在函数中使用return

def test(a,b):

    result =a+b

    return result   #result可以改成一句话

result=test(10,20)

print(result)

3.4.2 带有多个参数的返回值

第一种方案:把多个值封装到列表中

    d = [a,b,c]

    return d

第一种方案的另外一种写法

    return [a,b,c]

第二种方案:封装到元组中

    return (a,b,c)

第二种的另一种写法,默认就是元组

    return a,b,c

def test():
    a = 10
    b = 20
c = 30
result = test()
print(result)
print(type(result))

image.gif

第三种

a,b,c = test()
#a,b,c = (10,20,30)
print(a)
print(b)
print(c)

image.gif

举例

#应用场景,计算两个数的商 和 余数
def divid(a,b):
    shang = a // b
    yushu = a % b
    return shang,yushu
sh,yu = divid(5,2)
print("他们的商是:%d\n余数是:%d"%(sh,yu))

image.gif

👑👑👑结束语👑👑👑

image.gif

目录
相关文章
|
22天前
|
Python
【python从入门到精通】-- 第五战:函数大总结
【python从入门到精通】-- 第五战:函数大总结
56 0
|
19天前
|
Python
Python之函数详解
【10月更文挑战第12天】
Python之函数详解
|
20天前
|
存储 数据安全/隐私保护 索引
|
9天前
|
测试技术 数据安全/隐私保护 Python
探索Python中的装饰器:简化和增强你的函数
【10月更文挑战第24天】在Python编程的海洋中,装饰器是那把可以令你的代码更简洁、更强大的魔法棒。它们不仅能够扩展函数的功能,还能保持代码的整洁性。本文将带你深入了解装饰器的概念、实现方式以及如何通过它们来提升你的代码质量。让我们一起揭开装饰器的神秘面纱,学习如何用它们来打造更加优雅和高效的代码。
|
11天前
|
弹性计算 安全 数据处理
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
|
14天前
|
Python
python的时间操作time-函数介绍
【10月更文挑战第19天】 python模块time的函数使用介绍和使用。
19 4
|
15天前
|
存储 Python
[oeasy]python038_ range函数_大小写字母的起止范围_start_stop
本文介绍了Python中`range`函数的使用方法及其在生成大小写字母序号范围时的应用。通过示例展示了如何利用`range`和`for`循环输出指定范围内的数字,重点讲解了小写和大写字母对应的ASCII码值范围,并解释了`range`函数的参数(start, stop)以及为何不包括stop值的原因。最后,文章留下了关于为何`range`不包含stop值的问题,留待下一次讨论。
13 1
|
21天前
|
索引 Python
Python中的其他内置函数有哪些
【10月更文挑战第12天】Python中的其他内置函数有哪些
13 1
|
26天前
|
缓存 测试技术 开发者
深入理解Python装饰器:用法与实现
【10月更文挑战第7天】深入理解Python装饰器:用法与实现
14 1
|
26天前
|
传感器 大数据 数据处理
深入理解Python中的生成器:用法及应用场景
【10月更文挑战第7天】深入理解Python中的生成器:用法及应用场景
32 1