Python学习笔记---高级主题

本文介绍了Python中列表递归的应用实例及名字空间的概念。通过一个递归函数演示了如何遍历嵌套列表并打印每个元素,同时讲解了局部、模块和内置三种名字空间的区别。
部署运行你感兴趣的模型镜像

1.列表的递归---用于输出列表字符串中的每个元素

>>> def printList(L):
    #如果为空,则什么都不做
    if not L:
        return
    #如果是链表,则对第一个元素调用printList函数
    if type(L[0])==type([]):
        printList(L[0])
    else:#如果不是链表,仅输出元素即可
        print L[0]
    #处理L的其他部分
    printList(L[1:])

>>> aList=['a',['b','c',['d','e']],'f',[],'g']
>>> printList(aList)
a
b
c
d
e
f
g
>>>

由于上例中是列表的嵌套,所以我们必须测试首项是否为一个列表,如果是,则递归调用printList()函数,如果不是,那我们就简单地打印它。处理完首项后,我们将继续处理列表的其他各项。

在大型数据结构中,递归会耗尽内存,因此,如果你的内存比较小,或者想处理很大的数据结构,那么使用更复杂的常规代码可能更安全些。

2.Python有三种名字空间:

    局部---在类,模块或方法中定义的名字

    模块---在文件中定义的名字

    内置---python自身定义的名字

绘图1

如果要访问模块名字空间,使用import

3.事件驱动编程:面向批处理的程序流程是---启动程序,处理事情,然后终止程序;而事件驱动程序流程是---只有通过事件触发,程序才启动程序,等待事件,然后由事件通知它终止

编写事件驱动程序有两种方式:一是模拟一个事件环境;二是创建一个简单的GUI程序,该程序可利用操作系统和环境来生成事件。

事件捕获和处理的独立性是事件驱动编程的关键特性。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值