1901100261-自学训练营19群-python14天入门
学员信息
- 学号:1901100261
- 学习内容:Github 的基本使⽤
- 学习用时:4.5h
学习笔记
<收获总结> 1.学习了Github 的基本操作,注册,创建 repository,学会使用 branch 和 pull request,创建文件,提交 commit,并合并 merge。在仓库中提交 issue。 2.安装电脑客户端, clone到本地。 3.在 mac 上新建 txt 文件,md 文件,将本地仓库到变更 push 到自己账户下的仓库。 4.仔细阅读并 fork 公共作业仓库到自己账户下,clone 到本地。创建文本,完成DAY0作业。 5.实际花在阅读参考资料上到时间比较长,按照教程一点一点的试,在遇到问题时,先想到搜索,搜索不尽人意到情况下,在群里提问,教练和小伙伴们都很热情,积极帮助我解决问题。 6.原先觉得不可能的事情,在“开始”之后都变得没有那么难了,表扬自己坚持阅读英文官方文档,最终完成了作业。顺便学了几个单词,都不需要多死记硬背,多出现几次就知道意思了。 7.官方文档其实上比较好读的,比文学类啊专业类好懂多了,就是已清晰的流程,按流程走就对了。 8.会提问蛮重要的,清晰的提问能让别人很快 get 到你问的点,才能帮助你尽快解决问题。
<遇到的难点与问题(是否解决)> 1.第一个难点:在建立分支后,按照官方教程上 merge 了分支,然后把 develop 分支删除了,教程的意思是“保持干净清爽的页面”,谁知道接下来的步骤进行不下去了。请教了教练之后,需要重新删除 repository ,并新建。可是没有地方说怎么删除啊,我想了想,会不会有人解答过这个问题?那我先搜一下吧,没想到还真有,在仓库界面的 setting ,右下角,输入想要删除的 repository 。通过搜索,又解决了我一个问题。 2.第二个难点:到下载 Github Desktop 页面,如论如何下载不了,总说网络不好,切换到 5G 也不行。求助教练,教练帮忙下载,教练的网速比较稳定,竟然都下载了3个小时。 3.第三个难点:最懵逼的地方,学习文档上写着“请通过电脑自带的文件管理工具完成创建文本和文件夹”,什么是“电脑自带的文件管理工具”难倒了我。回复我“就是手动创建”,我笑教练太会开玩笑,不是手动创建还是自动创建吗?此处我要笑哭。后来通过同学的指点,才知道就是“新建文本”,mac没有点击右键的这个选项,又开始网上搜,很快解决问题。还有 md 文件的创建,其实就是用文本编辑器,储存后更改文本格式为 md 就好了,明白后觉得如此简单。 4.最后总算完成了作业,提交心得时,issue 又写错内容,着急问教练吧,教练哪能随时回答啊,就跟我作为老师,也不会随时回答家长的问题一样。为了不做太烦人的“伸手党”,又开始搜索,原来 close issue 就好了,就不会在公共区域看到了。
学员信息
- 学号:1901100261
- 学习内容:Day2 配置 Python 环境,编写 hello world python 程序
- 学习用时:4h
学习笔记
<收获总结> 1.主要的时间都花在“配置 Python 环境“上了,想了很久也不知道什么是”配置环境“,后来教练发了视频,才知道,配置环境就是下载安装解析器,就算配置好了,简单到不相信。 2.配置好后,“爱钻牛角尖”的我,又开始作,到处去确定前面要不要写那个一大段文字什么的? 又去看官方文档,只想说,“hello world"的程序简单到难以相信,又一个难以相信。。。
<遇到的难点与问题(是否解决)> 1.配置环境,通过看视频解决,虽然视频是中文,我的是英文版,不影响,哈哈。 2.原来本身 mac 自带 Python 2.7,不过还是用新版本,顺便又下载了 Terminal,花时间 copy 了几个 code 试运行, 感觉很奇妙。
学员信息
- 学号:1901100261
- 学习内容:Day3 了解 Python 能做什么,编写一个支持加减乘除的计算器
- 学习用时:6.5h
学习笔记
<收获总结> 1.多阅读,很多时候阅读能解决绝大部分的问题,不管是工作生活还是学习,读书少真的很吃亏。 2.不要怕,全英文也硬着头皮上,不认识的单词靠着上下文、猜测、以及查字典的方式,先能顺利泛读完再说,不会的单词真的会反复出现的,多看多出现,你就和它熟了。 3.阅读多的好处,就是读 code 都不难么难过了,借着多年前大学 C语言都基础,理解起来没有想像都那么困难。有困难,解决它。 4.想不通的地方,积极和教练沟通,和同学沟通,去看别人的 code 是怎么写的,学习经验,吸收为自己的东西。去运行跑程序,记录下和自己想法不同的地方,找找有没有解决方案。始终相信,有解决方案。
<遇到的难点与问题(是否解决)> 1.主要时间花费在读《自学是门手艺》这本书上,Part 1 花了非常多的时间,用 JupyterLab 阅读很不一样,反复跑了书中的程序,其中还把书玩坏了,又重新 fork 。 2.之所以一直没有开始 Day 3 的作业,是因为没有理解到 “计算器” 到底该怎么整,官方文档也看了,还是晕的。鼓起勇气看了别人写的程序,“哦, 原来是这个意思~” 3.借鉴了同学的程序,几个不同的版本都跑了一遍,有的只支持整数输入,有的输出只能是浮点数,最后改输入为浮点数,先交了作业再说,以后再去优化。
学员信息
- 学号:1901100261
- 学习内容:Day4 Python 中条件判断(if elif else)和循环(for...in,while,break,continue)的用法
- 学习用时:3.5h
学习笔记
<收获总结> 1.不知道怎么思考的时候,去看书,去阅读官方文档,官方文档有很多内嵌链接,哪里不懂点哪里,直到弄懂为止。英文不理解,中文打开来同步看,虽然还是很多时候倾向于看英文,但是,code 都是要用英文写啊。 2.在卡住的地方,去查别的同学作业时,可以作为参考,但还是要有自己的想法。这次我查看了好几个同学写都作业,都不是我想要的。太复杂,或者语句太多,不够简洁,亦或者不是我的逻辑思维方法。好几次想问问教练,最后忍住了,还是先查了资料,解决不了再说。还是少做“伸手党”,争取多做那个“回答”的人。 3.如果为了完成作业,照抄别人的作业,实际却看不懂理解不了,那就不是自己的输出了,没有太大的意义。能跑出正常程序的,就说明是对的,不用太过纠结。做完后看了视频,感觉自己写的 code 还蛮简单的,哈哈哈~ 4.人性是懒惰的,大脑是懒散的,有简单的任务就不想去做复杂的,有时候作业不是太难,是自己不想动脑筋,专挑简单的做,不想去克服这个困难。但讲真,自己做出来之后的自豪感爆棚,全盘照抄却不思考就没有这个幸福的感觉啊。(比如 day 2 的作业,借鉴的比较多,所以自豪感和幸福感都不强。) 5.在群内帮助和我一样系统的同学解决问题,感觉很棒呢~感觉自己很有价值~哈哈哈~ 6.把别人做的好的地方加到自己的内容中来,比如写“备注”。确保下次打开时能理解为什么要这样写。
<遇到的难点与问题(是否解决)> 1.根据要求去找循环语句和条件语句,在“赋值”环节思考了比较长时间,反复去找应该怎么给2个量赋值。在给第二个量赋值时,搞不懂为什么要用 第一个量+1。查官方文档、查书,又把 rang( )中的包含关系反复理解。 rang( i , j )中,包含 i ,不包含 j ,因此在第二变量中,应该是 rang( i, i +1 ). 2.第一个任务的“九九乘法表”还比较迅速,卡在第二个任务上:要删除偶数列。我想的是,在一开始的第一个值,就去掉偶数。花了很长时间重新阅读 while ,for ,continue 等等,尝试用 break 来结束循环,却发现要么无限循环 11=1,要么就只有一个 11=1 的算式,百思不得其解。后去查别的同学提交的作业,都觉得太复杂,说实话是我有点理解不了,看了好几个同学写都作业,都不是我想要的。还是得自己重新改 code ,跑程序去自己试。 3.最后摸索了半天,结果是输出了,中间却有空行,真是崩溃。偶数行没有了,怎么还有个空行在那里碍眼? 这个怎么破?一直以为是 while 语句下的 break 的问题,把 break 换成 continue 等等都不行,也没有看到有同学用 break ,但总觉得 break 应该是对的。最后,猜想可能是print 的最后空行的问题,重新对齐后,完美了~
学员信息
- 学号:1901100261
- 学习内容:Day5 掌握 Python 语⾔言中的基本数据类型
- 学习用时:没计算,前后空了有快两个月
学习笔记
<收获总结> 1.在 count 次数的地方卡壳之后,刚开始因为工作繁忙,总觉得不会,不能鼓起勇气继续学习,期间教练催了一次,依然以忙为借口,不学习,实际上没有忙的时候也没有动,总认为那是一个浩大的工程。直到国庆假期,鼓起勇气带电脑,在漫长的火车上,因为穿山越岭没有网络,反而静下心来学习,反复去找 count 怎么做,后来看到其他同学用的 counter ,就去找怎么用,找到之后发现,其实也没有想象中那么难嘛! 2.“最难的部分就是开始”,道理都懂,还能给别人讲的一套一套的,结果在自己身上还是不能“开始”,确实要多给自己“洗脑”,多次提醒自己,“开始”就好,开始了,一切都会好起来。 3.多看书,少刷手机,少刷剧。
学员信息
- 学号:1901100261
- 学习内容:Day6 掌握 Python 语⾔言中的基本数据类型
- 学习用时:4h+
学习笔记
<收获总结> 1.day5的作业完成后,进度加快,在任务一中 增加了“按词频排列”,学习了 return sorted(counter.items(), key = lambda x:x[1],reverse = True) 的表达,降序排列,包括 key 的定义,反复试了几遍,想想还是先用,再理解,见的多了,反复看官方文档,会理解的更透彻。 2.”合并词频显示“ 时,只需要用 ”+“ 就好,多么简单,我想的太复杂了。
学员信息
- 学号:1901100261
- 学习内容:Day7 掌握 Python 中模块的用法,理理解代码的复⽤
- 学习用时:4h+ (1h 写,2h+ 调试)
学习笔记
<收获总结>
- 在 day6 中的 if name==''main'' 的应用,就是说防止其他文件引用 text 时,代码不会运行,而自己引用时,确实没法运行,光花在调试这个代码上就花费接近三个小时。因为这个 text 在后续代码复用的过程中,总是说 text 没有被定义,百思不得其解。 2.试了无数次,改动无数次之后,终于成功了。找到了原因,就是在最开始的 text 文件定义中出错了,因为day6 的作业中 text 是分了 中文 cn_text 和 en_text 两个不同的定义项的,导致 day7 的作业时,因为 视频中有改进判断,所以应该是不分 的,就是 一个text 就对了。
- 改进的判断语句为
if len(element) and element.isascii():
# 计算集合元素个数,长度大于0,算一个真正的单词 # 并用 str 类型 的 isascii 的方法判断是否是英文单词
学员信息
- 学号:1901100261
- 学习内容:Day8 掌握 Python 中的异常处理理(try except finally raise)
- 学习用时:4h +
学习笔记
<收获总结>
-
检查异常的参数,用 if...raise... 时,主要时不知道用什么代码。 if not isinstance(text,str): raise ValueError('参数必须是 str 类型, 输入类型 %s' % type(text))
-
异常处理的代码,需要调用捕获错误的模块,import 调用 import traceback # 调用 traceback (捕获错误的模块) import logging # 调用 logging
logger = logging.getLogger(name) # 给 logging 取个代名词
def test_tracebake():
try: # 使用 try...except 的代码来实现
stats_word.stats_text(1)
except Exception as e :
print('test_traceback==>',e) # 打印代码来查看到哪里了
print(traceback.format_exc())