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'))
posted @ 2020-06-11 22:07  枫叶少年  阅读(344)  评论(0编辑  收藏  举报