函数的简介与用途

本文详细介绍了Python中的函数,包括函数的定义、调用、执行结果,以及不同类型的参数传递方式。重点讲解了如何定义函数、使用默认参数、关键字参数以及传递任意数量的参数。此外,还提供了案例演示,如计算最大值和统计字符串中不同字符的个数,帮助读者更好地理解和运用Python函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、函数的简介

1、什么是函数

  • 其实函数就是一个代码段,这段代码可以重复的执行,通过函数可是实现代码段的复用
  • 函数是不能自己主动执行的,必须被调用的时候才能被执行

2、Python的模块

  • 一个Python文件,就是一个模块

3、函数分类

  • 全局函数:直接定义在模块中的函数就是全局函数
  • 局部函数:定义在函数内部的就是局部函数
  • 匿名函数:也被称为lambda函数,其实就是一个表达式
  • 方法:方法也是一种函数,知识函数需要和特点的数据类型绑定使用

4、函数定义

def 函数名():
    语句
    语句
    ...

5、调用函数

函数名()

6、执行函数的结果

  • 函数的输出:在函数中用print来输出一个结果,这个可以直接显示
  • 输出用:print (注:这个输出结果可以直接输出出来)
  • 函数的返回值:在函数中用return来返回一个或者多个结果,这个结果可是用来接收,一旦执行到return,那么return后面的代码将不会执行,也就是会直接退出函数,返回到主程序继续运行
  • 返回用:return
  • 返回值:可以在主程序进行接收,如果返回多个值,那么多个值会保存成一个元祖

案例:让用户在函数中输出两个数据,将打的数字加1并打印出来

def f1():
    num1 = int(input("请输入第一个数字:"))
    num2 = int(input("请输入第二个数字:"))
    if num1 > num2:
        return num1
    else:
        return num2

res = f1()
print(res+1)

7、函数的说明文档

  • 一般情况下,每个函数都应该有个说明文档,来解释这个函数的作用及使用方法
  • 查看函数的说明文档的方法

函数名.__doc__

二、变量的作用域

  • 本地变量:定义在模块中的【主程序中的变量】,有效范围是整个Python文件,包括主程序和函数内部
  • 局部变量:在函数中定义变量,默认有效范围仅仅在函数内部
  • 内置变量:由Python自己定义的

注意事项:

  • 变量的作用越小,优先级越高
  • 局部变量优先级 > 本地变量
  • 修改局部变量,不会修改全局变量
  • 程序找变量的过程
  • 首先找到最近变量,如果有,就直接使用,如果没有,就向上层找

三、函数传递参数

def 函数名(变量):
    代码

1、参数的默认值:

  • 如果函数要求传递参数,但是调用的时候没有传递参数,那么程序就会报错

案例:函数有四个参数,name,age,tel,addl,要求必须传递name和age,tel和addr两个参数可以不传递,如果用户没有给tel和addr传递参数,默认用nul

def printWellcome(name, age, tel="nul", addr="nul"):
    print("姓名是%s, 年龄是%s, 电话是%s, 地址是%s"%(name,age,tel,addr))

userInput1 = input("请输入姓名:")
userInput2 = input("请输入年龄:")
userInput3 = input("请输入电话:")
userInput4 = input("请输入地址:")

printWellcome(userInput1,userInput2)
printWellcome(userInput1,userInput2,userInput3)
printWellcome(userInput1,userInput2,userInput3,userInput4)

2、基于关键字来进行传递参数

  • 要求:定义函数的时候参数的名字必须和调用是时候参数的名字一致
  • 格式

# 定义函数
def fun1(p1,p2,p3="nul"):         # 此时参数的名字分别是p1  p2  p3

# 调用函数
fun1(p1=xx,p2=xx)                 # 此时必须明确指定p1=x  p2=x  p3=x

四、传递任意个参数

  • 魔法赋值

方法1 def fun1 (*参数)

  • 此方法用于接受任意个参数,得到的是一个元组

def fun1(*p1):
    print(p1)      # p1用于接收和保存传递进来的多个参数,多个参数是以元组的形式保存的

fun1()
fun1("a")
fun1("a","b")      # 向函数传递多个参数

方法2 def fun2 (**参数)

  • 此方法用于接受任意个参数,得到的是一个字典

def fun1(**p1):
    print(p1)      # p1用于接收和保存传递进来的多个参数, 数据是以字典的形式保存的

fun1()
fun1(name="tom")
fun1(name="tom", age="18")
fun1(name="tom", age="18", addr="hebei")

向函数来传递列表和字典

  • 传递列表

def fun1(*p1):    # 如果想通过列表来传递参数,那么形参需要这样写
    print(p1)

li = ["tom","jerry",18,136666,"jack"]

fun1(li)    # 将列表当成一个整体,传递给函数
fun1(*li)   # 将列表中的每个元素单独作为一个元素传递到函数中

  • 传递字典

def fun1(**p1):    # 如果想通过列表来传递参数,那么形参需要这样写
    print(p1)

d1 = {"name":"tom","age":18,"addr":"hebei"}

fun1(**d1)   # 将列表中的每个元素单独作为一个元素传递到函数中

案例:编写一个函数,输入三个数,输出最大值

import sys

def com(x,y,z):
    maxNum=x;
    if y>maxNum:
        maxNum=y;
        if z>maxNum:
            maxNum=z
    return maxNum

a=input("please input first number:",)
b=input("please input second number:",)
c=input("please input third number:",)
m=com(a,b,c)
print("a,b,c中最大值为:",m)

案例:统计字符串中不同字符的个数

import sys
def deal_char(li):
    list=[]

    # list.append(float(max(li)))
    # list.append(float(min(li)))
    upper=0
    lower=0
    num=0
    other=0
    # str.__len__()
    for i in  range(li.__len__()):
        if li[i].isupper():
            upper+=1
        elif li[i].islower():
            lower+=1
        elif li[i].isnumeric():
            num+=1
        else:
            other+=1
    list.append(upper)
    list.append(lower)
    list.append(num)
    list.append(other)

    print("list:",list)
    return tuple(list)
if __name__=="__main__":
    # print("请输入一个序列:")
    # while
    ll=input("please input some char(or a string):",)

    # print(type(lll))
    deal=deal_char(ll)
    print("tuple contain count with upper char,lower char ,number and others:",deal) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值