加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

[Python] 函数基本

发布时间:2020-12-17 00:22:29 所属栏目:Python 来源:网络整理
导读:使用def 函数名(): 来定义一个函数,函数体一缩进块的形式写,返回结果是return xx 例如: def myAbs(x): ???????? if x >= 0: ?????????????????? return x ???????? else: ?????????????????? return –x 可变参数 在参数的前面加一个*号,函数里面接收到

使用def 函数名(): 来定义一个函数,函数体一缩进块的形式写,返回结果是return xx

例如:

def myAbs(x):

???????? if x >= 0:

?????????????????? return x

???????? else:

?????????????????? return –x

可变参数

在参数的前面加一个*号,函数里面接收到的参数是tuple类型,遍历一下

#可变参数

def myCalc(*nums):

???????? sum=0

???????? for num in nums:

?????????????????? sum+=num

???????? return sum

print(myCalc(1,2,3))

迭代

通过for循环来遍历list或者tuple,这种遍历称为迭代

使用for in来迭代list,for key in list:,例如:

for item in myList:

???????? print(item)

使用for in来迭代dict,for k,v in d.items:,例如:

user={"name":"taoshihan","age":"100"}

for k,v in user.items():

???????? print(k+"=>"+v)

切片

取一个list或tuple的部分元素,使用切片操作符list[a:b],取list的元素从a开始到b结束(不包含b)

例如:myList=[1,3]

print(myList[0:2]) 输出[1,2]

函数递归

求n的阶乘(n!)

def myFact(n):

???????? if n==1:

?????????????????? return 1

???????? return myFact(n-1)*n

print(myFact(30))

使用尾递归优化来解决栈溢出问题,return语句里面不能包含表达式,但是Python语言没有引入尾递归,因此不能使用

解决汉诺塔问题:

def myMove(n,source,bridge,destination):

???????? if n==1:

?????????????????? print("从"+source+"移动"+"到"+destination)

???????? else:

?????????????????? myMove(n-1,destination,bridge)

?????????????????? print("从"+source+"移动"+"到"+destination)

?????????????????? myMove(n-1,destination)

myMove(5,"a","b","c")

函数式编程的特点:允许把函数本身作为参数传入另一个函数,还允许返回一个函数

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读