数学建模社区-数学中国

标题: python学习笔记函数 [打印本页]

作者: 1047521767    时间: 2021-10-28 22:06
标题: python学习笔记函数
函数  N- K9 c( _; O: ~$ C( S& q
定义函数:2 R9 E- M$ U" W8 {; }
调用函数; `% {5 a$ t: v: i: v& r3 P
调用之位置实参3 ], a1 i! V  n3 I
调用之关键字实参
7 G' l' m; w2 u' e3 [, A' S- R调用之实参传递. K! f# Z4 G, F% d+ v! {6 k$ }
带默认值的形参* }3 c( T) p) X# f! {
定义函数:
1 M8 }# M  Q, ~1 a! O8 [语法格式:
, N6 H" t  }9 n7 ^4 |+ c9 [9 O1 h1 c5 e7 B) K
def 函数名 (形式参数1,形式参数2。。。,形式参数n):
! t# F7 U/ a7 b4 ^# c# r% r        函数体
( [0 }4 B) |) V7 Y# D9 L/ @8 R3 ]def:是python定义的关键字8 ?9 U8 S- g$ C$ h/ Z3 t, A+ |
函数名:每个函数都有函数名,用于函数的调用。函数名属于表示符,最好是动宾格式,表明函数完成的特定功能。例如:print_result, handle_message
# _0 m$ q$ b2 n* ^1 n, F8 Z2 S形式参数:简称形参,用于调用函数时接收输入(实际参数)。形参用中括号括起来,表示形参是可选的,可以定义,也可以不定义。形参的本质是变量,只应用于函数体,别的地方不生效5 w# }! q) C  e3 i( R2 P+ D
函数体:用于执行特定任务以完成特定功能的主体代码,它对于的代码块必须缩进,如果函数需要返回值,可以使用语句return xxx返回,同时结束函数体的执行,如果函数不要返回值,使用return直接结束函数体执行或者不写正常执行结束,函数体在调用函数时才会被执行,定义函数不会改变程序的执行流程。' Q( ^& p( x# I* \2 [- u- W6 C

2 Z, k8 }6 m  `  Z% c7 L) e/ Z0 X3 C( h8 L: a% X
def decide_args(arg1,arg2):
. l, z6 A: u: Q- X# e" G        if arg1 and arg2:* A; g, _! o& I: H
                return arg1,arg2
, ~& U- k& }1 o        elif (not arg1) and (not arg2):
. \/ G' M; `1 S: w7 |# ?( X5 g                return3 D+ ~! A3 o! e
        else:9 I: n" o( |: h/ z
                result = arg1 or arg2
7 u6 n- o' d% f$ q) ~/ o; A: jprint(type(decide_args)) #查看类型为function' A) @* v+ ?( m4 i  m6 h* o
7 y- c  I; }; F4 ]; `
调用函数

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

" N- k  q1 ~8 u
* F5 Q. I$ W& [  d- T

$ ]) }  o5 p' w) @: N调用之位置实参3 n7 W8 p0 j, s8 B# l3 \
位置实参:传入的实参与形参位置是一 一对应的,更改实参传入顺序,得到的结果也不同
- ^( U7 K4 O8 ]$ _def f(a, b, c):. l, ]6 ?, C3 ~4 e: ~
    print('a =', a, 'b =', b, 'c =', c)& r- R: _) D1 u  M1 {4 V0 d
" o' H5 B9 T7 q! K
f(2, 5, 8)   #传入实参,得到 a=2,b=5,c=8
* y& c3 u& Y; V' j1 B4 |9 V  Q- if(5, 8, 2)6 H% s  |: P, z" e) e+ Z8 T/ h, L
f(8, 5, 2)
$ ~/ J: {9 _* t. J  p定义函数时,如果无法确定位置实参个数,可以在形参前面加一个*,将形参定义为个数可变的形参,从而可以接受0个或任意多个位置实参,位置实参会将形参变为一个元组
" T3 u+ ]/ L1 v; C* ~
6 b$ ]; h" Z4 U3 d#!/usr/bin/env python3
$ g' }" C9 C- X! E" u) _/ Y9 Ddef fun1(*num):" }; z% A% f( C% q- T
    print(num)
1 }. w2 U! y- L" Hfun1()
( [% w5 h$ S5 [+ sfun1(2)
8 [' G5 z" R* q! e* m! Dfun1(2,3,4,5,6)6 u5 T) O1 K% i* e3 m

0 D. O! r' [% w6 H; o9 d8 S1 ?4 Z. u$ x0 [5 C/ A
调用之关键字实参

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

; I6 [% x  Z. h  `% I5 U& w
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)
: e; @$ ?& p  W! A; ^
带默认值的形参

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


7 e/ e- f. q, L5 N: ?9 \: o+ u- Q
[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)
1 d: M4 l9 U: D8 s* `2 n7 i

( u* n% B3 V4 P; E" U4 ~% B
2 E& P1 t9 r$ k8 O  q7 j: _1 C. z

3 F, G# A9 a' r+ p' I9 i  c: b




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5