ch2 task 实现思路及心得(内含代码)

项目 : 时间账单 。 笔记内容将本周任务功能拆解细碎,建议搭配代码一同服用~

开头诗:一往无前虎山行,拨开云雾见光明

自怼:从不理解任务到做出课程演示版任务,自怼是必须的呐。点击 ch02task · huyuning · 101Camp / 1py / tasks · GitLab 后,可看到 break_in_pieces_have_fun 文件夹,里面有自怼时将 ch2 任务功能的逐一拆解,从最小功能单次注释,到查询功能,最终到课程演示版的代码,过程如同搭建积木。(PS. 下文中图片都是这个文件夹里的代码结果~)有需要的同学可自行下载代码,把它们扔到编译器里体会,也欢迎提意见一同改进或者怼我~!

单次注释 , ff

思路:可以观察到交互界面结果,输出的一个值是用户的输入值,这也就是注释的本质啦:你输入啥就输出啥被。那么问题就在于:如何把用户的输入值输出?可联想到邀请用户输入是用 input(),没想到的是破题在 list :将input()获得的用户输入的字符串 ,ff ,存到 list,从而作为 list 的元素 list[0], list[1] 存在,这时就拿到了输入值,可以尽情调用它们啦。这里涉及到 txt.split() :将输入的字符串" " 转为列表[]。(输入多个参数时默认用空格隔开)

相关:ff 是用户的输入值,而非是执行程序后的输出值。(现在当然觉得注释行为肯定是用户输入啊,可是小白状况时真的不懂。)2.多个参数可用 list 封装储存。3.输入的字符串转成列表格式用 txt.split() 4. print() 可以输出两个参数。

多次注释功能 , ff , gg

思路:用【 while True】 循环来实现。ffgg 的演示其实是一个功能。注意:while 一定要加 break 啊啊啊啊啊,不然一直跑到宇宙终结,不,是电脑没电或爆掉。

查询?

思路:观察界面输出,查询功能就是输出此次所有注释结果,前面加了个索引。怎么实现?需要用两个列表list破题,[[]]。一个是空列表命名为all放循环外,存放用户所有输入值,另一个列表在循环里,存放那一次循环的输入值命名为action。(敲黑板:输入值对应演示gif的指令和注释,比如第一行,是指令,ff是注释,这些都是用户输入值),

action中的元素,永远跟着新一轮循环新输入的指令更新,而用list.append() 可以将一次循环的输入数据存在循环外的 all 里,这样所有循环的输入数据就都在 all 里了。而查询功能要输出的注释就在all列表的列表元素中。那么如何穿过两层列表拿到这个元素呢?for search_element in all 。for 循环的语法中,会自动定义search_element 为变量,而 all 中的元素 search_element 就是一个装着一次循环输入值(指令+注释)的列表数据,那么注释在第二个位置,再用 search_element[1] 就可输出注释了。注释前的 0,1,2 又是什么呢?去看看 list.index() 功能吧:输出元素的位置。列表中的每个元素都有自己的位置,位置与元素是一一对应的。那么就可以用all.index(search_element) 实现输出对应元素的索引位置。

相关知识点:1.列表嵌套里的元素是列表2.list.append(),list.index() 这两个是常用的列表函数。一个给列表加入想存放的元素,一个标记列表中元素位置,做索引定位。3.for loop. for 的语法带有自定义变量功能。另外,经常用 for x in list的方式输出列表所有元素,在界面看到多行输出值可以想到用 for 。

修改注释 > 0 ss

思路:1.拿到新注释元素 2.拿到需要修改的注释元素 3.修改。从输入上看,新的注释在列表的第三个位置,为 action[2] ,而被修改的注释位置是列表的第二个位置 index = action[1] 。需要修改的注释存放在 all[?][1] 中,?的位置对应着输入的索引号index,那么此时:all[index][1] = action[2] 修改注释就实现啦。

总计时 + 回放 /

思路:总计时,同样是在循环外建立空列表来存时间数据,而后对这些列表中的时间数据求和。列表中的元素如何加和?自己探索探索啦~咦?回放功能呢?这个很好实现,没必要展开说啦。

心得

几周下来,包括逆转死磕的四五天内,编程于我最大的反常识为:𝙔𝙤𝙪 𝙣𝙚𝙚𝙙 𝙚𝙭𝙥𝙚𝙧𝙞𝙚𝙣𝙘𝙚 𝙘𝙧𝙚𝙖𝙩𝙞𝙣𝙜 𝙨𝙤𝙛𝙩𝙬𝙖𝙧𝙚, 𝙚𝙫𝙚𝙣 𝙞𝙛 𝙮𝙤𝙪 𝙙𝙤𝙣’𝙩 𝙛𝙪𝙡𝙡𝙮 𝙪𝙣𝙙𝙚𝙧𝙨𝙩𝙖𝙣𝙙 𝙞𝙩. 对于之前的我来说,如果认知层面上不懂一件事情,我不会去做的,我不会有行动,引发我行动一定是我从认知上知道怎么回事,认可了,然后我有情绪,我有行动。但在编程上我曾经的行动逻辑不通了。它要求我在认知模糊,朦胧懵逼时,更要去做事。我也是真的破除这个心理状态后,在编程上才开始有正反馈了。编程的学习要在编程中学,看句子很悖论吧,不会怎么做呢?不会编程怎么编程呢?但只有这样,你才能知道什么是编程,这是真的。用编程的方式学编程,入乡随俗。快写代码,然后甩到编译器里去交互吧 XDXD 。

changelog

  • 190503 初稿

Last updated