Python函数function②

#返回值:return关键字
def fn():
   # return "hellow"
    '''
   关于一个返回值的函数,return为返回fn2函数,面向函数对象,fn2()调用此函数
    '''
    def fn2():
        print("内层函数")
        print(id(fn2))
    return fn2#面向对象,return fn2()是返回调用函数的值,注意!!!
l=fn()#可以用一个变量进行接值,进行输出。
l()
print(l,id(l))
help(fn)#函数文档描述,可以用来查看自定义函数和全局已经存在的函数。'''    '''中间加定义内容
# 如果仅仅写一个return 或者 不写return,则相当于return None ,python解释器会在末尾自动加上NONE
# 在函数中,return后的代码都不会执行,return 一旦执行函数自动结束
#执行结果: 内层函数
#打印函数结果为None#
def fn():
    # return 'Hello'
    # return [1,2,3]
    # return {'k':'v'}
    def fn2() :
        print('hello')
        print(id(fn2))

    return fn2 # 返回值也可以是一个函数

r = fn()
r()
print(id(r))
#作用域,即变量生效的范围,分为全局作用域和函数作用域
#  作用域的生效时间和终止时间,全局作用域在程序执行时创建,在程序执行结束时销毁
#  在全局定义的变量,属于全局变量,全局变量可以在程序的任意位置被访问
#  函数作用域
#   - 函数作用域在函数被使用时才会被创建,在该函数使用结束销毁
#   - 函数每调用一次就会产生一个新的函数作用域
#   - 在函数作用域中定义的变量,都是局部变量,它只能在函数内部被访问
#全局作用域无法修改函数作用域,函数作用域修改全局作用域利用关键字{global  变量}的方式
print(30*"*")
a=100
def fn3(a):
    a=80
    print(a)
fn3(1)
print(a)
#命名空间实际上就是一个字典,是一个专门用来存储变量的字典,关键字locals()
b=locals()
print(b)
#在全局下使用就是全局命令空间,在函数中使用就是该函数的命名空间,也可以简单理解为全局变量

递归函数练习(递归相当于循环嵌套)

#循环的方式,求一个数的幂值
def power(n, m):
    '''
    为任意的数字做命运算,产数n,m
    n为幂运算的数字
    m为幂运算的次数
    '''
    i=1
    j=1
    while abs(m)>=i:
        i+=1
        if m == 0:
            return 1
        elif m > 0:
            j*=n
        elif m<0:
            j*=1/n
    return ("%.2f"%(j))
print(power(2, -2))
#递归的方式
def power(n, m):
    '''
    为任意的数字做命运算,产数n,m
    n为幂运算的数字
    m为幂运算的次数
    '''
    if m == 0:#基线条件
        return 1
    elif m > 0: #在什么情况下可以进行递归
        return n*power(n,(m-1))
     #在什么情况下可以进行递归
    result=1/n *power(1/n,(abs(m)-1))
    return ("%.2f"%(result)) #由于浮点数数运算在计算机中,取的都是近似值,故需要在此去近似值

print(power(2, -2))
#创建一个函数,来检查任意字符串中是否含有回声字符串,有返回true,没有返回false(回声字符串就是正读反读相同的)
def hui_wen(s):
    '''
    检查函数,若输入的字符串存在回文,返回True,否则返回False
    '''
    #基线条件
    if len(s)<2:
        return True
    #字符串的长度小于2,一定是回文字符串
    elif s[0] != s[-1]:
        return False
    #递归条件满足,
    return hui_wen(s[1:-1])
print(hui_wen("abcba"))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值