这个编程系列我采用的方法是,照着老师课件一步步跟做,遇到问题就记录,能搜索解决就搜索解决,搜不到的去提问,尽量找到解答。
简书专栏里有非常完备的新手上路指南(从下载软件开始),我就不一步步搬运了。
这里主要是根据我在操作时出错的地方,从小白的角度做下总结,同时也分享入门路上的体验,希望能对你有点帮助。
本文分两部分,第一部分是我自己做的课程知识总结,第二部分是错误汇总及心得。
一、上课内容复盘:
Lesson2和Lesson3两节课总的来说都是基础介绍。
如果说第一节课是入门、安装,以及熟悉界面的话,第二节和第三节主要就是最基本的功能介绍,简单概括为四部分,数据结构、条件语句、循环和函数。
数据结构部分,讲了编程时用到的基础元素都叫什么名字、长什么样、能干什么。
◆整型int(比如2)
◆浮点型float(比如2.15)
◆复数型(比如1+i,课上没讲,估计使用范围不太多)
◆布尔bool(True/ False)
◆字符串str(一串字符“hello world“)
◆列表list(比如family=[‘dad’, 1.6, 'mom', 2.0, 1.7, 'dog', 1.5])
列表用「,」分割,用「:」切片,什么类型都能存,可以增改删。
◆元组tuple (比如 team=[poppy, 5, honey, 3.1, money])
元组与列表高度相似,相关操作也可使用,但不能增改删。
◆字典dictionary (一堆一一对应的键和值,比如score={'marry':68, 'cuihua':86, 'tom':35})
「:」前是键key,「:」后是值value,键指向值,字典无序,可以增改删。
小结:
1、比较容易搞混的是列表、元组、字典的表现形式,即各种不同括号。好在列表和元组基本长一样,剩下一个就是不常用的{},专属于字典。
2、字符串、列表、元组和字典,均可使用[ ]取其一部分,只不过[ ]里的内容略有不同,前三个都是有序排列,因此按照0、1、2、3…的顺序进行索引,最后一个字典无序,是用「键」进行索引。
(其实这么一总结,感觉要记住的东西也不算很多)
条件语句主要判断是和非,以及如何让计算机明白『在什么条件下做什么』。
◆布尔表达式(== != < > is is not)
◆逻辑运算符(and or not)
◆条件执行(if elif else…根据存在的可能性数量,选取对应的语句数)
循环主要是for和while,包括它们长什么样、各自怎么用、组合在一起怎么用。
每个循环的开始,都要进行一次判断,然后再逐个访问元素,找到『目标』、实现『目的』。
◆for:遍历任何序列的项目,即,逐个过一遍,谁也跑不掉(使用恰当方法,也是跑得掉的,比如continue)
常用格式
for xxx in XXX:
balabalabala
balabalabala
◆while :什么情况下做什么
常用格式
定义变量
while balabala:
balabalabala
balabalabala
更新变量
(在判断出False时,循环结束)
◆在for和while中,使用break跳出循环,使用continue跳入下个循环
函数分为两种,一种是Python的内置函数(自带的工具包),直接拿来用就能出结果;另一种是自定义函数(自己做的工具包),是把具体问题拆分,再把一堆解决步骤打包到一起。
◆内置函数:type()、 int()、 float()、 str()、 len()、 range()、 max()、 min()…
◆自定义函数:形式是 def函数名(参数,可省略),最后返回/不返回结果均可,
调用时使用 函数名(参数)。
二、实操过程中的问题总结:
1、 变量名称最好有意义,方便以后操作,比如用height代表高度,从一开始就应该养成好习惯。
2、调用函数时,用的是名称.函数名()的方式,名称在前,函数名在后,不要颠倒顺序。
3、 对字符形式还是不够敏感,比如打印时,应该记得加上’ ‘。
4、while循环里特别容易出问题的点就是,执行完一次循环后,忘记将变量更新(比如+1),结果变成了死循环。
5、死循环时,左边显示行数的In[ ],会变成In[*]。有*就是有错。
6、将造成死循环的错误修改之后,要restart一次(kernel/restart),然后在运行一下(shift
+enter)才可以正常通行,restart代表把原来的内存清零,但是不代表运行。
(另,不建议用restate all,不然会从第一条重新运行,然后卡在你为了复习方便特意保留的出错kernel,于是剩下的部分就要一条条手动run…别问了,我就是知道…)。
7、数字作为判断条件时,要注意=的影响,以下是个错误案例,我在条件里多打了一个=(老师的例子里 number <20),实际上是没有的。
以下是正确的:
8、在循环中出现的问题,有时候只是因为缩进的位置不对造成的,感觉python对于「对齐」还是有比较深的执念,不同的语句都要跟对等的条件保持对齐。
9、error出现在哪一行,不代表问题就在那一行,只是刚巧运行到它执行不下去了。出了问题多往前翻翻。
计算加班工资的练习,出现以下错误
实际上与21行没关系,错误在于,先定义user = str,却判断时却拿它和整型0对比
10、不要打错字!不要打错字!不要打错字!
心得:
基础知识看似简单,但是学习过程中发现一个比较明显的问题:学得越多,越感觉混乱。虽然每次做作业练习时还算顺利,但等过后回头去想,感觉各种知识点好像又都混在了一起。
感觉出现这个问题的主要原因在于,对于概念不够清晰。
从数据结构开始,虽然从布尔、整型到元组、字典,每个都掌握了,但由于练习过少,对于它们之间的差别(包括()/[]/{},各种命令调取时的方式等等)都不能快速辨别。
一个有用的对策就是,像上面第一部分那样,把学过的东西归类和总结,过程中会发现一些共通点和差别,把这些内容重新归类,就是个内化的过程。
合并同类项的好处是,给大脑减轻点负担,而且也能够查缺补漏。
另外分享一个学习课程时使用的方法,老师在讲课时提出一个新的概念,在应用它之前,可以先暂停视频,根据要求自己试着做一下,然后再与老师做的对比。
对于一直没有在课前进行预习的同学来说,这种回看过程中的『迷你预习』,能让自己更加投入,也印象更深点,算是对冲没有课前预习的损失。
推荐阅读:
欢迎关注微信公众号,LY加油站。