用python画枫叶-python-函数及练习

一、函数的返回值

可以通过人return 来指定函数的返回值

用一个变量来接收返回值

return 后面跟什么值,函数就会返回什么值

# 在函数中return后的代码都不会被执行,return一旦执行,函数自定结束

例如: print('jaaj')

return '3'

print('123')

print(fn) # fn是函数对象,打印fn 就是在打印函数对象,

print(fn()) # fn() 是在调用函数,打印fn() 实际上就是在打印fn()的返回值

二、函数的作用域(scope): 作用域指的是变量生效的区域

scope = locals() # 要获取函数内部的命名空间

# globals() # 这个函数可以在任意位置获全局的取命名空间

递归函数-- - -- - - - - - - - - - - -- - - -

递归:自己去引用自己

递归函数就是在函数中调用自己

递归是解决问题的一种方式

整体思想就是将一个大问题分解为一个一个的小问题,直到问题无法分解时在去解决问题

# 递归函数的两个条件

1.基线条件 问题可以被分解为最小的问题,当满足基线条件时,递归就不在执行了

2.递归条件 将问题继续分解的条件

3.用递归方法求阶乘:

def fn2(n):

# 参数n 要求阶乘的数字

# 基线条件 判断n为1的时候,就不递归了

if n == 1:

return 1

# 递归条件

return n * fn2(n-1)

print(fn2(10))

4.定义一个函数,来为任意数字做任意幂运算

def fn1(n,i):

# 基线条件

if i == 1:

return n

# 递归条件

return n * fn1(n,i-1)

print(fn1(5,8))

5.先检查最后一个字符和第一个字符是否相等,如果不是,一定不是回文

def fn2(s):

# 参数s 要检查的字符串

# 基线条件

if len(s) < 2:

# 字符串的长度小于2,一定是回文

return True

elif s[0] != s[-1]:

# 不是回文

return False

# 递归条件

return fn2(s[1:-1])

print(fn2('abcdefedcba'))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值