Python学习---DAY10函数

格式

python中的函数的格式为:

python 复制代码
def task():
    task1
    task2
print('task over')   #函数结束,非函数语句

使用def关键字来定义函数,函数范围与循环判断类似,同样需要在同一列里来圈定。

与C不同的是,由于代码是直接执行(不用找main函数),所以要使用函数,只需要任意地方调用函数名即可

传参

位置传参

函数传参的基本办法(位置参数)就是在函数里直接使用变量,然后调用函数时将值对应写入即可,例如:

python 复制代码
def AtoB(a, b):
    if a > b:
        print(a)
    else:
        print(b)
AtoB(3,4)
AtoB(25,6)
#打印为:4  25
关键字传参

python中还有其他传参方法,如关键字传参,指定调用函数中实参与函数中形参的对应关系来实现:

python 复制代码
def task1(speed, x,y,z):
    if x<10:
        speed=speed*10
    elif x>10 and y<10:
        speed=90
    elif x>10 and y>10:
        speed=50
    elif z == y + x:
        speed=0
    else :
        speed=speed
    return speed
print(task1(z=64,x=10,y=20,speed=32))
#打印为:32

关键字与位置参数也可以混用,但用时需要位置在前,关键字在后。

限制传参方式:/前必须用位置参数,*后必须用关键字参数,如:

python 复制代码
def task1(speed, x,/,y,*z):
    if x<10:
        speed=speed*10
    elif x>10 and y<10:
        speed=90
    elif x>10 and y>10:
        speed=50
    elif z == y + x:
        speed=0
    else :
        speed=speed
    return speed

此时只能这么调用了:

python 复制代码
print(task1(32,10,y=20,z=64))#y无所谓
参数默认值

参数默认值指的是在定义函数时,通过形参=值的方式,为参数指定一个默认值,如:

python 复制代码
def task1(speed, x,y,z,m=42):
    if x<10:
        speed=speed*10
    elif x>10 and y<10:
        speed=90
    elif x>10 and y>10:
        speed=50
    elif z == y + x:
        speed=0
    else :
        speed=m
    return speed
print(task1(z=64,x=10,y=20,speed=32))#打印42

但如果引用函数时指定了参数值,则参数默认值就会被覆盖:

python 复制代码
print(task1(z=64,x=10,y=20,speed=32,m=84))#此时打印84

则此时,我们可以得知print的本质以及其end的原理了

**注意:**默认参数一定位于其他参数后

相关推荐
happylifetree1 分钟前
Python78:核心语法-面向对象基础-类与对象
python
duansamve7 分钟前
Python中进程
python
日日大王学编程1 小时前
AI Agent 技术发展历程、演进逻辑与技术范式综述
人工智能·python
bksczm1 小时前
InnoDB 行格式详解:DYNAMIC / COMPACT / COMPRESSED / REDUNDANT
java·开发语言·数据库
春涧草茶1 小时前
慢就是快16-1协程
开发语言·前端·python
5233AI开发笔记2 小时前
API 返回 429:先区分限速、并发和配额,再决定是否重试
python
Dovis(誓平步青云)2 小时前
启元 T1 Pro 人机相声搭档:语音-触摸双通道的启元机器人节奏引擎设计
开发语言·前端·javascript·microsoft·交互
databook2 小时前
经常听到的透视表是干什么的?
python·数据分析·pandas
做科研的周师兄2 小时前
【R语言实战】MixSIAR 氢氧同位素水源解析全流程:从混合空间校验到贝叶斯 MCMC 收敛诊断(后附完整代码)
java·大数据·开发语言
特立独行的猫A2 小时前
我用仓颉写了个多平台发文工具:一份 Markdown,一条命令发六个平台
java·后端·python