python实现isodd函数_关于python函数(一)

函数 function

定义函数

def 函数名(参数列表):

​ 语句块

​ ....

调用函数

作用是让代表码块执行

len(x)

return 语句

作用:

​ 从一个函数中返回,返回到调用此函数的地方

语法:

return [表达式]

​ return  # 等同于return None

函数的参数传递

def myfun1(a, b, c):

​ print(a, b, c)

位置传参

myfun1(1, 2, 3)

序列传参

myfun1(*"ABC")

myfun1(*[11,22,33])

(*args)

关键字传参

myfun1(b=20, a=10, c=30)

字典关键字传参

d = {"c":33, "b":22, "a":11}

myfun1(d) ## (kwargs)

函数的缺省参数

default argument

语法:

​ def 函数名(形参名1=默认实参1, 形参名2=默认实参2, ...):

​ 语句块

def myadd(a, b, c=0, d=0):

​ return a + b + c + d

print(myadd(100, 200))

print(myadd(100, 200, 300))

print(myadd(100, 200, 300, 400))

-------- 以下讲函数形参(定义函数时) -----------

前情回顾:

函数参数的定义方式:

位置形参

星号元组形参 (*args) type 'tuple'

命名关键字形参

双星号字典形参 (**kwargs) type 'dict'

位置形参

语法

def 函数名(形参名1, 形参名2, ....):

​ 语句块

示例:

def myadd(a, b, c, d): # a,b,c,d为位置形参

​ return a + b + c + d

星号元组形参

语法

def 函数名(*元组形参名):

​ 语句块

作用

收集多余的位置传参

命名关键字形参:

语法

def 函数名(*,命名关键字形参列表)

# 或

def 函数名(*args,命名关键字形参列表)

作用

所有的参数都必须用关键字传参或字典关键字传参

双星号字典形参

语法:

def 函数名(字典形参名): (kwargs)

​ 语句块

作用:

用于收集多余的关键字传参

函数的参数说明:

位置形参,星号元组形参,命名关键字形参,双星号字典形参和缺省形参可以混合使用

函数参数自左至右的顺序为:

位置形参,星号元组形参,命名关键字形参,双星号字典形参 (a,b,*args,c=0,**kwargs)

综合示例:

def fn(a, b, *args, c, **kwargs):

​ pass

可以接收任意的位置传参和和关键传参的函数:

def fn(*args, **kwargs):

​ pass

示例:

实现mymax函数,功能与max函数功能相同

见: mymax.py

练习:

\1. 写一个函数getmin(x) 返回一个列表中的最小数

def getmin(lst):

​ ....

print(getmin("A1B2C3")) # 1

print(getmin([5, 3, 1, 2, 4])) # 1

\2. 写一个函数,传入任意的整数数字,然后将所有的数字相加之和返回

def mysum(...):

​ ...

print(mysum(1, 2, 3, 4)) # 10

print(mysum(100, 200)) # 300

函数变量

函数名是变量,它在创建函数时绑定一个函数

示例1:

def f(): # f为变量,f绑定一个函数

​ print("hello")

​ print("world")

f1 = f # 注意f没有加()

f1() # ????

示例2:

def f1():

​ print("hello")

def f2():

​ print("world")

f1, f2 = f2, f1

f1() # ???

一个函数可以作为另一个函数的参数传递

示例:

def say_hello():

​ print("hello world")

def f2(f):

​ print(f)

​ f() # 调用f变量绑定的函数

f2(say_hello) # ???

示例:

def goodbye(L):

​ for x in L:

​ print("再见", x)

def hello(L):

​ for x in L:

​ print("您好", x)

def operator(fn, L):

​ fn(L) # 调用fn绑定的函数

operator(goodbye, ["Tom", "Jerry"]) # ????

案例:

# 试看懂下面的代码:

def myinput(fn):

​ L = [3,1,5,9,7]

​ return fn(L)

print(myinput(max)) # 9

print(myinput(min)) # 1

print(myinput(len)) # 5

print(myinput(sum)) # 25

函数可以作为另一个函数的返回值:

def get_op():

​ s = input("请输入你的操作: ")

​ if s == "求最大":

​ return max

​ elif s == '求最小':

​ return min

​ elif s == '求和':

​ return sum

L = [2, 4, 6, 8, 10]

f = get_op()

print(f(L)) # ????

练习:

写一个计算器函数get_op, 此函数有一个参数op,如下:

已知有如下函数:

​ def myadd(x, y):

​ return x + y

​ def mymul(x, y):

​ return x * y

​ def get_op(s):

​ ... # 此函数需要完成

​ s = input("请输入计算公式: ") # 10 加 20

​ L = s.split()

​ a = int(L[0])

​ b = int(L[2])

​ fn = get_op(L[1])

​ print("结果是:", fn(a, b)) #

# python3 xxx.py

请输入计算公式: 10 加 20

结果是: 30

请输入计算公式: 10 乘 20

结果是: 200

函数的嵌套

函数嵌套是指一个函数里用def语句来创建其它的函数的情况

示例:

def fn_outter():

​ pr

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值