【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

目录
相关文章
|
4天前
|
Python
Python闭包函数和计时器
本文介绍了闭包函数的概念,它允许内部函数引用外部作用域的变量但无法修改它们。示例展示了如何使用闭包来封装函数。接着,文章讨论了如何在函数调用时添加开始和结束的打印语句,通过传递函数作为参数实现。然后,文章引入装饰器,通过闭包定义了一个`timer`装饰器,用于在函数执行前后打印消息。最后,给出了一个练习,实现了一个计算函数执行时间的装饰器,处理了带有参数的被装饰函数。
12 1
|
4天前
|
Python
【Python操作基础】——while语句用法和pass语句
【Python操作基础】——while语句用法和pass语句
|
1天前
|
程序员 开发者 Python
Python中的装饰器:优雅而强大的函数修饰工具
在Python编程中,装饰器是一种强大的工具,它可以简洁地实现函数的增强、扩展和重用。本文将深入探讨Python中装饰器的工作原理、常见应用场景以及如何自定义装饰器,帮助读者更好地理解和运用这一重要的编程概念。
|
2天前
|
数据采集 Python
10个Python set 常用操作函数!,bilibili面试题
10个Python set 常用操作函数!,bilibili面试题
10个Python set 常用操作函数!,bilibili面试题
|
2天前
|
数据采集 数据挖掘 Python
Python学习——函数,2024年最新手持4个大厂offer的我
Python学习——函数,2024年最新手持4个大厂offer的我
|
2天前
|
数据采集 数据挖掘 关系型数据库
Excel计算函数(计算机二级)(1),2024年最新2024Python架构面试指南
Excel计算函数(计算机二级)(1),2024年最新2024Python架构面试指南
|
2天前
|
存储 Java Shell
【Python学习教程】Python函数和lambda表达式_6(1),2024蚂蚁金服面试题及答案
【Python学习教程】Python函数和lambda表达式_6(1),2024蚂蚁金服面试题及答案
|
2天前
|
Web App开发 Ubuntu Linux
Linux无图形界面环境使用Python+Selenium实践
【5月更文挑战第1天】Linux无图形界面环境使用Python+Selenium实践
21 2
|
2天前
|
Python
Python基础教程: math库常用函数(1),Python这些高端技术只有你还不知道
Python基础教程: math库常用函数(1),Python这些高端技术只有你还不知道
|
3天前
|
机器学习/深度学习 数据采集 自然语言处理
python函数参数的传递、带星号参数的传递,2024年大厂Python高级面试题分享
python函数参数的传递、带星号参数的传递,2024年大厂Python高级面试题分享