<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Taiwan Code School - Medium]]></title>
        <description><![CDATA[創作 / 教育 / 理念 / 程式 / 資訊 - Medium]]></description>
        <link>https://medium.com/taiwan-code-school?source=rss----e4b0e8386197---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Taiwan Code School - Medium</title>
            <link>https://medium.com/taiwan-code-school?source=rss----e4b0e8386197---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 15 May 2026 18:36:41 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/taiwan-code-school" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[訂閱平台 + 程式資源、永續資源將是未來趨勢]]></title>
            <link>https://medium.com/taiwan-code-school/%E8%A8%82%E9%96%B1%E5%B9%B3%E5%8F%B0-%E7%A8%8B%E5%BC%8F%E8%B3%87%E6%BA%90-%E6%B0%B8%E7%BA%8C%E8%B3%87%E6%BA%90%E5%B0%87%E6%98%AF%E6%9C%AA%E4%BE%86%E8%B6%A8%E5%8B%A2-320649d0edd?source=rss----e4b0e8386197---4</link>
            <guid isPermaLink="false">https://medium.com/p/320649d0edd</guid>
            <category><![CDATA[education]]></category>
            <category><![CDATA[marketing]]></category>
            <category><![CDATA[stories]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[python]]></category>
            <dc:creator><![CDATA[Louis Ho]]></dc:creator>
            <pubDate>Fri, 19 Apr 2019 10:47:36 GMT</pubDate>
            <atom:updated>2019-10-06T13:56:05.482Z</atom:updated>
            <content:encoded><![CDATA[<p>在學習程式普及化的時代，要如何滿足人們追求更多更永續的程式資源？</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*f4C5RYm5XJ1Onqspr0b6bQ.png" /></figure><h3><strong>未來學習程式 — 趨勢</strong></h3><p>在未來學習程式的路上，會有越來越多人能夠更加快速的上手，如同日常生活中時常用到的 excel 一樣，成為日常生活中人人必備、人人都在學習的一樣技能。</p><p>在未來十年間的，整個社會將不再需要基礎的程式課程；就像每個人的房子都蓋好了地基，現在只需要比賽建造樓層的速度、高度；誰能夠更快的整合程式，使之融入在生活、工作、研究上，誰將就成為這個社會的領頭羊，程式也會像是房子一樣成為永續的資源。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ORuplMHA8FA-3WWhKr4kdA.png" /></figure><p>在這個資源大爆炸的時代，關鍵字鍵入首頁，資源就爭先恐後地跳出來，然而總是需要再三篩審才能找到最貼題的那份。<br>如同現在的大學生要完成一篇論文，不只需要強大的表達能力，在找尋資料的同時，甚至還會運用到統計、數學、數據分析等操作，來讓論文內容更加一目了然及豐富。</p><p>若無具備資工相關背景的學生，可能需要花費更大量時間去尋找、審閱一些相關資料，而許多外國研究文件、貼近生活的問卷調查、大數據的資料整合，幾乎都離不開使用程式分析來看出其中端倪。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4ppp3Nr-h3TsEx9KwffaLw.png" /></figure><p>現在的社會大眾多半抱持著：我想學習程式 ，因為我想用程式來做某件事的想法來學習它；但未來程式將徹底融入日常生活，社會大眾對它的需求也將基礎教學，轉而探求更加深入的範例、邁向更廣的資源。</p><p>正如前文所述，在這資源大爆炸的e時代，現在網路上越來越多免費的高階資源，從教導初學者該如何輕鬆上手的課程，搖身一變探討起了更加深入的技術。<br>隨著人們對程式的渴求，吸收到的知識也越來越多，線上課程也會隨著環境的變遷，做出價值和價格上的變遷。<br>像是Python 基礎的入門教學課程，幾年前必須忍痛付出好幾張藍色小朋友作為成本，現在卻能在線上輕鬆找到免費的課程。</p><h3><strong>線上課程與訂閱平台— 差異</strong></h3><p>當我們渴望程式資源及範例時，最輕鬆也最直接了當的的方式就是：上網查詢資料／購買線上課程。<br>上網查詢資料的缺點：如查詢時間久效率又低，雖是免費但資源大量抓不到衣領，有時帶出的關鍵字甚至無法找到一篇能夠有效解決問題的文章；但其優點就是免費。</p><p>購買線上課程的缺點：需付費，有時提供的程式碼及影片已過時不堪用；但其優點是內容豐富、資源多、提出問題後會有老師專門為你解釋。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dTDNYLIKOk4vTrKs1RbDzg.png" /></figure><p>在這個新思維不斷刷新的當下，建議大家可以把訂閱平台當作訂閱一份會和你互動、回答你問題的報章雜誌。<br>它會不斷提供最新一手的程式資源、跟進補充最新或即時現有的程式資訊。<br>例如：pip 套件資源，給予大家各個不同的 pip 套件解說；程式範例：訂閱平台需要不斷更新資源，可以給予最新的套件或程式範例，一方面解決了線上課程提供的教學影片數量限制，一方面也解決觀看影片的時間消耗，提供為訂閱者量身打造的內容，在最短時間中把效率提升到最大化。</p><h3><strong>訂閱平台的影響力 — 概念</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rjf23WUIkwEP3TQBtAfBKA.png" /></figure><p>付費訂閱制早已在報章雜誌界行之有年，隨著網路而發展起的線上訂閱制也早已不侷限於在常見的netflix、apple music 等常見的音樂或影音相關平台，而是更廣泛的應用在更多不同領域的資源提供上。</p><p>是否在台灣，我們也可以將理財顧問，或是影音 app 的模式，整合為線上程式顧問，僅僅是每個月的訂閱，就能讓自己擁有線上即時顧問一樣，能夠依照你的需求，幫助你得到最新的資訊，更不需擔心以往印刷類的收納成本或遺失，不只環保也更方便，只要一台手機、平板或電腦，無論人在哪裡都可以接收得到，我們認為是 21 世紀的重大改革，更可以促進小型經濟的發展，達到成本上的縮減與效能上的增益。</p><p><strong>發想：何孟軒 撰寫和與編輯：</strong><a href="https://www.facebook.com/%E7%B0%A1%E5%96%AE%E7%A7%91%E6%8A%80-kanten%E7%A7%91%E6%8A%80-100509544644283/"><strong>簡單科技 （kanten科技）</strong></a></p><ul><li><a href="https://medium.com/@louisho_81307">何孟軒 Louis Ho - Medium</a></li><li><a href="https://medium.com/@qaz_1021">簡單科技 - Medium</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=320649d0edd" width="1" height="1" alt=""><hr><p><a href="https://medium.com/taiwan-code-school/%E8%A8%82%E9%96%B1%E5%B9%B3%E5%8F%B0-%E7%A8%8B%E5%BC%8F%E8%B3%87%E6%BA%90-%E6%B0%B8%E7%BA%8C%E8%B3%87%E6%BA%90%E5%B0%87%E6%98%AF%E6%9C%AA%E4%BE%86%E8%B6%A8%E5%8B%A2-320649d0edd">訂閱平台 + 程式資源、永續資源將是未來趨勢</a> was originally published in <a href="https://medium.com/taiwan-code-school">Taiwan Code School</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[程式學習心得分享]]></title>
            <link>https://medium.com/taiwan-code-school/%E7%A8%8B%E5%BC%8F%E5%AD%B8%E7%BF%92%E5%BF%83%E5%BE%97%E5%88%86%E4%BA%AB-6003bb45ce33?source=rss----e4b0e8386197---4</link>
            <guid isPermaLink="false">https://medium.com/p/6003bb45ce33</guid>
            <category><![CDATA[education]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[stories]]></category>
            <category><![CDATA[homeschooling]]></category>
            <dc:creator><![CDATA[Louis Ho]]></dc:creator>
            <pubDate>Wed, 17 Apr 2019 10:14:48 GMT</pubDate>
            <atom:updated>2019-04-17T17:34:52.225Z</atom:updated>
            <content:encoded><![CDATA[<h3>程式學習心得 &amp; 分享</h3><p>三大了解：學習程式目標 + 未來程式的應用領域 + 資源的力量</p><h4><strong>學習程式目標</strong></h4><p>社會大眾對學習程式這件事，總抱持著：難懂、花錢、燒腦，這觀念早已深植人心。但在這個網路蓬勃發展的e時代，學習程式難道仍要像從前那樣花大錢上課、找資源又像海底撈針，學得霧煞煞又不知道能用在哪？</p><h4><strong>未來程式的應用領域</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sY1g0atjdZ6ZBu_hfocWjw.png" /></figure><p>我們不能為了學程式而學程式，而是要知道程式的本質，以及未來的發展。<br>程式是一門結合了英文、數學、科學、思辨能力的的課程，它都有沾上邊，卻也不用樣樣精通。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rQTVCwvS_tB1FVLRwadmiA.png" /></figure><p>以色列為例，能運用程式的方向諸多，如：電腦技能、研究技術、金融分析，小至手機軟體，大至觀測衛星等等，資安早已成為全球首重，身處遭受資訊戰攻擊數量第一的台灣更應該跟進，教育國人學習程式的重要性，研發一個多實用套件、淺顯易懂、多領域開發的程式來培養人材。</p><h4><strong>資源的力量</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*g35rLt11qqedZpUEEckOHQ.png" /></figure><p>正如前文所述，在這個網路蓬勃的世代，很多教學資源早已能輕而易舉找到，學習程式也早已不是難事，難的是不了解它的時候卻強迫自己去學習，學得痛苦，更事倍功半。<br>該先從了解程式開始，再逐步進入操作的細節，後續參與專案課程，掌握想運行之領域的深度技術，進而達到學習的目的與價值。</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6003bb45ce33" width="1" height="1" alt=""><hr><p><a href="https://medium.com/taiwan-code-school/%E7%A8%8B%E5%BC%8F%E5%AD%B8%E7%BF%92%E5%BF%83%E5%BE%97%E5%88%86%E4%BA%AB-6003bb45ce33">程式學習心得分享</a> was originally published in <a href="https://medium.com/taiwan-code-school">Taiwan Code School</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[通過範例學習如何優化Python命令行界面(下) — 好文分享]]></title>
            <link>https://medium.com/taiwan-code-school/%E9%80%9A%E9%81%8E%E7%AF%84%E4%BE%8B%E5%AD%B8%E7%BF%92%E5%A6%82%E4%BD%95%E5%84%AA%E5%8C%96python%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%95%8C%E9%9D%A2-%E4%B8%8B-%E5%A5%BD%E6%96%87%E5%88%86%E4%BA%AB-f56b9e208b2b?source=rss----e4b0e8386197---4</link>
            <guid isPermaLink="false">https://medium.com/p/f56b9e208b2b</guid>
            <category><![CDATA[terminal]]></category>
            <dc:creator><![CDATA[林品融]]></dc:creator>
            <pubDate>Wed, 16 Jan 2019 05:53:42 GMT</pubDate>
            <atom:updated>2019-03-23T16:12:50.176Z</atom:updated>
            <content:encoded><![CDATA[<h3>通過範例學習如何優化Python命令行界面(下) — 好文分享</h3><p>{翻譯至:<a href="https://blog.sicara.com/perfect-python-command-line-interfaces-7d5d4efad6a2">https://blog.sicara.com/perfect-python-command-line-interfaces-7d5d4efad6a2</a>}</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dKegmGQ3i4xNNhW0JORguQ.jpeg" /></figure><h3>讓我們破解密碼！</h3><p>你現在是駭客：你想解密用凱撒密碼加密的秘密文本，但你不知道密鑰。</p><p>一個簡單的策略可能是使用所有可能的鍵調用我們的解密函數25次，並讀取所有生成的文本，尋找有意義的文本</p><p>但由於你聰明而懶惰，你寧願自動化這個過程。 在所有這25個文本中選擇最可能的原始文本的方法是計算所有這些文本中的真實英語單詞的數量。 讓我們使用PyEnchant套件：</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/aa562e4fe49ea2ce6485738e79814000/href">https://medium.com/media/aa562e4fe49ea2ce6485738e79814000/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*L8GAGoJRszT-altagmKYMw.gif" /></figure><p>應顯示即時進度條</p><p>使用我使用的10個單詞的示例文本，腳本大約需要5秒鐘來輸出解密的文本。 這是很正常的，考慮到它必須檢查25個值，如果它們屬於英語詞典，則為10⁴個單詞。</p><p>想像一下，你想解密一個包含10個單詞的文本，顯示出任何結果需要50秒，這對用戶來說可能非常令人沮喪。</p><p>這就是為什麼原作者建議應顯示即時進度條，特別是因為它很容易實現。</p><p>以下是顯示進度條的相同腳本：</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/f49822f20459aff03573b7de194c0275/href">https://medium.com/media/f49822f20459aff03573b7de194c0275/href</a></iframe><p>你看到有什麼不同嗎？ 發現並不容易，因為差異由4個字母組成：TQDM。</p><p>這是Python套件的名稱，這是其唯一類的名稱，您可以使用它來包裝任何iterable以顯示相應的進度。</p><pre><strong>for key in tqdm(range(26)):</strong></pre><p>這將出現了一個美麗的進度條。 就個人而言，原作者仍然覺得這樣做太好了。</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*dWE0Kt_K5NSNyF5EKfIYgQ.gif" /></figure><p>除此之外，click還提供了一個類似的實用程序來顯示進度條（click.progress_bar），但我發現外觀的可讀性較差，而且要編寫的代碼不那麼簡潔。</p><p>最後，原作者希望他已經說服您為改進腳本的開發人員體驗做出更多努力。</p><p>如果你們中的一些人有你在自己的腳本中使用的其他建議或提示，請不要猶豫，分享它們！</p><p>想要學習python？ 別忘了點擊以下按鈕！</p><p><a href="https://www.taiwancodeschool.com/">Taiwan Code School</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f56b9e208b2b" width="1" height="1" alt=""><hr><p><a href="https://medium.com/taiwan-code-school/%E9%80%9A%E9%81%8E%E7%AF%84%E4%BE%8B%E5%AD%B8%E7%BF%92%E5%A6%82%E4%BD%95%E5%84%AA%E5%8C%96python%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%95%8C%E9%9D%A2-%E4%B8%8B-%E5%A5%BD%E6%96%87%E5%88%86%E4%BA%AB-f56b9e208b2b">通過範例學習如何優化Python命令行界面(下) — 好文分享</a> was originally published in <a href="https://medium.com/taiwan-code-school">Taiwan Code School</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[通過範例學習如何優化Python命令行界面(中) — 好文分享]]></title>
            <link>https://medium.com/taiwan-code-school/%E9%80%9A%E9%81%8E%E7%AF%84%E4%BE%8B%E5%AD%B8%E7%BF%92%E5%A6%82%E4%BD%95%E5%84%AA%E5%8C%96python%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%95%8C%E9%9D%A2-%E4%B8%AD-%E5%A5%BD%E6%96%87%E5%88%86%E4%BA%AB-47c1e7f55106?source=rss----e4b0e8386197---4</link>
            <guid isPermaLink="false">https://medium.com/p/47c1e7f55106</guid>
            <category><![CDATA[terminal]]></category>
            <dc:creator><![CDATA[林品融]]></dc:creator>
            <pubDate>Tue, 15 Jan 2019 03:52:19 GMT</pubDate>
            <atom:updated>2019-03-23T16:13:09.159Z</atom:updated>
            <content:encoded><![CDATA[<h3>通過範例學習如何優化Python命令行界面(中) — 好文分享</h3><p><em>{翻譯至:</em><a href="https://blog.sicara.com/perfect-python-command-line-interfaces-7d5d4efad6a2"><em>https://blog.sicara.com/perfect-python-command-line-interfaces-7d5d4efad6a2</em></a><em>}</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4zQ_HY0ExAvbNTZTPssdpg.jpeg" /></figure><h3>來談談argparse套件</h3><p>argparse是用於解析命令行參數的Python標準庫模塊。</p><p>讓我們看看我們的凱撒腳本如何使用argparse：</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/712c7e94ba1263dbbbc983d005073d01/href">https://medium.com/media/712c7e94ba1263dbbbc983d005073d01/href</a></iframe><p>這將尊重我們的規範，並提供比上述手工腳本更精確的文檔和更具交互性的錯誤處理：</p><pre><strong>&gt; python caesar_script_using_argparse.py --encode My message</strong><br><br>usage: caesar_script_using_argparse.py [-h] [-e | -d] [-k KEY] [text [text ...]]<br>caesar_script_using_argparse.py: error: unrecognized arguments: --encode</pre><pre><strong>&gt; python caesar_script_using_argparse.py --help</strong><br>                                                                                                                      <br>usage: caesar_script_using_argparse.py [-h] [-e | -d] [-k KEY] [text [text ...]]</pre><pre>positional arguments:<br>  text</pre><pre>optional arguments:<br>  -h, --help         show this help message and exit<br>  -e, --encrypt<br>  -d, --decrypt<br>  -k KEY, --key KEY</pre><p>然而，關於代碼，原作者發現 — 這有點主觀 — 原作者的函數的第一行（從第7行到第13行），其中參數被定義，不是很優雅：它太冗長和程序化，而它 可以以更緊湊和聲明的方式完成。</p><h3>利用click套件來優化！</h3><p>我們很幸運：有一個Python套件提供與argparse（和更多）相同的功能，具有更漂亮的代碼樣式：它的名稱是click。</p><p>這是我們的凱薩腳本的第三個版本，使用click套件：</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/16d168a255d42775dd49cdfefbbc109c/href">https://medium.com/media/16d168a255d42775dd49cdfefbbc109c/href</a></iframe><p>值得注意的是，在參數和選項上限定了他本身的類型，這使得它們可以作為我們函數的參數直接調用。</p><p>讓我們分析一下以上代碼中的一些細微之處：</p><p>● script參數的nargs參數指定了此參數所需的連續單詞的數量（“帶有這樣的帶引號的字符串”計為1個單詞）。 默認值為1.這裡，nargs = -1允許提供任意數量的單詞。</p><p>● 符號 — encrypt / — decrypt允許定義互斥選項（與argparse中的add_mutually_exclusive_group函數一樣），這將產生Boolean 參數。</p><p>● click.echo是一個由套件提供的小實用程序，它與打印相同，但與Python 2和3兼容，並具有一些額外的功能（顏色處理等）。</p><h3>增加一些保密性</h3><p>我們的腳本參數應該是將被加密的絕密消息。 要求使用者直接在他的電腦輸入他的純文本，卻會在命令歷史中保留非常的諷刺大家不這麼覺得嗎？</p><p>以更安全的方式執行此操作的解決方案是使用隱藏提示。 或者我們可以從輸入文件中讀取文本，這對於長文本來說更加實用。 或者也可以讓用戶選擇!</p><p>讓我們對輸出做同樣的事情：用戶可以將其保存到文件中，或者在電腦中顯示。 這導致我們對凱撒腳本的最後一個改進版本：</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/aaee460d6cb17a3cd0399a58f2f368f8/href">https://medium.com/media/aaee460d6cb17a3cd0399a58f2f368f8/href</a></iframe><h3>這個版本有什麼更新？</h3><p>首先，請注意我為每個參數或選項添加了一個幫助參數。 由於腳本變得有點複雜，它允許向文檔添加有關其行為的一些細節，現在看起來像這樣：</p><pre><strong>&gt; python caesar_script_v2.py --help</strong></pre><pre>Usage: caesar_script_v2.py [OPTIONS]</pre><pre>Options:</pre><pre>--input_file FILENAME          File in which there is the text you want to encrypt/decrypt. If not provided, a prompt will allow you to type the input text.</pre><pre>--output_file FILENAME         File in which the encrypted/decrypted text will be written. If not provided, the output text will just be printed.</pre><pre>-d, --decrypt / -e, --encrypt  Whether you want to encrypt the input text or decrypt it.</pre><pre>-k, --key INTEGER              The numeric key to use for the caesar encryption / decryption.</pre><pre>--help                         Show this message and exit.</pre><p>我們有兩個新的參數，input_file和output_file，類型為click.File。 在進入函數之前，庫設法以正確的模式打開文件並處理可能發生的錯誤。 例如：</p><pre><strong>&gt; python caesar_script_v2.py --decrypt --input_file wrong_file.txt</strong></pre><pre>Usage: caesar_script_v2.py [OPTIONS]</pre><pre>Error: Invalid value for &quot;--input_file&quot;: Could not open file: wrong_file.txt: No such file or directory</pre><p>如幫助文本中所述，如果未提供input_file，我們使用click.prompt允許用戶直接在提示中鍵入其文本，該提示將在加密模式下隱藏。 這將是這樣的：</p><pre><strong>&gt; python caesar_script_v2.py --encrypt --key 2</strong></pre><pre>Enter a text: **************</pre><pre>yyy.ukectc.eqo</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=47c1e7f55106" width="1" height="1" alt=""><hr><p><a href="https://medium.com/taiwan-code-school/%E9%80%9A%E9%81%8E%E7%AF%84%E4%BE%8B%E5%AD%B8%E7%BF%92%E5%A6%82%E4%BD%95%E5%84%AA%E5%8C%96python%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%95%8C%E9%9D%A2-%E4%B8%AD-%E5%A5%BD%E6%96%87%E5%88%86%E4%BA%AB-47c1e7f55106">通過範例學習如何優化Python命令行界面(中) — 好文分享</a> was originally published in <a href="https://medium.com/taiwan-code-school">Taiwan Code School</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[通過範例學習如何優化Python命令行界面(上) — 好文分享]]></title>
            <link>https://medium.com/taiwan-code-school/%E9%80%9A%E9%81%8E%E7%AF%84%E4%BE%8B%E5%AD%B8%E7%BF%92%E5%A6%82%E4%BD%95%E5%84%AA%E5%8C%96python%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%95%8C%E9%9D%A2-%E4%B8%8A-%E5%A5%BD%E6%96%87%E5%88%86%E4%BA%AB-d4c73004fe2e?source=rss----e4b0e8386197---4</link>
            <guid isPermaLink="false">https://medium.com/p/d4c73004fe2e</guid>
            <category><![CDATA[terminal]]></category>
            <dc:creator><![CDATA[林品融]]></dc:creator>
            <pubDate>Mon, 14 Jan 2019 08:59:44 GMT</pubDate>
            <atom:updated>2019-03-23T16:13:27.291Z</atom:updated>
            <content:encoded><![CDATA[<h3>通過範例學習如何優化Python命令行界面(上) — 好文分享</h3><p><em>{翻譯至:</em><a href="https://blog.sicara.com/perfect-python-command-line-interfaces-7d5d4efad6a2"><em>https://blog.sicara.com/perfect-python-command-line-interfaces-7d5d4efad6a2</em></a><em>}</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4ZsAGPWPBFymGJVj8Joq7g.jpeg" /></figure><p>此篇文將教您如何製作完美的<strong>Python命令行界面</strong>，以提高您的團隊生產力和舒適度。</p><p>作為Python開發人員，我們總是使用和編寫命令行界面。 例如，在原文章作者的Data Science項目中，利用命令行運行幾個腳本來訓練他的模型併計算算法的準確性。</p><p>讓整個介面更直觀是提高工作效率的好方法，這樣編輯腳本也會比較方便，特別是當您是多個開發人員共同開發一個項目時。</p><p>為了實現這一目標，原文章作者建議您遵守以下4條準則：</p><ol><li>您應該盡可能提供默認參數值</li><li>應該盡可能的處理所有錯誤情況（例如：缺少參數，錯誤類型，找不到文件）</li><li>必須把所有的論點和選項記錄下來(寫上註解)</li><li>應顯示即時執行的進度</li></ol><h3><strong>我們舉一個簡單的例子</strong></h3><p>讓我們嘗試將這些規則應用於一個具體且簡單的範例中：使用<a href="https://en.wikipedia.org/wiki/Caesar_cipher">凱薩密碼</a>加密和解密消息的腳本。</p><p>假設您已經編寫了一個加密函數（如下所示），並且您希望創建一個允許加密和解密消息的簡單腳本。 我們希望讓用戶選擇加密（默認情況下）和解密之間的模式，並使用命令行參數選擇密鑰（默認為1）。</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/bf0e8c6c9d7405e7ff2db2fb02ebe157/href">https://medium.com/media/bf0e8c6c9d7405e7ff2db2fb02ebe157/href</a></iframe><p>我們的腳本需要做的第一件事是獲取命令行參數的值。 當我在google上搜尋“python命令行參數”時，我得到的第一個結果是關於sys.argv。 所以讓我們來嘗試使用這種方法吧……</p><h3>“初學者”方法</h3><p>sys.argv是一個列表，其中包含用戶在運行腳本時鍵入的所有參數（包括腳本名稱本身）。</p><p>例如，如果我輸入：</p><pre><strong>&gt; python caesar_script.py --key 23 --decrypt my secret message</strong></pre><pre>pb vhfuhw phvvdjh</pre><p>該清單包含：</p><pre>[&#39;caesar_script.py&#39;, &#39;--key&#39;, &#39;23&#39;, &#39;--decrypt&#39;, &#39;my&#39;, &#39;secret&#39;, &#39;message&#39;]</pre><p>所以我們將循環這個參數列表，尋找一個’ — key’（或’-k’）來知道輸入值，並尋找一個’ — decrypt’來使用解密模式（實際上只需使用 與鑰匙相對的鑰匙）。</p><p>我們的腳本最後看起來像這段代碼：</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/e245e41f32a0afe3731dcab17b0dfacb/href">https://medium.com/media/e245e41f32a0afe3731dcab17b0dfacb/href</a></iframe><p>該腳本尊守以下規範：</p><ol><li>有一個默認輸入值和一個默認模式</li><li>有處理基本錯誤情況（未提供輸入文本或未知參數）</li><li>在這些錯誤情況下顯示一個錯誤訊息，並在調用沒有參數的腳本時：</li></ol><pre><strong>&gt; python caesar_script_using_sys_argv.py</strong></pre><pre>Usage: python caesar.py [ --key &lt;key&gt; ] [ --encrypt|decrypt ] &lt;text&gt;</pre><p>但是，這個版本的凱薩腳本很長（39行，甚至不包括加密本身的邏輯）並且不太簡潔。</p><p>所以必須有一種更好的方法來解析命令行參數……</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d4c73004fe2e" width="1" height="1" alt=""><hr><p><a href="https://medium.com/taiwan-code-school/%E9%80%9A%E9%81%8E%E7%AF%84%E4%BE%8B%E5%AD%B8%E7%BF%92%E5%A6%82%E4%BD%95%E5%84%AA%E5%8C%96python%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%95%8C%E9%9D%A2-%E4%B8%8A-%E5%A5%BD%E6%96%87%E5%88%86%E4%BA%AB-d4c73004fe2e">通過範例學習如何優化Python命令行界面(上) — 好文分享</a> was originally published in <a href="https://medium.com/taiwan-code-school">Taiwan Code School</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[我們一歲的堅持與努力]]></title>
            <link>https://medium.com/taiwan-code-school/%E6%88%91%E5%80%91%E4%B8%80%E6%AD%B2%E7%9A%84%E5%A0%85%E6%8C%81%E8%88%87%E5%8A%AA%E5%8A%9B-1b3fe327554b?source=rss----e4b0e8386197---4</link>
            <guid isPermaLink="false">https://medium.com/p/1b3fe327554b</guid>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[stories]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[education]]></category>
            <category><![CDATA[python]]></category>
            <dc:creator><![CDATA[Louis Ho]]></dc:creator>
            <pubDate>Mon, 31 Dec 2018 12:59:44 GMT</pubDate>
            <atom:updated>2019-03-23T16:09:40.318Z</atom:updated>
            <content:encoded><![CDATA[<p>努力很不輕鬆 堅持很不容易 TCS 已經一歲了</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HfUOE1CYugv6VPdow_eNtQ.jpeg" /></figure><p>原本只有我一人的團隊，變成有近 10 位的夥伴們，撥出時間和精力，在各個不同的領域上，給予程式範例，社群經營，程式教學和網站的優化升級的建議，都讓 TCS 變成人人都可以學習的程式語言的平台。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-XxYWWVwNRP987A6895Umw.png" /><figcaption>2017 年 ~ 2018 年的 Taiwan Code School 網頁版本更新</figcaption></figure><p>我們一路走過來，團隊也在成長，網站也在成長，從單純的程式教育分享，到努力發展線上與線下的程式資源，貢獻給台灣，是 TCS 始終與團隊堅持著非營利的理念和目標，不管在社群、孩子的教育、我們都希望能夠不斷的提供程式相關資源，給需要的人，創造公平的程式教育。</p><p>我曾經說「80% 我都會拖，真的很抱歉各位，時間排程真的他xx會氣死我自己」TCS 幾乎都是 00 後的夥伴們，我們自己每一天也在努力的學習，TCS 長大，也會使得我們長大，如何解決成本問題，執行問題，市場的需求問題，都是每一天我們在思考的，不過我們真的很開心看到有人在使用我們的網站，讓我們的非營利理念能夠繼續的堅持下去。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*B7L_-6iX63itNAon8I6R0w.png" /></figure><p>將生硬古板的程式透過美學變成簡顯易懂的圖畫，從來都不是一件容易的事情，團隊的日夜不停的努力下，我們慢慢把 Python 變成人人都可以輕鬆學習的語言。我申請大學的過程中，也有提到 TCS 的理念和目標，也陸續的受到大家的肯定，這是我最開心的事情，也希望我們的 Python 週記能夠讓更多人看到。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*--UT6wr-P76XTe0ODaJO1g.png" /><figcaption>Taiwan Code School 2018 年功能</figcaption></figure><p>而在 2019 年，將會是非常有挑戰的一年，在全球的程式教育與人工智慧的快速發展之下，我們必須注重在台灣 108 課綱程式教育，TCS 必須站穩腳步，思考著要如何扮演好我們網站自己的角色，繼續幫助台灣，在這個程式全球化的腳步下，提供更完善且公平的程式教育。</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1b3fe327554b" width="1" height="1" alt=""><hr><p><a href="https://medium.com/taiwan-code-school/%E6%88%91%E5%80%91%E4%B8%80%E6%AD%B2%E7%9A%84%E5%A0%85%E6%8C%81%E8%88%87%E5%8A%AA%E5%8A%9B-1b3fe327554b">我們一歲的堅持與努力</a> was originally published in <a href="https://medium.com/taiwan-code-school">Taiwan Code School</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[只想要「學完」卻忘了「學習」]]></title>
            <link>https://medium.com/taiwan-code-school/%E5%8F%AA%E6%83%B3%E8%A6%81-%E5%AD%B8%E5%AE%8C-%E5%8D%BB%E5%BF%98%E4%BA%86-%E5%AD%B8%E7%BF%92-db9e5bde9d23?source=rss----e4b0e8386197---4</link>
            <guid isPermaLink="false">https://medium.com/p/db9e5bde9d23</guid>
            <category><![CDATA[policy]]></category>
            <category><![CDATA[education]]></category>
            <category><![CDATA[learning]]></category>
            <category><![CDATA[thinking]]></category>
            <category><![CDATA[stories]]></category>
            <dc:creator><![CDATA[Louis Ho]]></dc:creator>
            <pubDate>Wed, 10 Oct 2018 15:00:54 GMT</pubDate>
            <atom:updated>2019-03-23T16:11:04.112Z</atom:updated>
            <content:encoded><![CDATA[<p>當我們在應付大大小小的考試時，卻無意間陷入了只能學完東西的黑洞</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*hpIukYkrxqlck2-nZg9Oew.jpeg" /></figure><blockquote><strong>學完是什麼？學習是什麼？或許有人會問，這兩者不是同樣的意思嗎，特別拿出來討論的意義為何？</strong></blockquote><h4>現在台灣推崇的是平等教育，什麼又是平等教育？</h4><p>平等教育的意思，就是希望孩子們都能夠在同樣的環境、同樣的時間，學習同樣的東西，再依照自己性向和志願去各自發展。乍聽之下似乎沒有缺點，因為我們一直都在這樣環境裡成長，都忽略了孩子們要怎麼樣在這樣大環境中，用僅剩的時間去找出自己的性向。</p><p>台灣教育多半都是制式化的學習，習題也多半都是填空、選擇，在某些科目中，幾乎只要背起答案就可以回答，而這樣的教學方式，也讓學習的範圍變得更廣、更難，因為這樣才可以真正篩選出耗費更多時間在學習上的人才。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7Bjdc6zux9oexr88v1Wipw.png" /></figure><h4>「學完」擁有著父母的期許</h4><p>「學完」就像履行義務一樣，是真的有學、是真的看完了，考試或許也能夠拿高分，但是真正所吸收到的知識卻是空泛，又沒有建設性的，因為在這些事情的背後的寓意有很多人都不會在意，他們只管學完它，考完它，然後這些事情就像廢紙一樣，被送進垃圾處理場。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VndTv1Y_At2F1DOQ48y2EQ.jpeg" /></figure><h4>卻失去了「學習」的意義</h4><p>「學習」應該是吸收、融會貫通的。「學習」是不能被逼迫的，它需要主動，而動力源自每個人不同的興趣。</p><p>但台灣現行的教育方式，卻因為時間和教材，而間接扼殺了每個孩子不同的興趣、截斷了每個孩子找尋興趣的路程，也讓他們學習的動力變成只為高分而學、只為考試而讀。</p><p>這樣的學習制度，真的是為孩子好嗎？真的能夠讓他們享受學習的樂趣，從而找到自己與他人不同的地方嗎？因材施教，這個詞彙已經被我們的社會遺忘許久，而如今社會才終於重新關注起來。讓每個人知道心之所向為何，身之所往何地？這便是「學習」的意義了。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/832/1*l2wEkQNc8lMF2dpU9GJ7Hg.png" /></figure><h4>考試壓力 ＋ 時間壓力 迫使我們學到不想學的東西</h4><p>但在台灣教育時長的壓迫，將近8個小時都在學校的壓縮，往往都會讓孩子們有不夠多的時間去探索自己，甚至大部分的孩子，就連下了課都還要去補習班，幾乎一整天都在書本裡埋首度過，學習也逐漸變成是他們的壓力，有些人甚至忘記了自己為什麼要學習，他們忘記了學習的樂趣，忘記吸收知識這件事的重要，只希望早早把課本上的東西學完、考試能夠考高分，分數變成了學習的一切。</p><h4>我們需要改變</h4><p>台灣的教育，往往缺少實作以及申論題材，這也讓學習的過程變得枯燥乏味，沒有人會想，在世界慘烈的歷史下，該學到的教訓；沒有人學習到儒家文化中，值得反駁的是什麼，但是要是問他們，唐宋古文八大家是誰，卻幾乎人人都會回答，因為這是只要花時間背誦就能夠達到的事情，但這些孩子也隨著這樣的教育，而逐漸忘記學習這件事背後的意義，真正的學習不單單只是老師說，這些要背、要記、要算，這會考，這麼簡單的事情而已。</p><p>孩子們已經習慣了這樣的教學方式，往往會讓他們學習的目的變得像是一種義務，像一種工作，他們只想要趕快結束、趕快「學完」，因為這樣他們才能夠不被制約的去做自己真正有興趣的事情，或許是跑步、或許是樂器、也或許是閱讀課外書籍，每件事都是他們真正喜歡的事情，也或許花費在這些事情裡的時間，他們能夠真正找出自己感興趣且願意在這條路上越走越遠的愛好。</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=db9e5bde9d23" width="1" height="1" alt=""><hr><p><a href="https://medium.com/taiwan-code-school/%E5%8F%AA%E6%83%B3%E8%A6%81-%E5%AD%B8%E5%AE%8C-%E5%8D%BB%E5%BF%98%E4%BA%86-%E5%AD%B8%E7%BF%92-db9e5bde9d23">只想要「學完」卻忘了「學習」</a> was originally published in <a href="https://medium.com/taiwan-code-school">Taiwan Code School</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>