版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业键入公司名称人生苦短,我用Python键入文档副标题徐辉选取日期目录 TOC o 1-3 h z u 序-小甲鱼四件在我步入职业软件开发生涯那天起就该知道的事情我的软件开发生涯开始于大约15年以前。但是直到最近5年,我才真正地看到它的提高。下面这些事情,我希望在进入软件开发领域时我已经知道了。如果我早点知道这些事儿,我将会变得更加成功。软件开发中没有“正确的方式“在我开发生涯的早期,我在学习和争论上浪费了大量的时间。我错误地认为,在软件开发的诸多方面都存在一种绝对”正确
2、的方式“。但是,关于软件开发,几乎每一件我当时认为是正确的事到头来都被证明是错的。更重要的是,我发现几乎没有任何一件事是非黑即白的。在编写代码和开发软件的过程中,几乎所有的决策都是基于当时特定的情形。我之前已经谈过为什么信仰一种技术对开发人员有害,但是我现在说的这个话题谈的不止是一种技术(这么狭隘)。没有通用的最佳实践,这也是真的。甚至是一些highy charged话题。例如,要不要单元测试?敏捷开发和瀑布模型哪个好?这些没有永远正确的答案。在我的职业生涯中,我在”正道“(理想主义)路线的迷宫里浪费了太多的时间,而不是采用可以帮我走得更远的”务实“(现实主义)路线。细读书不是最佳的学习方式我
3、一开始学习编程和技术知识的时候,我花了太多时间细读一些关于特定技术的书。读书没错,但是选择读什么书和读它的哪一部分非常重要。比如,我记得我读过一本非常厚的讲VC+的书。(我十分肯定是这本书的更早的一个版本。)不管怎么说,这本书是本内容丰富的好书,但是一页一页地读并不是学习VC+最好的方式。如果我当时先粗略地看看此书的章节,获得对VC+的一些全局的认识,然后再去搞懂其中最最重要的部分,我能学到并记住更多的东西。如果我当时坐下来,通过实际地做一些东西来练习基础知识,而不是仅仅读一下或者过一过书上的例子,我现在会更加成功。你没有在真正地学一门技术,除非你用它解决了真正的问题。深入学习一门特定技术是浪
4、费时间我不仅在”细读书“上浪费了时间,我在”读错书“上也浪费了时间。我错误地相信,从里到外学习一门特定的技术能很好地推动我的职业生涯。我花了太多时间读一些非常专门的技术书,如,ASP.NET或Hibernate,而不是读更多的像代码大全,代码整洁之道,和敏捷软件开发:原则、模式与实践(C#版)。(BTW,我推荐你去读所有的这些书,如果你没读过的话。)尽管了解你所使用的技术非常重要,但是成为那个特定技术的绝对专家并不重要。知道确切的API调用没多大好处,你需要的时候可以轻而易举地查到。我在太多技术上花了太多时间深入学习,最后这个技术不是死掉了就是我后来放弃不用了。大多数关于这些特定技术的知识最后
5、只代表了浪费掉的时间。我发现,成为你正在使用的特定的程序语言的专家很重要,因为程序语言方面的知识将影响你很长时间。我仍然百分之百会花时间深入学习C+,C#和Java,但是我可能会花较少的时间去学习C+所有复杂的细节,因为那些细节现在对我帮助不大。 在你的开发生涯中,社区极其重要!我的生涯早期,我犯了一个错误,就是不怎么去向社区寻求帮助,也不为他人提供帮助。我一向乐于帮助我的同事,也在不同的工作岗位上也非常善于交际,但活动范围从来没有超出过公司。我在我的生涯中花了大量的时间,试图在一个特定的公司进行投资,却没能将我的时间投资在我参与的软件开发社区中。我花了很多时间,做关于技术或者是最佳实践的内部
6、presentation,而这些时间原本可以用来制作可以服务于社区的内容和材料,同时也能给我带来工作上的认可。我也犯了另一个错误,就是认为自己没什么有价值的东西去贡献。我和很多刚入行的开发者聊过,有时候我觉得,比起我们这些”老油条“,他们有更多的东西去贡献给社区,因为他们更理解其他初学者蛋疼的问题。如果我可以重来一遍,我一定会在我的生涯中更早、更多地参与各种会议和用户群。我会更早地开始写博客,并利用我的大部分学习时间去建立项目和资源,去帮助别人而不是只读书。总是参与一个业余项目可能我做的最大的,并且对我生涯影响最大的改变将会是完全戒掉电视,无尽的任务和魔兽世界(两个游戏),并把这部分时间花在一
7、个业余项目上。我过去花了相当一部分时间做一些享受性的,但是对我的生活没有长远利益的事情。大约3到4年前,我已经基本不看电视了,现在我也很少看电影。电视和大部分电影只是一个对时间的巨大浪费,而这些时间你可以用来干很多有用的事。视频游戏很大程度上也是一样,但至少在视频游戏里,你在积极地做一些事情,而不是被动地吸收一些没有用的信息。我会一直热爱玩视频游戏,并且我不认为我会停下来,但是,我真心希望我(之前)把一大部分用来打游戏看电视的时间花在一个业余项目上。惭愧的是,我做的第一个真正的业余项目是在大约三年前,那时我开始创建我的第一个android应用。当你在为别人工作的时候,花时间为自己工作非常重要,
8、不然你就是在为他人建立王国而忽视自己的王国。我不仅从最近几年的业余项目中学到了很多,并且我也从中得到了很多利益。事实上,其中一个,即制作Pluralsight课程,是我现在花全部时间在做的。01讲:我和Python的第一次亲密接触本期内容介绍:1. Python语言介绍;2. Python程序下载安装过程;3. IDLE功能介绍;4. 字符串类型说明;5. print()函数功能说明;6. 在Python中的“*”和“+”号运算符的功能;内容详细说明1. Python即可用作解释其他高级语言的脚本语言,也是一门面向对象的高级语言;较之C语言和java编程效率要高得多。2. 推荐在Python官
9、网下载3.0以上版本并安装,下载地址见/downloads/3. IDLE是Python程序自带的辅助开发工具,也就是一个能与程序进行交互的文本框,在开始菜单下的输入框内输入“IDLE”并回车,便能找到并打开IDLE界面,初学者可以靠它进行交互式学习。4. 字符串类型在Python中被定义为以双引号或单引号引起来的字符,例如, 在Python中只有字符串变量,没有像C语音一样字符变量的概念,例如5. print()函数用于将字符串或数字等在屏幕上显示,例如 print(小甲鱼) 小甲鱼 print(3+5) 86. 在Python中“*”连接一个字符串和数字时表示将字符串重复多少次,例如 赞*
10、5 赞赞赞赞赞 而两个字符串之间以“+”号连接表示将两个字符串拼接,例如 小甲鱼+醉酒青牛 小甲鱼醉酒青牛 另 外“+”号两边必须是同样的数据类型,如果是一个字符串和一个数字则报错,例如 小甲鱼+5 Traceback (most recent call last): File , line 1, in 小甲鱼+5 TypeError: Cant convert int object to str implicitly7. 在Widnwos下 ,在IDLE下的快捷键小知识: 1)组合 Alt + P 表示上一个命令,Alt + N表示下一条命令02讲:用Python设计第一个游戏上期内容回顾:
11、1. Python语言介绍2. Python程序下载安装过程3. IDLE功能介绍4. 字符串类型说明5. print()函数功能说明6. 在Python中的“*”和“+”号运算符的功能7. IDLE中一些常用快捷键本期主要内容导读: 主要是通过一个文字小游戏,使得大家了解Python程序的基本格式以及相应程序的流程图和关于内置函数的相关介绍。废话不多说,入正题!1. Python程序的基本格式介绍 Python程序的的基本格式是缩进,通过不同的缩进代表不同的作用域,这是有别于C及JAVA等高级语言最显著的特点,而且缩进使得程序变得更加简洁和整齐。另外,我们需要掌握几个快捷键来提高编程效率:在
12、IDLE窗口下,Crtl +n表示新建一个Python程序文件,Crtl +s表示保存当前编辑的Python 程序文件,F5表示执行程序文件;还有一个Tab键对初学者也非常重要。它有三个作用:1)通过按Tab键可实现程序代码缩进,IDLE现在支持选择多行代码,实现多行缩进的效果; 2)调用内置函数时,如果只记得头几个字母,可以输进去之后按Tab键, 会显示该头字母开头的所有内置函数。2. 绘制流程图 我们主要了解一个程序包含的基本要素,任何一个程序最基本的要素为”开始“,”程序体“,”结束“ 三部分组成,程序体内除了一些按先后顺序执行的语句外,还有条件语句和循环语句,他们是程序体的核心。本期的
13、程序对应的流程图见附件。3. 内置函数 内置函数,英文为Bulit-in functions,我的理解就是可以在Python的IDLE里面直接使用的函数,而其他函数使用是需要通过import语句调入扩展包后才能使用。在IDLE下通过键入dir(_builtins_)回车可以列出所有Python的内置函数,而每个内置函数的功能及使用方法可以使用help(内置函数名)的方法显示出来。这一期里面,我们要掌握input()函数以及int()函数的用法,关于这两个函数用法由于过于简单,这里就不再赘述。4. 一点补充 Python程序内不需要事先声明变量,可以直接赋值使用,另外需要注意if和else语句的
14、使用方法,赋运算符值=和比较运算符 = 的使用和区别来。文字游戏代码:流程图03讲:小插曲之变量和字符串上期内容回顾:1. Python程序的基本格式介绍;2. 绘制流程图;3. 内置函数介绍;本期主要内容简介:1. 变量;2. 转义字符使用介绍;3. 原始字符串用法;4. 长字符串的用法;详细内容说明:1. 变量:在Python中变量不需要事先声明,但是需要先赋值后再使用,变量更像是贴在值上的标签,这给Python带来了很大便捷。变量的名字和C及java编程语言一样,由字母、数字、下划线组成,且首位不允许是数字,而且变量名最好能专业些,让人一看就知道其含义。2. 字符串:在Python中字符
15、串就是以双引号或者单引号括起来的内容,但是单、双引号不能混用。例如小甲鱼,小牛都是合法的字符串,而“ 小甲虫则会报错。3. 转义字符:刚才说了,在Python里面和主要起到定义字符串的作用,但是如果一个字符串中本身又包含字符串呢,不要急,这里轮到我们的转义字符华丽登场了!转义字符就是反斜杠,对于想要将其作为一个字符处理的单引号或者双引号而言,前面只要加上转义字符就可以了。例如对于字符串Lets go!,我们就可以这样写Lets go!。另外,我们也可以使用Lets go!来表示。最后,转义字符加上一个字母可以表示特殊的含义,比如最常见的n,t等。感兴趣的鱼油可以看鱼神的总结 4. 原始字符串:
16、在Python中,反斜杠主要用来作为转义字符的,当我们需要用其本身含义时,可以对其自身前面加一个转义字符处理。但是对于一些特殊的字符串,如果里面频繁用到反斜杠,再手动的去一个个加就显得繁琐,这个时候可以在其字符串前面加上一个字母r,轻松解决,这就是原始字符串的含义,让字符串中的反斜杠回归原始的本意。例如字符串C:Program FileIntelWiFiHelp,定义只要rC:Program FileIntelWiFiHelp,他的实现方法其实很简单,就是程序会自动对每一个反斜杠前面再加一个反斜杠。但是r不能对末尾是反斜杠的字符串进行定义,C:Temp。这个时候如果非要使用r进行原始字符串操作
17、的话可以采用如下形式解决:rC:Temp 或者rC:Temp+。 5.长字符串:一般情况下,使用单引号或者双引号只能引一行的字符串,如果字符串是有多行组成,则需要使用三引号,例如:我爱鱼C, 正如我爱小甲鱼。 他那呱唧、呱唧的声音, 总萦绕在我的脑海里, 久久不肯散去。 6. 特别注意:Python里面所有的操作符如单引号、双引号、冒号、小括号等等都必须是英文字符,否则会报错。 04讲:改进我们的小游戏上期内容回顾:1. 变量;2. 转义字符使用介绍;3. 原始字符串用法;4. 长字符串的用法;本期内容详解:通过对比可以发现,1):小牛的程序里面在循环体内外都有输入数字和判断语句,显得有些重复
18、;2): 如果第三次输入也没有输对的话,小牛的代码里并没有判断输入的数是大了还是小了;而鱼神代码里面,在循环体外并没有让用户输入一个值,而是对guess赋了一个初值0,并保证这个值绝对不与答案相等;在循环体内,首先要求用户输入一个数,并让次数总数减1,然后先判断是否与答案值相等,等了就结束,否则继续判断值是大了还是小了,大了则输出值偏大了并接着判断输入次数是否用尽,小了同样输入小了并判断次数是否用尽,接着判断程序体条件是否为真以判断是否继续循环,直到用户输入正确或次数用尽则结束循环。最后一条语句声明游戏结束。05讲:闲聊之Python的数据类型小牛有话说:亲爱的鱼油们,大家好,我是小牛,我又过
19、来班门弄斧啦,这一期里面鱼神主要是对Python中的数据类型进行了介绍,主要涉及到了字符串。整形和浮点型及布尔类型等基本的数据类型概念介绍,对于浮点类型而言的“e记法”的概念和应用,类型转换和获取类型信息的方法 本期内容介绍:1. 基本数据类型:1)整型,在Python3中长整形和整形归为一类,所有的整数都属于整型,例如1,0,1000,1203等等2)浮点型,数字中有小数点的数,如12.1 1.85 10.0等等,另外1e10也表示浮点数3)字符串,所有以单引号或双引号括起来的值都叫做字符串,例如“小甲鱼”小甲虫 醉酒青牛4)布尔类型, 布尔类型只有两个值,True 或False ,记得在P
20、ython里面这两个值首字母均大写。 2. e记法;如果数位很多的话,一般将其表示为e记法形式,例如0.0135用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字符串强制类型转换函数
21、str(),可以将任何类型转换为字符串类型,例如str(1e28)为1e+28str(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(I love u,float)返回False,而isinstance(I love
22、 u,str)返回True06讲:Pyhon之常用操作符本期主要内容导读:亲爱的鱼油们,大家好,我是小牛,这一期我们归纳一下鱼神第六讲Python常用运算符。这一期里面鱼神主要是对Python中常用运算符进行了简要系统讲解,主要涉及到了算数运算符、比较运算符和逻辑运算符三大类,并归纳了整个运算符在使用过程中的优先级问题。本期内容详解:1. 算术运算符: 加(+),减(-),乘(*),除(/),幂运算(*),地板除(/)1) /和/的区别在Python中的除运算符与其它程序语言的不太一样,/表示真正的除号,例如1/3=0.33333,而4/2的值为2.0。说明两个数相除的值是一个浮点数,而其它程
23、序语言/却表示两个整数相除,只返回一个整数。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+
24、=5后,x的值为102.逻辑操作符: and or not1) x and y 的值计算过程为先判断x的值,如果为0则返回0,否则返回y的值,例如 3 and4 值为4;0 and 4 值为02)x or y 的值计算过程为先判断x的值,如果为0则返回y的值,否则返回x的值,例如 3 or 4的值为 3;0 or 4的值为43)not x 的值的计算过程为先判断x的值,如果为0则返回True,否则返回False 例如 not 0的值为True; not 0.12 值为False4)三者的优先级not and or3. 比较运算符: = = !=满足条件为True 否则为False,例如34的值
25、为False34的值为True,且允许使用xyz表达式,等同(xy) and (y比较运算符逻辑运算符,具体见附件。07讲:了不起的分支和循环1本期主要内容导读:亲爱的鱼油们,大家好,我是小牛,这一期我们归纳一下鱼神第七讲了不起的分支与循环1。这一期里面鱼神主要从大面上讲了分支和循环在程序体内的重要作用并以一个打飞机的游戏为例,详细叙述了分支和循环在编程过程中的应用。这里,小牛就循着鱼神的思路,归纳一下打飞机的这个小游戏里面如何用到分支和循环的吧。首先小牛给出了打飞机的框架代码和相应流程图。在这里面用到了一个总的while循环,在循环体内部有很多的条件分支语句,例如判断用户是否关闭按钮,循环体
26、次数是否超过50次,用户鼠标是否移动以及我方飞机是否与小飞机相撞等等。这些条件语句会将程序引向不同的分支内。详情请看下述代码和流程图,希望能帮助到更多的鱼油们理解分支和循环在编程中的重要作用!08讲:了不起的分支和循环2本期主要内容导读:亲爱的鱼油们,大家好,我是小牛,这一期我们归纳一下鱼神第八讲了不起的分支与循环2。这一期里面鱼神主要讲了在Python中条件语句三种用法及特点,条件表达式(三元操作符)的用法以及断言(assert)语句的用法,下面我们就来详细介绍一下各个知识点吧归1. 条件语句三种用法:首先是一个具体的程序实现问题:按照100分制,90分以上为A,8090为B,70-80为C
27、,6070为D,60以下为E,当用户输入分数自动以ABCDE显示并打印。这里介绍三种条件语句实现,并分析各个操作过程。方式一代码中每次输入一个数,需要将程序中所有代码走完,然而当程序判断出来分数属于哪个字母并打印后并不需要将后续条件继续执行。方式二代码中巧妙用到了else语句,使得程序执行变得简洁,但形式上层次分得过多;方式三代码与方式二执行效果上是一样的,引入了新的条件语句elif相当于将else 和 if 两条语句归并在一起的功能,从形式上看程序也显得比较整洁对称。2. 条件表达式(三目运算符)这是Python为了使得程序更加简洁而新引入过来的一个三目操作符,顾名思义就是有三个参数。形式为
28、 x if 条件表达式 else y,先判断条件表达式真假,真则取x的值,否则取y的值。举个例子 3 if 43 else 4值为3,而3 if 44,程序就会执行这一条语句后崩溃并报出异常,而assert 43则正常执行09讲:了不起的分支和循环3本期主要内容导读:亲爱的鱼油们,大家好,我是小牛,这一期我们归纳一下鱼神第九讲了不起的分支与循环3。这一期里面鱼神主要讲了在Python中的while循环和for循环,重点介绍了for循环的用法并介绍了for循环里面经常使用的一个内置函数range(),最后介绍了终止循环的两个语句break和continue的用法和区别,下面我们就来详细介绍一下各
29、个知识点吧归1.while循环其基本形式是 while 条件: 循环体例如下面的代码,while循环中首先判断条件是否成立,成立则执行循环体,然后再次判断条件是否成立,如此循环下去直到条件不成立#循环体,i的值每循环一次自身加1则打印到屏幕 0 1 22.for循环在Python中for循环又叫计数器循环,其功能非常强大,能够自动调用迭代器的next方法并自动获取stop iteration异常并结束循环。for语句的形式为:for 目标 in 表达式: 循环体在这里,目标指的的每次迭代的变量的值,表达式一般是序列(字符串,列表,元组等),下面以几个例子来说明for循环的用法:#循环体则打印出来 F i s h C 则打印出小甲鱼 3 小布丁 3 黑夜 2 醉酒青牛 43.range()内置函数生成一个数字序列的内置函数,经常作为for循环的表达式存在,其形式是range(start, stop step=1)中括号内的值表示可选项,range()函数有3个参数,start表示数字起始值,stop表示结束值且不包含该值,从st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子商务平台设计服务合同(3篇)
- 脑外科护师个人工作述职报告(3篇)
- 有关环保建议书的资料(5篇)
- 河北省石家庄市(2024年-2025年小学五年级语文)人教版随堂测试((上下)学期)试卷及答案
- 湖南省张家界市(2024年-2025年小学五年级语文)人教版随堂测试(上学期)试卷及答案
- 2024年染料类项目资金申请报告代可行性研究报告
- 上海市市辖区(2024年-2025年小学五年级语文)统编版专题练习(上学期)试卷及答案
- 上海市县(2024年-2025年小学五年级语文)人教版随堂测试(下学期)试卷及答案
- 郴州文物百颂作者:湖南省郴州市五岭大道陈友训
- 2024届安徽省马鞍山市高三1月月考(期末)数学试题
- 《新时代劳动教育》-02新时代劳动价值观课件
- 2023年口腔医学期末复习-牙周病学(口腔医学)考试历年真题荟萃带答案
- 多元智能测试题及多元智能测试量表
- 【典型案例】长江流域浙江的历史发展:人民群众是社会物质财富的创造者
- 完整版平安基础性向测试智商测试题及问题详解
- 《疾病与人类健康》
- 车辆技术档案范本(一车一档)
- 人工智能智慧树知到答案章节测试2023年复旦大学
- 第五单元《圆》(单元解读)-六年级数学上册人教版
- 初中物理知识点手册大全(挖空+答案)
- JJG 852-2019中子周围剂量当量(率)仪
评论
0/150
提交评论