QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4103|回复: 0
打印 上一主题 下一主题

python学习笔记函数

[复制链接]
字体大小: 正常 放大

1178

主题

15

听众

1万

积分

  • TA的每日心情
    开心
    2023-7-31 10:17
  • 签到天数: 198 天

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-28 22:06 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    函数
    5 \) t  `3 j8 l0 O3 J定义函数:1 e6 Y. u) K( N
    调用函数; A6 ?. s- V/ q  y( l
    调用之位置实参3 S0 |8 C% G: r0 a4 U  s
    调用之关键字实参
    - N) y6 \9 s" a6 s, ^调用之实参传递$ X) W- B/ t$ C2 O2 U; |+ p
    带默认值的形参# ]$ E# P8 I* Q) c) _
    定义函数:
    1 L5 ?+ T# @" E/ a5 @2 ?- r7 s8 ?语法格式:
    & K5 W# S  q/ G
    1 [8 B" N4 C6 c$ ^5 Qdef 函数名 (形式参数1,形式参数2。。。,形式参数n):
    , p" r/ c! Q8 s/ ]0 B        函数体$ m8 d6 ~* u3 L8 k: D: b/ @, \
    def:是python定义的关键字
    6 _, u6 b3 C( K# K( h函数名:每个函数都有函数名,用于函数的调用。函数名属于表示符,最好是动宾格式,表明函数完成的特定功能。例如:print_result, handle_message+ z0 U: F" Y, D$ P/ j  K1 n# g/ D
    形式参数:简称形参,用于调用函数时接收输入(实际参数)。形参用中括号括起来,表示形参是可选的,可以定义,也可以不定义。形参的本质是变量,只应用于函数体,别的地方不生效
    7 K; a, _4 [9 |- W1 k& t9 ~函数体:用于执行特定任务以完成特定功能的主体代码,它对于的代码块必须缩进,如果函数需要返回值,可以使用语句return xxx返回,同时结束函数体的执行,如果函数不要返回值,使用return直接结束函数体执行或者不写正常执行结束,函数体在调用函数时才会被执行,定义函数不会改变程序的执行流程。1 y, @0 q- l( o, K
    ( h5 e( j" J  S7 S

    - g4 }, [: Y+ ~( F5 y9 \7 n" O5 {def decide_args(arg1,arg2):- X' g# V0 T( [& f4 c# g) D
            if arg1 and arg2:7 T7 v7 b. s/ L: T3 d
                    return arg1,arg2
    : _4 ^: a1 H* i* @2 n        elif (not arg1) and (not arg2):
    8 }. @, p) _1 C, z0 N0 K2 \                return
    . ~& i6 j( B& _: d; Z        else:
    " {' _- Y. ^4 G) o, ^                result = arg1 or arg2 6 e7 M' A- u  n$ x
    print(type(decide_args)) #查看类型为function
    7 Q: F/ V. c% c' }% a3 I3 N- a0 E7 m0 l: M9 \5 g
    调用函数

    调用函数时,每个实参都被用于初始化相应的形参,所有形参被初始化后,函数体对应的代码块进行执行,执行完成后再跳回调用函数的地方,继续执行下一条语句


    4 U& ]: j$ J: P6 u

    0 J4 w0 Q9 g) |: l; _3 E
    3 V/ J, w' i( l调用之位置实参
    : e8 H. [  Z7 x5 O" g9 |位置实参:传入的实参与形参位置是一 一对应的,更改实参传入顺序,得到的结果也不同3 h7 x( L- s9 A# N) A6 x
    def f(a, b, c):& t) Z* I& h7 b/ @9 C
        print('a =', a, 'b =', b, 'c =', c)
    + l9 {5 V+ s4 U) @$ W" S! G
    ; o) z+ B  q- l+ b+ \! Df(2, 5, 8)   #传入实参,得到 a=2,b=5,c=8
    4 E: f! J1 k8 H4 G& o5 K0 pf(5, 8, 2)
    4 r' H+ O! T- J" W' t1 _, _+ e' Gf(8, 5, 2)
    1 o! u' t$ }* Y% w5 M4 T定义函数时,如果无法确定位置实参个数,可以在形参前面加一个*,将形参定义为个数可变的形参,从而可以接受0个或任意多个位置实参,位置实参会将形参变为一个元组7 [0 }, J' V; C; O, Y, t

    % t2 r  I+ e1 \& q0 X/ w#!/usr/bin/env python3
    5 K9 Y- Z% i9 ^$ Z( {# ddef fun1(*num):( Z9 f& M. \% V$ l
        print(num): p- z4 Y  P5 x
    fun1()
    " J+ Q" y/ R2 d3 ]  n/ Tfun1(2)  |: {1 m+ u7 P) t/ Z
    fun1(2,3,4,5,6)' }1 w( K+ z) j! a9 {: ]

    ' u( b# s1 u) i+ t$ h$ h: e! @) A/ C, g% Y
    调用之关键字实参

    关键字实参:传递形式为:形参名 = 实参值,使形参和实参一 一对应,更改传入实参顺序,不影响结果,位置实参和关键字实参组合时,关键字实参一定要写最后面,否则会报错

    : D0 F+ I3 l4 X$ O- f* d
    def f(a, b, c):
        print('a =', a, 'b =', b, 'c =', c)
    f(b = 5,a = 2,c = 8)   #传入实参,得到 a=2,b=5,c=8
    f(2,5,c = 8)
    6 r" u! {0 i' f+ b/ Z; u$ S8 R4 W
    带默认值的形参

    给形参一个值,如果没写实参,则使用形参的默认值,作用是简化实参

    3 J- `! q+ f! f& H, o
    [color=rgba(0, 0, 0, 0.501960784313726)]#!/usr/bin/env python3
    [color=rgba(0, 0, 0, 0.501960784313726)]def __d__(a,b = 5):
    [color=rgba(0, 0, 0, 0.501960784313726)]    print('a=',a,'b=',b)
    [color=rgba(0, 0, 0, 0.501960784313726)]__d__(1)

    ) H* j  Q7 o# R4 }! _
    . V1 R6 e+ ?$ G) ~. a
    $ @7 p8 g4 Q3 S7 W
    0 L! h# O7 q% j0 A  g8 i6 z* P) U3 W
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-21 02:00 , Processed in 0.433452 second(s), 50 queries .

    回顶部