小甲鱼零基础入门学习python课堂笔记.docx

上传人:wj 文档编号:659922 上传时间:2023-04-29 格式:DOCX 页数:105 大小:6.69MB
下载 相关 举报
小甲鱼零基础入门学习python课堂笔记.docx_第1页
第1页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第2页
第2页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第3页
第3页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第4页
第4页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第5页
第5页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第6页
第6页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第7页
第7页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第8页
第8页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第9页
第9页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第10页
第10页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第11页
第11页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第12页
第12页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第13页
第13页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第14页
第14页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第15页
第15页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第16页
第16页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第17页
第17页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第18页
第18页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第19页
第19页 / 共105页
小甲鱼零基础入门学习python课堂笔记.docx_第20页
第20页 / 共105页
亲,该文档总共105页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

小甲鱼零基础入门学习python课堂笔记.docx

《小甲鱼零基础入门学习python课堂笔记.docx》由会员分享,可在线阅读,更多相关《小甲鱼零基础入门学习python课堂笔记.docx(105页珍藏版)》请在冰点文库上搜索。

小甲鱼零基础入门学习python课堂笔记.docx

[键入公司名称]

人生苦短,我用Python

[键入文档副标题]

徐辉

[选取日期]

目录

01讲:

我和Python的第一次亲密接触 8

02讲:

用Python设计第一个游戏 9

03讲:

小插曲之变量和字符串 12

04讲:

改进我们的小游戏 13

05讲:

闲聊之Python的数据类型 15

06讲:

Pyhon之常用操作符 16

07讲:

了不起的分支和循环1 17

08讲:

了不起的分支和循环2 19

09讲:

了不起的分支和循环3 21

10讲:

列表,一个打了激素的数组1 23

11讲:

列表,一个打了激素的数组2 25

12讲:

列表,一个打了激素的数组3 27

13讲:

元组,戴上了枷锁的列表 30

14讲:

字符串:

各种奇葩的内置方法 32

15讲:

字符串的格式语句与操作符 37

16讲:

序列相关内置函数介绍 40

1-16讲:

阶段总结 45

17讲:

函数:

Python的乐高积木 46

18讲:

函数:

灵活即强大 47

18讲2:

py文件打包成exe文件 49

19讲:

函数:

我的地盘我做主 50

20讲:

函数:

内嵌函数和闭包 52

21讲:

函数:

lambda表达式 54

22讲:

函数:

递归是神马 56

23讲:

递归:

这帮小兔崽子 57

24讲:

递归:

汉诺塔 59

17-24讲:

阶段性总结 60

25讲:

字典:

当索引值不好用时 61

26讲:

字典:

当索引值不好用时2 62

27讲:

集合:

在我的世界里,你就是唯一 65

28讲:

文件:

因为懂你,所以永恒 66

29讲:

文件:

一个任务 68

30讲:

文件系统:

介绍一个高大上的东西 71

31讲:

永久存储:

腌制一缸美味的泡菜 75

31讲:

异常处理:

你不可能总是对的 76

33讲:

异常处理:

你不可能总是对的2 78

34讲:

丰富的else语句和简洁的with 81

35讲:

图形界面用户入门:

EasyGui 83

36讲:

类和对象:

给大家介绍对象 83

37讲:

类和对象:

面向对象编程 85

38讲:

类和对象:

继承 86

39讲:

类和对象:

拾遗 87

40讲:

类和对象:

一些相关的BIF 90

41讲:

类和对象:

构造和析构 92

42讲:

类和对象:

算术运算符 94

43讲:

类和对象:

算术运算符2 96

44讲:

魔法方法:

简单定制 97

45讲:

魔法方法:

属性访问 99

46讲:

魔法方法:

描述符 101

47讲:

魔法方法:

定制容器 104

48讲:

魔法方法:

迭代器 105

----小甲鱼

四件在我步入职业软件开发生涯那天起就该知道的事情

我的软件开发生涯开始于大约15年以前。

*m2]9R!

f#R)G/O1g'z

)q8l%{(o*j8e1S6J

但是直到最近5年,我才真正地看到它的提高。

+J  Q/G!

K6f,\2s

9}&T1X7y6L

下面这些事情,我希望在进入软件开发领域时我已经知道了。

如果我早点知道这些事儿,我将会变得更加成功。

7q!

l!

O+O&T+e"i9r

  :

i&G6U-f-K'}4t

软件开发中没有“正确的方式“

:

p-k8T0O;_7X9E

在我开发生涯的早期,我在学习和争论上浪费了大量的时间。

我错误地认为,在软件开发的诸多方面都存在一种绝对”正确的方式“。

但是,关于软件开发,几乎每一件我当时认为是正确的事到头来都被证明是错的。

:

{9o-P3Y8S4Y.F(@

更重要的是,我发现几乎没有任何一件事是非黑即白的。

在编写代码和开发软件的过程中,几乎所有的决策都是基于当时特定的情形。

我之前已经谈过为什么信仰一种技术对开发人员有害,但是我现在说的这个话题谈的不止是一种技术(这么狭隘)。

'[*f1}5@$J+L

没有通用的最佳实践,这也是真的。

甚至是一些highycharged话题。

例如,要不要单元测试?

敏捷开发和瀑布模型哪个好?

这些没有永远正确的答案。

在我的职业生涯中,我在”正道“(理想主义)路线的迷宫里浪费了太多的时间,而不是采用可以帮我走得更远的”务实“(现实主义)路线。

5t:

E6~  r;Z3A!

m(R8R

  4L$Y8O:

T)n7I!

Z

细读书不是最佳的学习方式

9O4o,?

  r5W"o  v

我一开始学习编程和技术知识的时候,我花了太多时间细读一些关于特定技术的书。

 6l$Z&G1{3b0p

-s&Z8g-z*~(u

读书没错,但是选择读什么书和读它的哪一部分非常重要。

比如,我记得我读过一本非常厚的讲VC++的书。

(我十分肯定是这本书的更早的一个版本。

)不管怎么说,这本书是本内容丰富的好书,但是一页一页地读并不是学习VC++最好的方式。

9d0H0c!

v,h;_

如果我当时先粗略地看看此书的章节,获得对VC++的一些全局的认识,然后再去搞懂其中最最重要的部分,我能学到并记住更多的东西。

如果我当时坐下来,通过实际地做一些东西来练习基础知识,而不是仅仅读一下或者过一过书上的例子,我现在会更加成功。

你没有在真正地学一门技术,除非你用它解决了真正的问题。

m'h5P,T*p4}

  

深入学习一门特定技术是浪费时间

我不仅在”细读书“上浪费了时间,我在”读错书“上也浪费了时间。

我错误地相信,从里到外学习一门特定的技术能很好地推动我的职业生涯。

我花了太多时间读一些非常专门的技术书,如,ASP.NET或Hibernate,而不是读更多的像《代码大全》,《代码整洁之道》,和《敏捷软件开发:

原则、模式与实践(C#版)》。

(BTW,我推荐你去读所有的这些书,如果你没读过的话。

)*]9_&X+m*E;}$s

尽管了解你所使用的技术非常重要,但是成为那个特定技术的绝对专家并不重要。

知道确切的API调用没多大好处,你需要的时候可以轻而易举地查到。

)B1L-P7W%m#k/S

*}#X9X-O+a%z0\9I

我在太多技术上花了太多时间深入学习,最后这个技术不是死掉了就是我后来放弃不用了。

大多数关于这些特定技术的知识最后只代表了浪费掉的时间。

!

s#[)n'M%C7]/a6l

我发现,成为你正在使用的特定的程序语言的专家很重要,因为程序语言方面的知识将影响你很长时间。

我仍然百分之百会花时间深入学习$@6Z%{:

b/m  P,|

.v,Y*f+J  N4w6s

C++,C#和Java,但是我可能会花较少的时间去学习C++所有复杂的细节,因为那些细节现在对我帮助不大。

4N"K7|0v5C(U

0j$d'M0S4H$F,H*u

  

在你的开发生涯中,社区极其重要!

$O"r6Q2B:

v/C

我的生涯早期,我犯了一个错误,就是不怎么去向社区寻求帮助,也不为他人提供帮助。

;X/~7o+D*m/a'[  x,T,D9x

 

我一向乐于帮助我的同事,也在不同的工作岗位上也非常善于交际,但活动范围从来没有超出过公司。

7\  z/U3f*Q8x9H.\

我在我的生涯中花了大量的时间,试图在一个特定的公司进行投资,却没能将我的时间投资在我参与的软件开发社区中。

我花了很多时间,做关于技术或者是最佳实践的内部presentation,而这些时间原本可以用来制作可以服务于社区的内容和材料,同时也能给我带来工作上的认可。

7`6P-M1l:

X

我也犯了另一个错误,就是认为自己没什么有价值的东西去贡献。

5k6g(t;F1j'o,L

我和很多刚入行的开发者聊过,有时候我觉得,比起我们这些”老油条“,他们有更多的东西去贡献给社区,因为他们更理解其他初学者蛋疼的问题。

/E6N1]4J4x%P3x&Q

如果我可以重来一遍,我一定会在我的生涯中更早、更多地参与各种会议和用户群。

我会更早地开始写博客,并利用我的大部分学习时间去

建立项目和资源,去帮助别人而不是只读书。

&R9|"i*f2g5O9];i

3M/i+S0T1[8@3C.T7[

总是参与一个业余项目5p8q'X(C*W9x9O.m

可能我做的最大的,并且对我生涯影响最大的改变将会是完全戒掉电视,无尽的任务和魔兽世界(两个游戏),并把这部分时间花在一个业余项目上。

(U:

B:

g'}%l

我过去花了相当一部分时间做一些享受性的,但是对我的生活没有长远利益的事情。

5_:

`&p&j.d4s*]9T6T0T;b

大约3到4年前,我已经基本不看电视了,现在我也很少看电影。

电视和大部分电影只是一个对时间的巨大浪费,而这些时间你可以用来干很多有用的事。

视频游戏很大程度上也是一样,但至少在视频游戏里,你在积极地做一些事情,而不是被动地吸收一些没有用的信息。

我会一直热爱玩视频游戏,并且我不认为我会停下来,但是,我真心希望我(之前)把一大部分用来打游戏看电视的时间花在一个业余项目上。

惭愧的是,我做的第一个真正的业余项目是在大约三年前,那时我开始创建我的第一个android应用。

/{1|(L"M!

l2M.?

当你在为别人工作的时候,花时间为自己工作非常重要,不然你就是在为他人建立王国而忽视自己的王国。

+U#l3d;`%}3p#]

我不仅从最近几年的业余项目中学到了很多,并且我也从中得到了很多利益。

事实上,其中一个,即制作Pluralsight课程,是我现在花全部时间在做的。

2

01讲:

我和Python的第一次亲密接触

本期内容介绍:

  1.Python语言介绍;

  2.Python程序下载安装过程;

  3.IDLE功能介绍;

  4.字符串类型说明;

  5.print()函数功能说明;

  6.在Python中的“*”和“+”号运算符的功能;

内容详细说明

  1.Python即可用作解释其他高级语言的脚本语言,也是一门面向对象的高级语言;较之C语言和java编程效率要高得多。

  2.推荐在Python官网下载3.0以上版本并安装,下载地址见www.python.org/downloads/

  3.IDLE是Python程序自带的辅助开发工具,也就是一个能与程序进行交互的文本框,在开始菜单下的输入框内输入“IDLE”并回车, 便能找到并打开IDLE界面,初学者可以靠它进行交互式学习。

  4.字符串类型在Python中被定义为以双引号或单引号引起来的字符,例如,

    

在Python中只有字符串变量,没有像C语音一样字符变量的概念,例如

  

5.print()函数用于将字符串或数字等在屏幕上显示,例如

    >>>print('小甲鱼')

      小甲鱼

    >>>print(3+5)

      8

  6.在Python中“*”连接一个字符串和数字时表示将字符串重复多少次,例如

      >>>"赞"*5

      '赞赞赞赞赞'

    而两个字符串之间以“+”号连接表示将两个字符串拼接,例如

    >>>'小甲鱼'+'醉酒青牛'

    '小甲鱼醉酒青牛'

    另外“+”号两边必须是同样的数据类型,如果是一个字符串和一个数字则报错,例如

    >>>'小甲鱼'+5

    Traceback(mostrecentcalllast):

      File"",line1,in

        '小甲鱼'+5

     TypeError:

Can'tconvert'int'objecttostrimplicitly

7.  在Widnwos下,在IDLE下的快捷键小知识:

    1)组合Alt+P表示上一个命令,Alt+N表示下一条命令

02讲:

用Python设计第一个游戏

上期内容回顾:

1.Python语言介绍

2.Python程序下载安装过程

3.IDLE功能介绍

4.字符串类型说明

5.print()函数功能说明

6.在Python中的“*”和“+”号运算符的功能

7.IDLE中一些常用快捷键

本期主要内容导读:

    主要是通过一个文字小游戏,使得大家了解Python程序的基本格式以及相应程序的流程图和关于内置函数的相关介绍。

废话不多说,入正题!

1.Python程序的基本格式介绍

    Python程序的的基本格式是缩进,通过不同的缩进代表不同的作用域,这是有别于C及JAVA等高级语言最显著的特点,而且缩进使得程序变得更加简洁和整齐。

另外,我们需要掌握几个快捷键来提高编程效率:

在IDLE窗口下,Crtl+n表示新建一个Python程序文件,Crtl+s表示保存当前编辑的Python程序文件,F5表示执行程序文件;还有一个Tab键对初学者也非常重要。

它有三个作用:

1)通过按Tab键可实现程序代码缩进,IDLE现在支持选择多行代码,实现多行缩进的效果;2)调用内置函数时,如果只记得头几个字母,可以输进去之后按Tab键,会显示该头字母开头的所有内置函数。

2.绘制流程图

    我们主要了解一个程序包含的基本要素,任何一个程序最基本的要素为”开始“,”程序体“,”结束“三部分组成,程序体内除了一些按先后顺序执行的语句外,还有条件语句和循环语句,他们是程序体的核心。

本期的程序对应的流程图见附件。

3.内置函数

    内置函数,英文为Bulit-infunctions,我的理解就是可以在Python的IDLE里面直接使用的函数,而其他函数使用是需要通过import语句调入扩展包后才能使用。

在IDLE下通过键入dir(__builtins__)回车可以列出所有Python的内置函数,而每个内置函数的功能及使用方法可以使用help(内置函数名)

的方法显示出来。

这一期里面,我们要掌握input()函数以及int()函数的用法,关于这两个函数用法由于过于简单,这里就不再赘述。

4.一点补充

    Python程序内不需要事先声明变量,可以直接赋值使用,另外需要注意if和else语句的使用方法,赋运算符值"="和比较运算符"=="的使用和区别来。

文字游戏代码:

流程图

03讲:

小插曲之变量和字符串

上期内容回顾:

  1.Python程序的基本格式介绍;

  2.绘制流程图;

  3.内置函数介绍;

本期主要内容简介:

  1.变量;

  2.转义字符使用介绍;

  3.原始字符串用法;

  4.长字符串的用法;

详细内容说明:

  1.变量:

在Python中变量不需要事先声明,但是需要先赋值后再使用,变量更像是贴在值上的标签,这给Python带来了很大便捷。

变量的名字和C及java编程语言一样,由字母、数字、下划线组成,且首位不允许是数字,而且变量名最好能专业些,让人一看就知道其含义。

  2.字符串:

 在Python中字符串就是以双引号或者单引号括起来的内容,但是单、双引号不能混用。

例如"小甲鱼",‘小牛’都是合法的字符串,而“小甲虫’则会报错。

  3.转义字符:

刚才说了,在Python里面''和‘主要起到定义字符串的作用,但是如果一个字符串中本身又包含字符串呢,不要急,这里轮到我们的转义 字符华丽登场了!

转义字符就是反斜杠'\',对于想要将其作为一个字符处理的单引号或者双引号而言,前面只要加上转义字符就可以了。

例如对于字符串Let'sgo!

,我们就可以这样写'Let\'sgo!

'。

另外,我们也可以使用"Let'sgo!

"来表示。

最后,转义字符加上一个字母可以表示特殊的含义,比如最常见的'\n','\t'等。

感兴趣的鱼油可以看鱼神的总结

  4.原始字符串:

在Python中,反斜杠主要用来作为转义字符的,当我们需要用其本身含义时,可以对其自身前面加一个转义字符处理。

但是对于一些特殊的字符串,如果里面频繁用到反斜杠,再手动的去一个个加就显得繁琐,这个时候可以在其字符串前面加上一个字母r,轻松解决,这就是原始字符串的含义,让字符串中的反斜杠回归原始的本意。

例如字符串C:

\ProgramFile\Intel\WiFi\Help,定义只要r'C:

\ProgramFile\Intel\WiFi\Help',他的实现方法其实很简单,就是程序会自动对每一个反斜杠前面再加一个反斜杠。

但是r不能对末尾是反斜杠的字符串进行定义,'C:

\Temp\'。

这个时候如果非要使用r进行原始字符串操作的话可以采用如下形式解决:

r'C:

\Temp''\\'或者r'C:

\Temp'+'\\'。

  5.  长字符串:

一般情况下,使用单引号或者双引号只能引一行的字符串,如果字符串是有多行组成,则需要使用三引号,例如:

'''我爱鱼C,

    正如我爱小甲鱼。

    他那呱唧、呱唧的声音,

    总萦绕在我的脑海里,

    久久不肯散去。

'''

   6.特别注意:

Python里面所有的操作符如单引号、双引号、冒号、小括号等等都必须是英文字符,否则会报错。

04讲:

改进我们的小游戏

上期内容回顾:

  1.变量;

  2.转义字符使用介绍;

  3.原始字符串用法;

  4.长字符串的用法;

本期内容详解:

通过对比可以发现,

1):

小牛的程序里面在循环体内外都有输入数字和判断语句,显得有些重复;

2):

如果第三次输入也没有输对的话,小牛的代码里并没有判断输入的数是大了还是小了;

而鱼神代码里面,在循环体外并没有让用户输入一个值,而是对guess赋了一个初值0,并保证这个值绝对不与答案相等;

在循环体内,首先要求用户输入一个数,并让次数总数减1,然后先判断是否与答案值相等,等了就结束,否则继续判断值是大了还是小了,大了则输出值偏大了并接着判断输入次数是否用尽,小了同样输入小了并判断次数是否用尽,接着判断程序体条件是否为真以判断是否继续循环,直到用户输入正确或次数用尽则结束循环。

最后一条语句声明游戏结束。

05讲:

闲聊之Python的数据类型

小牛有话说:

亲爱的鱼油们,大家好,我是小牛,我又过来班门弄斧啦,这一期里面鱼神主要是对Python中的数据类型进行了介绍,主要涉及到了字符串。

整形和浮点型及布尔类型等基本的数据类型概念介绍,对于浮点类型而言的“e记法”的概念和应用,类型转换和获取类型信息的方法~~~~~~

本期内容介绍:

1.基本数据类型:

1)整型,在Python3中长整形和整形归为一类,所有的整数都属于整型,例如1,0,1000,1203等等

2)浮点型,数字中有小数点的数,如12.1  1.85  10.0  等等,另外1e10也表示浮点数

3)字符串,所有以单引号或双引号括起来的值都叫做字符串,例如“小甲鱼”  '小甲虫'  '醉酒青牛'

4)布尔类型,布尔类型只有两个值,True或False,记得在Python里面这两个值首字母均大写。

2.e记法;

如果数位很多的话,一般将其表示为e记法形式,例如0.000000000000135用e记法表示为1.35e-13,它是一个浮点数类型,

例如用e记法表示为1e3,表示的是1000.0是个浮点数,这里e也可以改写成E。

3.数据类型转换

整型强制转换函数int(),可以将纯数字的字符串或浮点型强制转换为整形,如int('0012')为12;  int(12.5)为12

浮点型强制转换函数float(),可以将包含一个小数点的数字字符串或者整形转换为浮点型,如float('0012')为12.0,float('.123')为0.123;float(12)为12.0

字符串强制类型转换函数str(),可以将任何类型转换为字符串类型,例如str(1e28)为‘1e+28'  str(1e2)为'100.0'等等

4.数据类型信息获取;

函数type(),直接给出数的数据类型,例如type(12.0)则返回float,type(1000)返回int,type(False)返回bool等

函数isinstance()需要给出需要判断的数和一个数据类型,是则返回True,否则返回False,如isinstace(1,int)返回

True,isinstance(12.5,float)返回True,isinstance('Iloveu',float)返回False,而isinstance('Iloveu',str)返回True

06讲:

Pyhon之常用操作符

本期主要内容导读:

亲爱的鱼油们,大家好,我是小牛,这一期我们归纳一下鱼神第六讲Python常用运算符。

这一期里面鱼神主要是对Python中常用运算符进行了简要系统讲解,主要涉及到了算数运算符、比较运算符和逻辑运算符三大类,并归纳了整个运算符在使用过程中的优先级问题。

本期内容详解:

1.算术运算符:

  加(+),减(-),乘(*),除(/),幂运算(**),地板除(//)

1)/和//的区别

在Python中的除运算符与其它程序语言的不太一样,/表示真正的除号,例如1/3=0.3333333333333333,而4/2的值为2.0。

说明两个数相除的值是一个浮点数,而其它程序语言/却表示两个整数相除,只返回一个整数。

Python后来为了兼容这种用法,引入了//来实现。

例如3//2的值为1,而3.0//2的值为1.0,且3//2.0的值也为1.0。

说明在Python中//符号两边同为整数时的值才为整数,否则则为一个浮点数(后面带'.0')。

2)**运算符与负号(-)运算符的优先级问题

在Python中,‘-’在一个数字前面表示成负号,例如-3,-5.12等。

**在-的右边时,其优先级高于-,例如-2**2相当于-(2**2)等于-4,而当其在右边时优先级低于-,如2**-2则相当于2**(-2)等于0.25.

3)允许运算符与等号一起使用,表示变量本身参加运算并重新赋值给变量,例如x=5,x+=5后,x的值为10

2.逻辑操作符:

          and    or    not

1)xandy的值计算过程为先判断x的值,如果为0则返回0,否则返回y的值,  例如3and  4值为4;0and4值为0

2)  xory的值计算过程为先判断x的值,如果为0则返回y的值,否则返回x的值,例如3or4的值为3;0or4的值为4

3)  notx的值的计算过程为先

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2