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的原理了

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

相关推荐
破茧蝴蝶2 小时前
Python分布式爬虫完整教程
开发语言·python
benchmark_cc2 小时前
量化系统架构设计:为什么应该将数据获取与策略逻辑解耦?
python·数据分析·pandas·量化交易·股票数据·quantdash
狗凯之家源码网3 小时前
全新 PHP 轻量客服聊天室源码深度评测
开发语言·php·聊天室系统
凤山老林3 小时前
Spring Boot 启动冲刺:耗时剖析、懒加载策略与事件驱动初始化优化
spring boot·后端·python
我是伪码农3 小时前
百蝶杯学习
学习
小白快快跑哦3 小时前
python-字符串全解(六):正则表达式-逻辑运算或
python·正则表达式·字符串·逻辑运算
远离UE43 小时前
UE5 Substrate Thin Film 源码拆析
开发语言·javascript·ue5
keyipatience3 小时前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
Thinker QAQ3 小时前
并发编程(九):BlockingQueue 与 Channel——语言层的原子性、可见性与有序性
java·python·go·并发编程·channel·blockingqueue·message passing
道满科技3 小时前
Function Calling 参数总出错?只修参数就行
linux·windows·python