西天取经python之路 DAY(八)

本文深入探讨了Python编程中的核心概念,包括局部变量与全局变量的区别及应用,递归函数的实现方式,以及高阶函数的定义与使用。通过具体代码示例,详细解释了变量作用域、递归调用过程和函数作为参数传递的高级特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一个程序

局部变量和全局变量-local_global_variable

# encoding: utf-8
'''
@author: ccq
@file: local_global_variable.py
@time: 2019/6/8 19:25
'''
# 局部变量和全局变量

hobby = "python"
name = "ccq"
name_list=["a","b","c"]

def change_name(name):
    # 通过global关键字申明,在函数内将局部变量变成全局变量
    # 不要这么用
    global hobby

    name = "CCQ"
    print("before change", name, hobby,name_list)
    hobby = "PYTHON"
    name_list[0]="aaaaaaaaaaa"
    print("after change", name, hobby,name_list)


change_name(name)
print(name)
print(hobby)
print(name_list)

#简单来说,函数中的变量都是局部变量,不在函数中的变量则是全局变量。(除了在函数中用global关键字申明外)

#顾名思义,局部变量就是在局部可以使用,即只能在函数中使用的变量,一旦超出函数范围,则该变量不能使用。全局变量就是在整个python文件内都可以使用的变量,在方法体内也可以使用。

#注意,如果该变量是参数(例如上述代码中的name变量),则不能通过global关键字去申明变成全局变量,pycharm会报错。

#但是最好不要使用global,会带来很大问题。

#除了整数和字符串这种简单的类型,他们在函数中修改是不会影响全局变量的。其他的例如列表,字典,集合等复杂数据类型,这些一旦在函数中被修改,全局也会被修改。


(编辑器里有分割线。我之前还傻傻的自己敲。一遍一遍的复制。僵硬。)

第二个程序

递归-recursion

# encoding: utf-8
'''
# @Author  : ccq
# @File    : recursion.py
# @Time    : 2019/6/9 17:46
'''


# 递归
def recursion(n):
    print(n)
    if n / 2 > 0.2:
        return recursion(n / 2)


recursion(10)

#就是一个简单的递归


第三个程序

高阶函数-highlevelfunction

# encoding: utf-8
'''
# @Author  : ccq
# @File    : highlevelfunction.py
# @Time    : 2019/6/9 20:17
'''


# 高阶函数
def function1(z):
    return z + 2


def function2(x, y, f):
    return f(x) + f(y)


result = function2(2, 3, function1)
print(result)

#就是一个很简陋的高阶函数。但是也花了我不少时间。

#调用高阶函数的时候,只能有一个参数,即function1只能有一个参数。不然会对应不上。

#目前我还没研究出来function1有多个参数的时候,function2要怎么写。

#但是感觉貌似没啥用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值