<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Python101 on Bro Nan&#39;s Journal</title>
    <link>https://liubonan.com/categories/Python101/</link>
    <description>Recent content in Python101 on Bro Nan&#39;s Journal</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Sat, 25 Jul 2020 01:30:37 +0000</lastBuildDate>
    <atom:link href="https://liubonan.com/categories/Python101/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>商科小白的Python课EP5：根据模板自动批量生成文档</title>
      <link>https://liubonan.com/posts/python101-ep05/</link>
      <pubDate>Sat, 25 Jul 2020 01:30:37 +0000</pubDate>
      <guid>https://liubonan.com/posts/python101-ep05/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;每天十分钟，编程很轻松！大家好，我是码农楠哥。&lt;/p&gt;&#xA;&lt;p&gt;今天是Python入门课的第五节，上面的视频源是B站，海外的朋友可以前往YouTube观看&lt;a href=&#34;https://youtu.be/Lj_3EVmQa8g&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://youtu.be/Lj_3EVmQa8g&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;上节课我们讲解了循环语句，今天，让我们来通过一个真实的案例来加深一下对循环语句的理解。&lt;/p&gt;&#xA;&lt;p&gt;首先让我们看一下这个案例。很多做审计的同学经常需要向不同的公司和银行发送询证函。这类函件一般都有一个固定的模板，只需要根据不同的询证对象填入不同的公司名称，银行账号等信息。其实，在很多行业都存在类似的任务，比如说做行政工作的小伙伴或许经常需要向不同部门、不同的人员发送不同的通知；做人力资源工作的小伙伴需要根据不同职位、不同人员在预定的表格和邮件中填入不同的信息。以我们当前的询证函为例，我们想要向不同的银行发出不同的询证函。这个例子中，我们需要向五个银行发送询证函。所有银行的信息都记录在第一个和第二个表格当中。第一个表格中记录了每个银行的存款信息，第二个表格记录了每个银行的借款信息。我们希望生成5个新的表格，每个表格是一个可以直接打印的询证函，同时每份询证函中的公司名称、银行信息等内容都被进行了合理的替换。看到这里，不防稍微暂停一下视频，想想你要如何使用python程序完成这项工作呢？&lt;/p&gt;&#xA;&lt;p&gt;让我们先来分解一下任务。&lt;/p&gt;&#xA;&lt;p&gt;首先，我们的python程序需要能够对五个银行进行重复的操作，这就是一个非常典型的循环语句的使用场景。此处我们希望循环语句循环执行五次，每次都完成几乎相同的操作。&lt;/p&gt;&#xA;&lt;p&gt;其次，在每次执行循环语句时，我们希望首先将询证函模板复制到一个新的表格当中，之后把相应的数据插入到对应的单元格当中。具体到我们的信息，对于&lt;code&gt;COMPANY_NAME&lt;/code&gt;我们需要进行替换操作，对于日期我们希望替换为当前的日期，对于编号我们希望替换为当前的编号。对于银行账号，我们希望从deposit这个表格中获取存款账号，从due这个表格中获取借款的账号。当我对于五个银行都执行了上面描述的操作后，我们就生成了五份询证函。&lt;/p&gt;&#xA;&lt;p&gt;下面让我们来看一下如何完成程序。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;openpyxl&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;import&lt;/span&gt; load_workbook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; load_workbook(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;example1.xlsx&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;template &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; wb[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;template&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;due &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; wb[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;due&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;deposit &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; wb[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;deposit&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt; i &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;in&lt;/span&gt; range(&lt;span style=&#34;color:#a5d6ff&#34;&gt;6&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  target &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;copy_worksheet(template)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  target[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;A3&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; deposit[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;B&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; (i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;)]&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  target[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;J2&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; deposit[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;A&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; (i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;)]&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  target[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;C18&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; deposit[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;C&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; (i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;)]&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  target[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;C24&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; due[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;C&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; (i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;)]&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  target&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;title &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;letter&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; (i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;save(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;example1.xlsx&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;当然，在实际当中创建询证函的流程要比我们的案例中更加复杂。比如，很可能同一家银行会有多个账号，我们需要在模板中填充的数据的格式、数值显示方式、精确度等要有不同的变化。再或者，有些时候生成Word文档、PDF文档甚至是Outlook邮件会更加简化工作流程。我们在后续的课程中会逐步的讲解到如何使用Python完成这些任务。&lt;/p&gt;&#xA;&lt;p&gt;以上就是这节课的全部内容。每天十分钟，编程很轻松。谢谢大家收看，我们下期再见。&lt;/p&gt;</description>
    </item>
    <item>
      <title>商科小白的Python课EP4：循环语句助你迅速提升编程效率</title>
      <link>https://liubonan.com/posts/python101-ep04/</link>
      <pubDate>Mon, 29 Jun 2020 19:13:07 +0000</pubDate>
      <guid>https://liubonan.com/posts/python101-ep04/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;每天十分钟，编程很轻松！大家好，我是码农楠哥。&lt;/p&gt;&#xA;&lt;p&gt;今天是Python入门课的第四节，上面的视频源是B站，海外的朋友可以前往YouTube观看&lt;a href=&#34;https://youtu.be/IQJoDbjt1P8&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://youtu.be/IQJoDbjt1P8&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;在前面的课程中，我们使用的绝大多数语句都是赋值语句。对于赋值语句，每条语句执行一次，所以如果想要重复的执行10遍某一条语句，就要将某一条语句复制10遍。比如&lt;code&gt;print(123)&lt;/code&gt;会在屏幕上输出123，如果想要输出10遍123，就需要将&lt;code&gt;print(123)&lt;/code&gt;复制10遍写在程序中。显然，这样的方式是非常低效的。循环语句则解决了这个问题。&lt;/p&gt;&#xA;&lt;h2 id=&#34;for循环语句&#34;&gt;&#xA;  for循环语句&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#for%e5%be%aa%e7%8e%af%e8%af%ad%e5%8f%a5&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;for循环语句的基本结构如下。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt; i &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;in&lt;/span&gt; range(&lt;span style=&#34;color:#a5d6ff&#34;&gt;10&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  print(&lt;span style=&#34;color:#a5d6ff&#34;&gt;123&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;for循环语句中，有三个组成部分：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;range(10)&lt;/code&gt;是循环的范围。循环的范围一般是一个list，比如&lt;code&gt;[1,2,3,5,8,10]&lt;/code&gt;。而&lt;code&gt;range(10)&lt;/code&gt;函数则方便的返回了一个由10个元素构成的、从0到9的连续自然数构成的链表。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;i&lt;/code&gt;是循环变量，它的值在每次循环执行中依次为循环范围中的值。如果循环范围是&lt;code&gt;[1,2,3,5,8,10]&lt;/code&gt;，那么循环会执行6次，&lt;code&gt;i&lt;/code&gt;的值依次为1，2，&amp;hellip;，10。如果循环范围为&lt;code&gt;range(10)&lt;/code&gt;，那么循环会执行10次，&lt;code&gt;i&lt;/code&gt;的值依次为0，1，2，3，&amp;hellip;，9。&lt;/li&gt;&#xA;&lt;li&gt;循环执行的语句。从第二行开始，以两个空格为开头的语句都是循环执行的部分。每次循环执行时，这部分语句都会重复执行一遍。上面的例子中，&lt;code&gt;print(123)&lt;/code&gt;会重复执行10遍。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;依此类推，如果想依次输出一个从0到9的等差数列，则可以通过如下程序实现。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt; i &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;in&lt;/span&gt; range(&lt;span style=&#34;color:#a5d6ff&#34;&gt;10&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  print(i)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;while循环语句&#34;&gt;&#xA;  while循环语句&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#while%e5%be%aa%e7%8e%af%e8%af%ad%e5%8f%a5&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;for循环语句多用于已知循环次数的场景。在很多时候，我们 并不知道总共要循环多少次，所以使用while循环语句将更加方便。&lt;/p&gt;&#xA;&lt;p&gt;while循环语句基本结构如下：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;i &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;while&lt;/span&gt; i &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;10&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  print(i)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  i &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; i &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;while循环有两个部分构成：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;i &amp;lt; 10&lt;/code&gt;是执行条件（或终止条件）。当该部分条件满足时，重复执行指定的语句。如果条件不再满足，则终止执行。&lt;/li&gt;&#xA;&lt;li&gt;循环执行的语句。从第二行开始，以两个空格为开头的语句都是循环执行的部分。每次循环执行时，这部分语句都会重复执行一遍。上面的例子中，&lt;code&gt;print(i)&lt;/code&gt;和&lt;code&gt;i = i + 1&lt;/code&gt;就会重复的执行。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;需要注意的是，while循环语句不会自动的改变循环变量的值。你必须使用&lt;code&gt;i = i + 1&lt;/code&gt;语句主动地将循环变量的值进行改变，才可以保证程序不进入死循环。&lt;/p&gt;&#xA;&lt;p&gt;如上内容就是循环语句的基本结构，更加详细的内容请见今天的视频。下节课我们将会使用一个案例来看一下如何应用循环语句。每天十分钟，编程很轻松！我们下次见！&lt;/p&gt;</description>
    </item>
    <item>
      <title>商科小白的Python课EP3：十分钟自动化生成报表</title>
      <link>https://liubonan.com/posts/python101-ep03/</link>
      <pubDate>Fri, 26 Jun 2020 05:52:44 +0000</pubDate>
      <guid>https://liubonan.com/posts/python101-ep03/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;每天十分钟，编程很轻松！大家好，我是码农楠哥。&lt;/p&gt;&#xA;&lt;p&gt;今天是Python入门课的第三节，上面的视频源是B站，海外的朋友可以前往YouTube观看&lt;a href=&#34;https://youtu.be/9V5Wgk_v3r8&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://youtu.be/9V5Wgk_v3r8&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;上节课我们介绍了Python当中的不同的数据类型，今天让我们来看一个对Excel表格进行操作的例子。&lt;/p&gt;&#xA;&lt;p&gt;很多金融界的从业者（或其他一些相关产业的从业者）经常会遇到这样一个使用场景：每天或者每周要为组里准备一个报表，该报表要从若干个文件中读取一些数据。比如说，某个报表要从三个表格文件中读取数据，然后对这些数据进行一些运算，比如对他们求个平均值，或者把它里面的一些内容进行拼接，最后按固定的格式生成一个报表。对于这样的任务，其实就非常适合用Python程序来解决。这是因为，如果数据源的格式是相对固定的话，那么你写一个Python程序，每天运行一次就可以重复性的完成这项任务，再也不需要每天手动的去粘贴复制。&lt;/p&gt;&#xA;&lt;p&gt;我们应该先用动态创建一个文件，和以前一样，我们首先要引用包。因为这次我们要从不同的表格里读取数据，所以我们要用openpyxl包里的另外一个函数&lt;code&gt;load_workbook()&lt;/code&gt;。该函数可以用于读取已经存在的Excel表格。整个程序要完成如下步骤：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;打开指定的Excel表格。该步骤可以用&lt;code&gt;load_workbook()&lt;/code&gt;完成。&lt;/li&gt;&#xA;&lt;li&gt;读取指定单元格的数据。读取一个单元格的数据，可以使用&lt;code&gt;ws[&amp;quot;A1&amp;quot;].value&lt;/code&gt;完成。其中&lt;code&gt;ws&lt;/code&gt;保存的是当前活跃的表格，A1是指定的单元格&lt;/li&gt;&#xA;&lt;li&gt;将读取的数据输出到屏幕上。我们可以使用以前讲解过得&lt;code&gt;print()&lt;/code&gt;函数完成。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;整个程序如下：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;openpyxl&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;import&lt;/span&gt; load_workbook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;stock_wb &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; load_workbook(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;stocks.xlsx&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;stock_ws &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; stock_wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;active&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;aapl &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; stock_ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;A1&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;Today&amp;#39;s price is: &lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; aapl&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;我们还可以将结果输出到另一个新的Excel表格当中。这需要使用我们第一节课讲到的&lt;code&gt;save()&lt;/code&gt;函数。比如说，下面的程序将结果写到了一个新的文件当中。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;openpyxl&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;import&lt;/span&gt; Workbook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;openpyxl&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;import&lt;/span&gt; load_workbook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;stock_wb &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; load_workbook(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;stocks.xlsx&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;stock_ws &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; stock_wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;active&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;aapl &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; stock_ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;B3&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;test_wb &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; load_workbook(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;test.xlsx&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; Workbook()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;active[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;A1&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; aapl&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;save(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;report.xlsx&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;Today&amp;#39;s price is: &lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; aapl&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;Another value: &lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; test_wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;active[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;B2&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上就是今天的课程。今天这节课我们第一次使用一个更加具象的案例，向大家介绍了如何使用Python来生成固定格式的报表。随着我们学习的深入，我们的Python程序将逐渐可以完成更加复杂、更加智能的任务。&lt;/p&gt;&#xA;&lt;p&gt;每天十分钟，编程很轻松！我们下次见！&lt;/p&gt;</description>
    </item>
    <item>
      <title>商科小白的Python课EP2：你只需了解这三种数据类</title>
      <link>https://liubonan.com/posts/python101-ep02/</link>
      <pubDate>Fri, 19 Jun 2020 18:01:24 +0000</pubDate>
      <guid>https://liubonan.com/posts/python101-ep02/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;每天十分钟，编程很轻松！大家好，我是码农楠哥。&lt;/p&gt;&#xA;&lt;p&gt;今天是Python入门课的第二节，上面的视频源是B站，海外的朋友可以前往YouTube观看:&lt;a href=&#34;https://youtu.be/D3vywcI3xOo&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://youtu.be/D3vywcI3xOo&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;首先让我们来写一个Python小程序，输出一个简单的表格。与上次不同的是，我们今天想使用我们常用的和笔记本编辑软件，创建一个新的文件来完成Python程序。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;openpyxl&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;import&lt;/span&gt; Workbook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; Workbook()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;active&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;A1&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;GOOG&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;A2&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;MSFT&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;B1&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;100&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;B2&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;200&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;save(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;stocks.xls&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;保存文件后，运行程序。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;python second_program.py&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;运行程序后打开输出的Excel表格，大家可以看到我们想要输出的内容，&lt;/p&gt;&#xA;&lt;h2 id=&#34;python程序的基本结构&#34;&gt;&#xA;  Python程序的基本结构&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#python%e7%a8%8b%e5%ba%8f%e7%9a%84%e5%9f%ba%e6%9c%ac%e7%bb%93%e6%9e%84&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;打开我们刚才写的程序，可以看到程序当中有几个基本的元素。首先，第一部分是对于包的引用，在编程当中，我们希望能尽可能多的复用其他人的已经完成的工作，为此，我们通常需要引用已经写好的包（package）。这些包通常有非常丰富的功能：简单的包可以处理表格；复杂的包甚至可以做出3D的图形。因此，我们Python程序中的第一部分一般都是引用其他人的工作，如果你是引用整个包的，可以用&lt;code&gt;import openpyxl&lt;/code&gt;，如果你要是引用包中的某个具体的内容，可以用&lt;code&gt;from openpyxl import Workbook&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;p&gt;紧接着，程序从第一行可执行的代码开始运行。该程序中所有的的内容都是表达式。我们可以看到基本的表达式是由三部分构成的，&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;等号的左侧，是变量名，&lt;/li&gt;&#xA;&lt;li&gt;等号（等号是运算符），我们对于运算符的意义定义为：&lt;strong&gt;将等号右侧的值赋值给左侧变量&lt;/strong&gt;，这和数学中的等号是不一样的，数学中的等号是相等的意思，而在Python当中等号是赋值的意思&lt;/li&gt;&#xA;&lt;li&gt;右侧是调用库当中的函数。函数呢会产生一个值，我们为了把值记录下来，因此需要把它复制给左边变量&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;大家可以看到，这就是Python程序中的基本结构。首先引用你需要用到的包，之后是一系列语句语句，这些语句有很多形式，该样例程序中主要有两种，一种是赋值，一种是函数的调用。&lt;/p&gt;&#xA;&lt;h2 id=&#34;python中的数据类型&#34;&gt;&#xA;  Python中的数据类型&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#python%e4%b8%ad%e7%9a%84%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;下面让我们来看一下拍摄当中的数据类型，让我们回顾一下刚才写的小程序，大家可以注意到里有几种不同的数据类型：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;首先是股票的代码，比如说GOOG，它是用双引号引用了起来，包括下面的文件名也用双引号引用起来。这是一种重要的数据类型，称为字符串（string）。&lt;/li&gt;&#xA;&lt;li&gt;其次是股票的价格，比如100，这是一种数值类型，&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;我们下面就来看一下Python当中常用的几种数据类型。&lt;/p&gt;&#xA;&lt;p&gt;对于字符串来说，我们一般是用单引号或者双引号，将字符串囊括在其中，字符串可以是英文字母，可以是符号，可以是其他各种语言。对于字符串来说，有几种基本的操作，比如说我们可以使用函数将字符串中的所有字符变成大写（&lt;code&gt;s.upper()&lt;/code&gt;）或者小写（&lt;code&gt;s.lower()&lt;/code&gt;），去除字符串两端的空格（&lt;code&gt;s.strip()&lt;/code&gt;），或者对字符串的内容进行替代（使用&lt;code&gt;%s&lt;/code&gt;作为占位符）。&lt;/p&gt;&#xA;&lt;p&gt;Python当中的数值类型的常用的有两种：一种是整型int，它只有数的整数部分，还有一种东西叫做浮点型float，是有小数部分的，比如&lt;code&gt;a=1&lt;/code&gt;整型，如果是&lt;code&gt;b=1.0&lt;/code&gt;（注意此处有小数点），虽然小数点后面是0，但是它是浮点型的，他们&lt;code&gt;a&lt;/code&gt;、&lt;code&gt;b&lt;/code&gt;是两种不同的类型。数值类型之间可以进行四则运算。&lt;/p&gt;&#xA;&lt;p&gt;最后，我想跟大家讲的是list类型。在很多编程语言当中的一般，我们会先讲数组，之后再说list类型。但是Python中大家更多地使用的是list类型，也称为列表、链表类型。假设你现在有一组数据，而不是一个单一数据，那么你通常需要一个变量来对一组数据进行管理的，list类型就可以帮你完成这一个任务。list类型的表示方式是&lt;code&gt;a = [1,2,3]&lt;/code&gt;，如果你想在&lt;code&gt;a&lt;/code&gt;后面再加list，那你可以再加一个列表，如&lt;code&gt;a = [1,2,3] + [4]&lt;/code&gt;。我们还有一些常用的函数，比如说，&#xA;&lt;code&gt;len()&lt;/code&gt;函数可以判断链表中元素的个数。而如果我们想访问列表当中的单一数据，我们需要使用&lt;code&gt;a[0]&lt;/code&gt;的形式。大家注意，在我时想要调用链表a的第一个元素的时候，我们向方括号当中写入了0。此处的0代表的是元素的位置。在计算机当中，对于一个序列、一个链表或是一个数组，&lt;strong&gt;第一个位置的编号都是0&lt;/strong&gt;，这是和数学中不一样的：数学中一般是从1开始，但是在计算机当中我们都是从0开始数的。&lt;/p&gt;&#xA;&lt;p&gt;以上就是今天的课程。今天节课我们讲了Python当中各种不同的数据类型，有整型int，有浮点型float，还有字符串string，列表list。Python当中还有很多复杂的数据类型，希望在后面的课程中逐渐的将些复杂的数据类型介绍给大家。&lt;/p&gt;&#xA;&lt;p&gt;每天十分钟，编程很轻松！我们下次见！&lt;/p&gt;</description>
    </item>
    <item>
      <title>商科小白的Python课EP1：零基础十分钟写Python</title>
      <link>https://liubonan.com/posts/python101-ep01/</link>
      <pubDate>Wed, 17 Jun 2020 00:39:59 +0000</pubDate>
      <guid>https://liubonan.com/posts/python101-ep01/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;大家好，我是码农楠哥。楠哥是一名软件工程师，现在效力于某大型科技公司，同时在纽约城市大学兼职授课。经常有一些朋友问我，非IT行业从业者是否需要学习一点编程呢？看到我有些许的授课经验，还有一些朋友还会让我给零基础自学编程的同学提出一些入门的建议。经过一段时间的思考，楠哥决定录制一些简单的视频，帮助非IT从业者从零基础学习编程。&lt;/p&gt;&#xA;&lt;p&gt;楠哥一直以来都认为，编程与烹饪、开车、外语一样，如果平时不使用，那么学习的再认真、再努力早晚都会忘记。所以，楠哥的视频不求多求全，而是希望让非IT从业人员从第一期视频开始，就可以用小程序处理实际问题。楠哥打算第一个系列将帮助金融业的从业人员使用python程序方便快捷的处理excel表格。整个系列会录制8期，每期10分钟左右。希望能让各位真的可以体会到“每天十分钟，编程很轻松！”&lt;/p&gt;&#xA;&lt;p&gt;在视频中，楠哥会进行详细的讲解，在此处更新的的文章，则用于帮助大家进行课后复习。本系列的课程已经为商科同学进行了极大的简化，因此，楠哥强烈建议大家至少观看一次视频，以便更加全面的掌握细节。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;文章默认链接的视频是B站的视频源，如果你身在海外，也可以&lt;a href=&#34;https://youtu.be/3fKnmptDdh4&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;前往Youtube观看&lt;/a&gt;。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;python安装mac用户可以跳过此步&#34;&gt;&#xA;  Python安装（Mac用户可以跳过此步）&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#python%e5%ae%89%e8%a3%85mac%e7%94%a8%e6%88%b7%e5%8f%af%e4%bb%a5%e8%b7%b3%e8%bf%87%e6%ad%a4%e6%ad%a5&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;和所有的系统软件一样，如果你想使用编程语言，首先需要打开浏览器下载、安装该语言所需要的软件（即该语言的编译器）。编程语言分为两种：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;解释性编程语言：写一行，计算机执行一号&lt;/li&gt;&#xA;&lt;li&gt;编译型编程语言：先写完所有程序，然后使用编译器对程序从头到尾进行一次编译，之后再运行程序&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Python语言比较简单，属于解释性编程语言。所以，我们可以一边编程，一边查看编的结果。&lt;/p&gt;&#xA;&lt;p&gt;下载Python语言我们首先需要打开浏览器，打开Python语言的官网&lt;a href=&#34;http://python.org&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;http://python.org&lt;/a&gt;，下载最新版本下载之后进行安装即可。和所有软件的安装方法都一样，大家只需要根据提示进行安装即可，如果你是使用Windows 10的用户，楠哥这里推荐另外两种更简易的安装方式：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;通过命令行直接输入python。这样的会打Windows Store可以一键化的安装。&lt;/li&gt;&#xA;&lt;li&gt;如果要是打算学习更加复杂的程序的同学可以安装一个Python的集成开发环境（IDE）。如果说命令行是Windows的画图工具的话，那么集成开发环境就是更高级的Photoshop。很多厂商都开发了自己的IDE，楠哥这里推荐一个叫做PyCharm的软件，这是这两年比较流行的一个。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;启动python&#34;&gt;&#xA;  启动Python&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e5%90%af%e5%8a%a8python&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;在Windows中启动Python我们有两种方式，第一种是通过传统的命令行cmd，还有一种方式是可以通过更高级的、提供更丰富功能的PowerShell。在Mac操作系统中，可以使用Terminal程序。为了给大家更清晰地展示Python的丰富功能，本文后续会使用PowerShell进行演示。&lt;/p&gt;&#xA;&lt;p&gt;在PowerShell中输入python就可以进入Python的编程界面。第一个程序，我们可以写一个简单的运算。比如如下程序：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;表示我们得到了一个名称（变量名）是a其值是1的变量。如果输入下列程序，&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;系统会输出2。&lt;/p&gt;&#xA;&lt;p&gt;如果输入&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;b&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;b&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;系统会给出运算结果3。这几个程序就是最简单的Python程序。&lt;/p&gt;&#xA;&lt;p&gt;我们可以通过exit()或者通过快捷键Ctrl-Z或者Ctrl-D退出Python。&lt;/p&gt;&#xA;&lt;p&gt;至此，我们通过输入一行命令、让系统计算一次的方式完成了第一个Python程序。有的时候，你会需要写一个比较复杂的程序，这个时候你则更需要把所有的命令写在一个文件当中让Python直接执行这个文件。我们可以用任何名字来命名我们的文件，但是一般的为了遵循一定的规则，Python程序的结尾通常以.py为结尾，即扩展名是为py。所以，如果我们要写一个简单的程序，那么我们就需要用notepad创建一个新的文件来编写程序。因为我们现在要执行一个大文件，让Python从头到尾执行该程序，那么我们需要用到一个函数print来输出结果。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;b&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(a&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;b)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;该课程是面向非专业程序员、特别是金融界的分析师进行设置的，所以我们主要是以Excel表格为载体进行Python的讲解。用Python控制Excel最简单的方法是使用openpyxl包。在普通安装情况下，这个包是没有安装的。所以我们需要使用下面这条命令去安装这个包：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pip install openpyxl&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这个包每台电脑只需要运行一次即可。&lt;/p&gt;&#xA;&lt;p&gt;Excel表格的基本结构是：首先有一个文件，文件打开之后会有若干个表格。我们可以通过一个简单的程序来完成这个过程。比如如下程序创建了一个新的Excel文件，并对他的单元格A1和B2文件。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;openpyxl&lt;/span&gt; improt Workbook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; Workbook()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;active&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;A1&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;B2&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;save(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;test.xlsx&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;总结&#34;&gt;&#xA;  总结&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%80%bb%e7%bb%93&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;回顾一下今天的课程。我们安装了Python，分解了Python写程序的两种方法：第一种是解释型的编编程编写，第二种是写到一个文件里然后一次性的执行。我们使用openpyxl创建一个新的Excel表格并完成了最简单的赋值。下节课开始，我们将继续以Excel表格为载体，深入讲解Python的基础知识。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
