Head First Python 第一章 看书心得

来源:互联网 发布:淘宝隐形眼镜可靠吗 编辑:程序博客网 时间:2024/06/11 17:42

Head First Python 第一章看书心得

  • 这是一本很有意思的入门书籍
  • BIF(built-in functions) 顾名思义,就是Erlang内建函数。它们通常用来完成那些无法用Erlang完成的任务。比如将列表转换为元组或者获取当前的时间和日期。完成这些操作的函数,我们称之为BIF。

定义一个movie列表:

>>> movies=["The Holy Grail","The Life of Brian","The Meaning of Life"]>>> print(movies[1])The Life of Brian

处理列表数据

for循环迭代处理列表

>>> fav_movies=["The Holy Grail","The Life of Brian"] //定义列表>>> for each_flick in fav_movies:    print(each_flick)The Holy GrailThe Life of Brian

使用for是可伸缩的,适合于任何大小的列表。
但是有时for并不适用于嵌套列表。例如

>>> movies = ["The Holy Grail",1975,"Terry Jones & Terry Gailliam",91,["Graham Chapman",["Michal Palin","Jone Cleese","Terry Gilliam","Eric Idle","Terry Jones"]]]//定义一个三层嵌套列表>>> print(movies)['The Holy Grail', 1975, 'Terry Jones & Terry Gailliam', 91, ['Graham Chapman', ['Michal Palin', 'Jone Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]]//原样打印该列表>>> for each_item in movies:    print(each_item)The Holy Grail1975Terry Jones & Terry Gailliam91['Graham Chapman', ['Michal Palin', 'Jone Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]>>> 

这个for循环只打印外列表的各项数据,嵌套在下一层列表的数据原样打印,因为对于外列表来说,内列表只是它的一个列表项。
下面学习在如何列表中查找列表。
利用if

  • 使用isinstance()来检查某个特定标识符是否包含某个特定类型的数据。例:
>>> names = ['Michael','Terry']//创建一个简单的列表>>> isinstance(names,list)     //询问names是否是一个列表True>>> nun_names = len(names)     //求names列表的长度,将该长度数字赋给一个标识符nun_names>>> isinstance(nun_names,list)//询问该标识符是一个列表吗False

利用isinstance()函数写出遍历movies[]列表的代码!

>>> for each_item in movies:    if isinstance(each_item,list):        for nested_item in each_item:            if isinstance(nested_item,list):                for nnested_item in nested_item:                     print(nnested_item)            else:                print(nested_item)    else:        print(each_item)The Holy Grail1975Terry Jones & Terry Gailliam91Graham ChapmanMichal PalinJone CleeseTerry GilliamEric IdleTerry Jones>>> 

不重复代码,应当创建一个函数

如何创建Python 的函数呢?
这里写图片描述

>>> def print_lol(the_list)://the_list是形参,下面的movies是实参    for each_item in the_list:        if isinstance(each_item,list):            print_lol(each_item)//递归调用print_lol函数        else:            print(each_item)>>> print(movies)['The Holy Grail', 1975, 'Terry Jones & Terry Gailliam', 91, ['Graham Chapman', ['Michal Palin', 'Jone Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]]>>> print_lol(movies)//调用函数The Holy Grail1975Terry Jones & Terry Gailliam91Graham ChapmanMichal PalinJone CleeseTerry GilliamEric IdleTerry Jones>>> 

Python3中的递归深度不能超过100。

看书心得:

大学里什么主流语言都学过,但是考试过后又都扔了。希望自己不要浪费难得的研究生时光,认真的学点东西。