美文网首页
基础编程 10

基础编程 10

作者: RealAnalysis | 来源:发表于2020-05-26 16:43 被阅读0次

    Question 28

    嗯,啥也不懂的情况下 先试试瞎写

    居然有答案

    用find功能查了一下原文档,这Lorem只有四个而已,嗯,所以文法出问题,还是老老实实看看文档去

    先思考一下,感觉关键点不是如何“计数”而是如何用文法表述出“不同的单词”,然后直接count就能展示出字数了...如何在file中区隔出单词呢...

    本来想说把全部文本替换成array,直接用array的count的功能不就搞定?结果...


    然后认真一看这split的功能...果然不是...预想中的...


    同样的思路,但换一种文法,感觉靠谱一些了

    这样虽然有进展,但是把一些符号也都算进去了,完全不是计算“单词个数”而已...那么“如何分离出单词”呢?!

    最后感叹一下,我以为是要把文档格式改成array 才能解决 没想到竟然要改成 string 的格式才能真正的解决问题啊~ 但思路OK的~这可以表扬自己

    参考视频 https://www.youtube.com/watch?v=I988sReFcRM

    打开文档本身测试了一下 downcase.scan(/\w+/) 的效果,用find的功能找出的一些词的词频不同...高度怀疑是“mi.”这类带着句号的词汇被 scan功能给剔除了...

    果然还是要进一步的提升功能,scan不够用啊...还是要把全部的“奇异符号”都去除掉,然后用“空格键”这区隔当做识别是否为“单词”的手段来计算词频才比较合理...

    不对,后来认真在text原文档跑了一遍,把elit这个在原文用find功能找出5处,而我的代码只找到3处的词汇用find功能逐个看下来,发现多出来的2个是 velit这个词 啊哈!!!scan是强大的哈哈哈哈!!!

    一个小发现

    找视频看的过程 发现一个新的写法

    i = 0
    j = 1
    

    可以写成更简短的

    i, j = 0, 1
    

    居然能合并成一行,真是厉害了我的逗号啊哈哈哈哈哈

    Question 29

    开始尝试前 对题目的最初想法如下

    “每一行就是一个待办事项”的话,就是用\n来当分隔符号的意思

    “可以新增和删除代办事项,最后可以存盘离开”就是用new delete来操作,但是这个存盘,莫非就直接用 save吗?

    “重新执行这只程序,可以继续上次的代办事项” 就是说这个程序的文法要能达到“永久改变文档”的功效 所以应该是把原文档搬去一个新变量里,随便去改动这个新变量内容就好,保证原文档不被动刀。那么“继续上次”的话...就是用save!这样的代码吗?

    嗯,想到这里就没别的想法了,纠结啊,没客户端操作页面的话...就是没前端的按钮们,要怎么进行人机互交的操作啊...一直用金手指指令来操作不成?这个比较困惑 没想法...

    嗯,等等,没有按钮等前端的互动设计,就用def定义需要的功能,到时候用.来调用定义好的功能不就搞定?!

    啊,“离开”原来是break啊 用循环好方便耶 根本不用def呢...

    目前的新想法是 “重新执行这只程序,可以继续上次的代办事项” 会不会是指“运用file的写入能力 把原文档改动了”?! 不然下次运行还是去读取“没有被改变的原文档”啊!!!

    被自己的写法提醒到 得出下面的结论


    搞定!逃避了四五天了...真是的...明明不难,被自己完美主义吓退的体验还要来多少次才能学乖啊...

    BTW

    File.open("todos.txt", "w+") do |f|
          todos.each do |i|
            f << i
            f << "\n"
          end
        end
    

    这里直接用 f << i是OK的~

    相关文章

      网友评论

          本文标题:基础编程 10

          本文链接:https://www.haomeiwen.com/subject/qnpwohtx.html