<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>影</title>
  
  <subtitle>影追寻光的漫长岁月</subtitle>
  <link href="/atom.xml" rel="self"/>
  
  <link href="http://yoursite.com/"/>
  <updated>2019-05-09T10:44:45.842Z</updated>
  <id>http://yoursite.com/</id>
  
  <author>
    <name>影</name>
    
  </author>
  
  <generator uri="http://hexo.io/">Hexo</generator>
  
  <entry>
    <title>Python flask+echarts实现数据可视化</title>
    <link href="http://yoursite.com/2019/05/09/Python-echarts%E5%AE%9E%E7%8E%B0%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96/"/>
    <id>http://yoursite.com/2019/05/09/Python-echarts实现数据可视化/</id>
    <published>2019-05-09T08:42:55.000Z</published>
    <updated>2019-05-09T10:44:45.842Z</updated>
    
    <content type="html"><![CDATA[<h6 id="缘起：最近在写论文，由于与Python-Flask有关，又想要让数据库中的数据可视化，于是就尝试了echarts-其支持很多不同的数据图表，有兴趣的话可以自行学习。"><a href="#缘起：最近在写论文，由于与Python-Flask有关，又想要让数据库中的数据可视化，于是就尝试了echarts-其支持很多不同的数据图表，有兴趣的话可以自行学习。" class="headerlink" title="缘起：最近在写论文，由于与Python Flask有关，又想要让数据库中的数据可视化，于是就尝试了echarts,其支持很多不同的数据图表，有兴趣的话可以自行学习。"></a>缘起：最近在写论文，由于与Python Flask有关，又想要让数据库中的数据可视化，于是就尝试了echarts,其支持很多不同的数据图表，有兴趣的话可以自行学习。</h6><hr><p>本篇文章利用Python Flask框架与echarts相结合，以商品的库存量与销售量数据可视化作为示例，展示了一个从建立数据库，到Python封装数据库信息为json格式数据，前端接受json格式数据并执行响应，最终展示数据的到页面的一个完整的流程。</p><pre><code>项目结构Goods文件夹|-static||-下载的chart文件夹||-echarts.js||-js|||-jquery.min.js|-templates||-index.html|-Goods.db|-view.py</code></pre><blockquote><h4 id="1、数据库建立"><a href="#1、数据库建立" class="headerlink" title="1、数据库建立"></a>1、数据库建立</h4></blockquote><p>由于没有太多的数据，本次就选用了轻量级的SQLite数据库，数据库可以更换为任何你想用的。</p><p>数据库Goods.db 数据表名称Goodsdata<br>表结构如下：<br><img src="https://pic4.zhimg.com/v2-129378569bfe2ce9a2a68e8a43e525ab_b.jpg" alt="数据表"></p><blockquote><h4 id="2、Python连接数据库并封装数据为json格式"><a href="#2、Python连接数据库并封装数据为json格式" class="headerlink" title="2、Python连接数据库并封装数据为json格式"></a>2、Python连接数据库并封装数据为json格式</h4></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br></pre></td><td class="code"><pre><span class="line"># view.py</span><br><span class="line"></span><br><span class="line">from flask import * # 导入flask模块下的所有元素</span><br><span class="line">import sqlite3</span><br><span class="line"></span><br><span class="line">app = Flask(__name__) # 建立Flask应用</span><br><span class="line">app.secret_key = &quot;ninsuiyi&quot;</span><br><span class="line"></span><br><span class="line">def get_db():</span><br><span class="line">    db = sqlite3.connect(&apos;Goods.db&apos;)</span><br><span class="line">    db.row_factory = sqlite3.Row</span><br><span class="line">    return db</span><br><span class="line"></span><br><span class="line">def query_db(query, args=(), one=False):</span><br><span class="line">    db = get_db()</span><br><span class="line">    cur = db.execute(query, args)</span><br><span class="line">    db.commit()</span><br><span class="line">    rv = cur.fetchall()</span><br><span class="line">    db.close()</span><br><span class="line">    return (rv[0] if rv else None) if one else rv</span><br><span class="line"></span><br><span class="line">@app.route(&apos;/&apos;)</span><br><span class="line">def index():</span><br><span class="line">    return render_template(&quot;index.html&quot;)</span><br><span class="line"></span><br><span class="line">@app.route(&quot;/viewdata&quot;, methods=[&quot;POST&quot;])</span><br><span class="line">def viewdata():</span><br><span class="line">    if request.method == &quot;POST&quot;:</span><br><span class="line">        res = query_db(&quot;SELECT Goods_name, Goods_inventory,Goods_sales_volume FROM Goodsdata&quot;)</span><br><span class="line">    return jsonify(Goods_name = [x[0] for x in res],</span><br><span class="line">                   Goods_inventory = [x[1] for x in res],</span><br><span class="line">                   Goods_sales_volume = [x[2] for x in res])</span><br><span class="line"></span><br><span class="line">注：jsonify()将数据封装为json格式</span><br></pre></td></tr></table></figure><blockquote><h4 id="3、前端页面接受并利用echarts可视化显示"><a href="#3、前端页面接受并利用echarts可视化显示" class="headerlink" title="3、前端页面接受并利用echarts可视化显示"></a>3、前端页面接受并利用echarts可视化显示</h4></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br></pre></td><td class="code"><pre><span class="line">#index.html</span><br><span class="line"></span><br><span class="line">&lt;!DOCTYPE html&gt;</span><br><span class="line">&lt;html lang=&quot;en&quot;&gt;</span><br><span class="line">&lt;head&gt;</span><br><span class="line">    &lt;meta charset=&quot;utf-8&quot;&gt;</span><br><span class="line">    &lt;title&gt;商品与销量数据可视化&lt;/title&gt;</span><br><span class="line">    &lt;script type=&quot;text/javascript&quot; src=&quot;../static/js/jquery.min.js&quot;&gt;&lt;/script&gt;</span><br><span class="line">&lt;/head&gt;</span><br><span class="line">&lt;body&gt;</span><br><span class="line">    &lt;!--Step:1 为ECharts准备一个具备大小（宽高）的Dom--&gt;</span><br><span class="line">    &lt;div id=&quot;main&quot; style=&quot;height:550px;border:1px solid #ccc;padding:10px;&quot;&gt;&lt;/div&gt;</span><br><span class="line"></span><br><span class="line">    &lt;!--Step:2 引入echarts.js--&gt;</span><br><span class="line">    &lt;script src=&quot;&#123;&#123; url_for(&apos;static&apos;, filename=&apos;echarts.js&apos;) &#125;&#125;&quot;&gt;&lt;/script&gt;</span><br><span class="line"></span><br><span class="line">    &lt;script type=&quot;text/javascript&quot;&gt;</span><br><span class="line">    // Step:3 为模块加载器配置echarts的路径，从当前页面链接到echarts.js，定义所需图表路径</span><br><span class="line">    require.config(&#123;</span><br><span class="line">        paths: &#123;</span><br><span class="line">            echarts: &apos;./static&apos;,</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;);</span><br><span class="line"></span><br><span class="line">    // Step:4 动态加载echarts然后在回调函数中开始使用，注意保持按需加载结构定义图表路径</span><br><span class="line">    require(</span><br><span class="line">        [</span><br><span class="line">            &apos;echarts&apos;,</span><br><span class="line">            &apos;echarts/chart/bar&apos;,</span><br><span class="line">            &apos;echarts/chart/line&apos;,// 按需加载</span><br><span class="line">        ],</span><br><span class="line">        function (ec) &#123;</span><br><span class="line">            var myChart = ec.init(document.getElementById(&apos;main&apos;));</span><br><span class="line"></span><br><span class="line">            // 设置</span><br><span class="line">            var option = &#123;</span><br><span class="line">             title: &#123;</span><br><span class="line">                    text: &apos;商品库存与销量数据可视化示例&apos; //图表标题</span><br><span class="line">                &#125;,</span><br><span class="line">                tooltip : &#123;</span><br><span class="line">                    trigger: &apos;axis&apos;</span><br><span class="line">                &#125;,</span><br><span class="line"></span><br><span class="line">                legend: &#123;</span><br><span class="line">                    data:[&apos;库存量&apos;,&apos;销售量&apos;]</span><br><span class="line">                &#125;,</span><br><span class="line">                toolbox: &#123;</span><br><span class="line">                    show : true,</span><br><span class="line">                    feature : &#123;</span><br><span class="line">                        mark : &#123;show: true&#125;,</span><br><span class="line">                        dataView : &#123;show: true, readOnly: false&#125;,</span><br><span class="line">                        magicType : &#123;show: true, type: [&apos;line&apos;, &apos;bar&apos;]&#125;,</span><br><span class="line">                        restore : &#123;show: true&#125;,</span><br><span class="line">                        saveAsImage : &#123;show: true&#125;</span><br><span class="line">                    &#125;</span><br><span class="line">                &#125;,</span><br><span class="line">                calculable : true,</span><br><span class="line"></span><br><span class="line">                xAxis : [</span><br><span class="line">                    &#123;</span><br><span class="line">                        type : &apos;category&apos;,</span><br><span class="line">                        axisLabel:&#123;interval:0,rotate:-45&#125;,</span><br><span class="line"></span><br><span class="line">                        data : []</span><br><span class="line"></span><br><span class="line">                    &#125;</span><br><span class="line"></span><br><span class="line">                ],</span><br><span class="line">            grid: &#123; // 控制图的大小，调整下面这些值就可以，</span><br><span class="line"></span><br><span class="line">             y2: 90,// y2可以控制 X轴跟Zoom控件之间的间隔，避免以为倾斜后造成 label重叠到zoom上</span><br><span class="line">         &#125;,</span><br><span class="line"></span><br><span class="line">                yAxis : [</span><br><span class="line">                    &#123;</span><br><span class="line">                        type : &apos;value&apos;,</span><br><span class="line">                        splitArea : &#123;show : true&#125;</span><br><span class="line">                    &#125;</span><br><span class="line">                ],</span><br><span class="line">                series : [</span><br><span class="line">                    &#123;</span><br><span class="line">                        name:&apos;库存量&apos;,</span><br><span class="line">                        type:&apos;bar&apos;,</span><br><span class="line">                        data:[]</span><br><span class="line">                    &#125;,</span><br><span class="line">                    &#123;</span><br><span class="line">                        name:&apos;销售量&apos;,</span><br><span class="line">                        type:&apos;line&apos;,</span><br><span class="line">                        data:[]</span><br><span class="line">                    &#125;</span><br><span class="line">                ]</span><br><span class="line">            &#125;;</span><br><span class="line"></span><br><span class="line">            $.ajax(&#123;</span><br><span class="line">                cache: false,</span><br><span class="line">                type: &quot;POST&quot;,</span><br><span class="line">                url: &quot;/viewdata&quot;, //把表单数据发送到/viewdata</span><br><span class="line">                data: null, // 发送的数据</span><br><span class="line">                dataType : &quot;json&quot;,  //返回数据形式为json</span><br><span class="line">                async: false,</span><br><span class="line">                error: function(request) &#123;</span><br><span class="line">                    alert(&quot;发送请求失败！&quot;);</span><br><span class="line">                &#125;,</span><br><span class="line">                success: function(result) &#123;</span><br><span class="line">                    //console.log(result);</span><br><span class="line">                    for (i = 0, max = result.Goods_name.length; i &lt; max; i++) &#123; //注意：result.Goods_name.length</span><br><span class="line">                        option.xAxis[0].data.push(result.Goods_name[i]);</span><br><span class="line">                        option.series[0].data.push(parseFloat(result.Goods_inventory[i]));</span><br><span class="line">                        option.series[1].data.push(parseFloat(result.Goods_sales_volume[i]));</span><br><span class="line">                    &#125;;</span><br><span class="line">                    // 为echarts对象加载数据</span><br><span class="line">                    myChart.setOption(option);</span><br><span class="line">                &#125;</span><br><span class="line">            &#125;);</span><br><span class="line">            // 为echarts对象加载数据</span><br><span class="line">            //myChart.setOption(option);</span><br><span class="line">        &#125;</span><br><span class="line">    );</span><br><span class="line">    &lt;/script&gt;    </span><br><span class="line">&lt;/body&gt;</span><br><span class="line">&lt;/html&gt;</span><br></pre></td></tr></table></figure><hr><blockquote><h4 id="4、页面展示"><a href="#4、页面展示" class="headerlink" title="4、页面展示"></a>4、页面展示</h4></blockquote><p><img src="https://pic4.zhimg.com/80/v2-817f605afb9e0996f75dcbdaf4c5909b_hd.jpg" alt="1"><br>不同风格显示 ▼<br><img src="https://pic1.zhimg.com/80/v2-f6314f6394bbed63d5018114a6a8dba8_hd.jpg" alt="2"></p><p>至此一个简单的数据可视化页面就制作完成了，是不是很简单☺</p><hr><blockquote><p>博主GitHub page地址：<a href="https://zhan-ying.github.io/" target="_blank" rel="noopener">zhan123.xin</a><br>博主知乎地址：<a href="https://www.zhihu.com/people/xiao-zhan-66-58/activities" target="_blank" rel="noopener">知乎</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h6 id=&quot;缘起：最近在写论文，由于与Python-Flask有关，又想要让数据库中的数据可视化，于是就尝试了echarts-其支持很多不同的数据图表，有兴趣的话可以自行学习。&quot;&gt;&lt;a href=&quot;#缘起：最近在写论文，由于与Python-Flask有关，又想要让数据库中的数
      
    
    </summary>
    
    
      <category term="Python" scheme="http://yoursite.com/tags/Python/"/>
    
  </entry>
  
  <entry>
    <title>Python实现快速排序算法</title>
    <link href="http://yoursite.com/2019/04/21/Python%E5%AE%9E%E7%8E%B0%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/"/>
    <id>http://yoursite.com/2019/04/21/Python实现快速排序算法/</id>
    <published>2019-04-21T12:19:38.000Z</published>
    <updated>2019-05-09T09:56:01.865Z</updated>
    
    <content type="html"><![CDATA[<h3 id="排序是算法的入门知识，应用广泛，且在程序员面试中，经常被提及，其中最常考的两大排序算法为快速排序与归并排序，本篇将使用Python语言来分析了解快速排序算法。"><a href="#排序是算法的入门知识，应用广泛，且在程序员面试中，经常被提及，其中最常考的两大排序算法为快速排序与归并排序，本篇将使用Python语言来分析了解快速排序算法。" class="headerlink" title="排序是算法的入门知识，应用广泛，且在程序员面试中，经常被提及，其中最常考的两大排序算法为快速排序与归并排序，本篇将使用Python语言来分析了解快速排序算法。"></a>排序是算法的入门知识，应用广泛，且在程序员面试中，经常被提及，其中最常考的两大排序算法为快速排序与归并排序，本篇将使用Python语言来分析了解快速排序算法。</h3><h2 id="快速排序"><a href="#快速排序" class="headerlink" title=" 快速排序"></a><center> 快速排序</center></h2><hr><blockquote><h3 id="思想"><a href="#思想" class="headerlink" title="思想"></a><strong>思想</strong></h3></blockquote><p>快速排序是一种非常高效的排序算法，采用 <strong>“分而治之”</strong> 的思想，把大的拆分为小的，小的拆分为更小的。其原理是，对于给定的记录，选择一个基准数，通过一趟排序后，将原序列分为两部分，使得前面的比后面的小，然后再依次对前后进行拆分进行快速排序，递归该过程，直到序列中所有记录均有序。</p><blockquote><h3 id="步骤"><a href="#步骤" class="headerlink" title="步骤"></a><strong>步骤</strong></h3></blockquote><p>设当前待排序序列为R[low:high]，其中low ≤ high，如果待排序的序列规模足够小，则直接进行排序，否则分3步处理。</p><blockquote><p>1、分解</p></blockquote><p>在R[low:high]中选定一个元素R[pivot]，以此为标准将要排序的序列划分为两个序列R[low:pivot-1]与R[pivot+1：high]，并使序列R[low:pivot-1]中所有元素的值小于等于R[pivot]，序列R[pivot+1：high]所有的值大于R[pivot]，此时基准元素以位于正确位置，它无需参加后续排序。</p><blockquote><p>2、递归</p></blockquote><p>对于子序列R[low:pivot-1]与R[pivot+1：high]，分别调用快速排序算法来进行排序。</p><blockquote><p>3、合并</p></blockquote><p>由于对序列R[low:pivot-1]与R[pivot+1：high]的排序是原地进行的，所以R[low:pivot-1]与R[pivot+1：high]都已经排好序后，不需要进行任何计算，就已经排好序。</p><p>注：基准元素，一般来说选取有几种方法</p><ul><li>取第一个元素</li><li>取最后一个元素</li><li>取第中间位置元素</li><li>取第一个、最后一个、中间位置3者的中位数元素</li></ul><hr><blockquote><h3 id="图解"><a href="#图解" class="headerlink" title="图解"></a><strong>图解</strong></h3></blockquote><p>假设当前排序为R[low:high]，其中low ≤ high。</p><p>1：首先取序列第一个元素为基准元素pivot=R[low]。i=low,j=high。<br>2：从后向前扫描，找小于等于pivot的数，如果找到，R[i]与R[j]交换，i++。<br>3：从前往后扫描，找大于pivot的数，如果找到，R[i]与R[j]交换，j–。<br>4:重复2~3，直到i=j,返回该位置mid=i,该位置正好为pivot元素。<br>完成一趟排序后，以mid为界，将序列分为两部分，左序列都比pivot小，有序列都比pivot大，然后再分别对这两个子序列进行快速排序。</p><p>以序列（30，24，5，58，18，36，12，42，39）为例，进行演示</p><blockquote><p>1、初始化，i=low,j=high,pivot=R[low]=30</p></blockquote><table><thead><tr><th>i</th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th>j</th></tr></thead><tbody><tr><td>30</td><td>24</td><td>5</td><td>58</td><td>18</td><td>36</td><td>12</td><td>42</td><td>39</td></tr></tbody></table><blockquote><p>2、从后往前找小于等于pivot的数，找到R[j]=12</p></blockquote><table><thead><tr><th>i</th><th></th><th></th><th></th><th></th><th></th><th>j</th><th></th><th></th></tr></thead><tbody><tr><td>30</td><td>24</td><td>5</td><td>58</td><td>18</td><td>36</td><td>12</td><td>42</td><td>39</td></tr></tbody></table><p>R[i]与R[j]交换，i++</p><table><thead><tr><th></th><th>i</th><th></th><th></th><th></th><th></th><th>j</th><th></th><th></th></tr></thead><tbody><tr><td>12</td><td>24</td><td>5</td><td>58</td><td>18</td><td>36</td><td>30</td><td>42</td><td>39</td></tr></tbody></table><blockquote><p>3、从前往后找大于pivot的数，找到R[i]=58</p></blockquote><table><thead><tr><th></th><th></th><th></th><th>i</th><th></th><th></th><th>j</th><th></th><th></th></tr></thead><tbody><tr><td>12</td><td>24</td><td>5</td><td>58</td><td>18</td><td>36</td><td>30</td><td>42</td><td>39</td></tr></tbody></table><p>R[i]与R[j]交换，j–</p><table><thead><tr><th></th><th></th><th></th><th>i</th><th></th><th>j</th><th></th><th></th><th></th></tr></thead><tbody><tr><td>12</td><td>24</td><td>5</td><td>30</td><td>18</td><td>36</td><td>58</td><td>42</td><td>39</td></tr></tbody></table><blockquote><p>4、从后往前找小于等于pivot的数，找到R[j]=18</p></blockquote><table><thead><tr><th></th><th></th><th></th><th>i</th><th>j</th><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td>12</td><td>24</td><td>5</td><td>30</td><td>18</td><td>36</td><td>58</td><td>42</td><td>39</td></tr></tbody></table><p>R[i]与R[j]交换，i++</p><table><thead><tr><th></th><th></th><th></th><th></th><th>i❤j</th><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td>12</td><td>24</td><td>5</td><td>18</td><td>30</td><td>36</td><td>58</td><td>42</td><td>39</td></tr></tbody></table><blockquote><p>5、从前往后找大于pivot的数，这时i=j,第一轮排序结束，返回i的位置，mid=i</p></blockquote><table><thead><tr><th>low</th><th></th><th></th><th>mid-1</th><th>mid</th><th>mid+1</th><th></th><th></th><th>high</th></tr></thead><tbody><tr><td>12</td><td>24</td><td>5</td><td>18</td><td>30</td><td>36</td><td>58</td><td>42</td><td>39</td></tr></tbody></table><p>此时已mid为界，将原序列一分为二，左子序列为（12，24，5，18）元素都比pivot小，右子序列为（36，58，42，39）元素都比pivot大。然后在分别对两个子序列进行快速排序，最后即可得到排序后的结果。</p><hr><blockquote><h3 id="复杂度分析"><a href="#复杂度分析" class="headerlink" title="复杂度分析"></a><strong>复杂度分析</strong></h3></blockquote><ul><li><strong>最好的时间复杂度为：O(nlogn)</strong><br>分解：划分函数需要扫描每个元素，每次扫描元素不超过n，时间复杂度为O(n)<br>解决子问题：在理想的情况下，每次划分将问题分解为两个规模为n/2的子问题，递归求解两个规模的子问题。所需时间为2T(n/2)<br>合并：因为是原地排序，合并不需要时间复杂度<br>因此总运行时间为</li></ul><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">T(n)=&#123; O(1) , n=1</span><br><span class="line">2T(n/2)+O(n) , n&gt;1 &#125;</span><br></pre></td></tr></table></figure><p>最终求解为最好的时间复杂度为O(nlogn)</p><ul><li><strong>最坏的时间复杂度为: O(n²)</strong><br>分解：划分函数需要扫描每个元素，每次扫描元素不超过n，时间复杂度为O(n)<br>解决子问题：在最坏的情况下，每次划分将问题分解后，基准元素的一侧没有元素，其中一侧为规模为n-1的子问题，递归求解该子问题，所需时间为T(n-1)。<br>合并：因为是原地排序，合并不需要时间复杂度<br>因此总运行时间为</li></ul><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">T(n)=&#123; O(1) , n=1</span><br><span class="line">    T(n-1)+O(n) , n&gt;1 &#125;</span><br></pre></td></tr></table></figure><p>最终求解为最好的时间复杂度为O(n²)</p><ul><li><strong>平均时间复杂度为：O(nlogn)</strong></li><li><strong>平均空间复杂度为：O(logn)</strong></li></ul><hr><blockquote><h3 id="python实现"><a href="#python实现" class="headerlink" title="python实现"></a><strong>python实现</strong></h3></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br></pre></td><td class="code"><pre><span class="line">    def quick_sort(lists,i,j):</span><br><span class="line">    if i &gt;= j:</span><br><span class="line">        return list</span><br><span class="line">    pivot = lists[i]</span><br><span class="line">    low = i</span><br><span class="line">    high = j</span><br><span class="line">    while i &lt; j:</span><br><span class="line">        while i &lt; j and lists[j] &gt;= pivot:</span><br><span class="line">            j -= 1</span><br><span class="line">        lists[i]=lists[j]</span><br><span class="line">        while i &lt; j and lists[i] &lt;=pivot:</span><br><span class="line">            i += 1</span><br><span class="line">        lists[j]=lists[i]</span><br><span class="line">    lists[j] = pivot</span><br><span class="line">    quick_sort(lists,low,i-1)</span><br><span class="line">    quick_sort(lists,i+1,high)</span><br><span class="line">    return lists</span><br><span class="line"></span><br><span class="line">if __name__==&quot;__main__&quot;:</span><br><span class="line">    lists=[30,24,5,58,18,36,12,42,39]</span><br><span class="line">    print(&quot;排序前的序列为：&quot;)</span><br><span class="line">    for i in lists:</span><br><span class="line">        print(i,end =&quot; &quot;)</span><br><span class="line">    print(&quot;\n排序后的序列为：&quot;)</span><br><span class="line">    for i in quick_sort(lists,0,len(lists)-1):</span><br><span class="line">        print(i,end=&quot; &quot;)</span><br><span class="line"></span><br><span class="line">&gt;&gt;&gt;</span><br><span class="line">排序前的序列为：</span><br><span class="line">30 24 5 58 18 36 12 42 39</span><br><span class="line">排序后的序列为：</span><br><span class="line">5 12 18 24 30 36 39 42 58</span><br></pre></td></tr></table></figure><hr><blockquote><p>博主GitHub page地址：<a href="https://zhan-ying.github.io/" target="_blank" rel="noopener">zhan123.xin</a><br>博主知乎地址：<a href="https://www.zhihu.com/people/xiao-zhan-66-58/activities" target="_blank" rel="noopener">知乎</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h3 id=&quot;排序是算法的入门知识，应用广泛，且在程序员面试中，经常被提及，其中最常考的两大排序算法为快速排序与归并排序，本篇将使用Python语言来分析了解快速排序算法。&quot;&gt;&lt;a href=&quot;#排序是算法的入门知识，应用广泛，且在程序员面试中，经常被提及，其中最常考的两大排序
      
    
    </summary>
    
    
      <category term="算法" scheme="http://yoursite.com/tags/%E7%AE%97%E6%B3%95/"/>
    
  </entry>
  
  <entry>
    <title>10个Python小技巧</title>
    <link href="http://yoursite.com/2019/04/13/10%E4%B8%AAPython%E5%B0%8F%E6%8A%80%E5%B7%A7/"/>
    <id>http://yoursite.com/2019/04/13/10个Python小技巧/</id>
    <published>2019-04-13T13:41:22.000Z</published>
    <updated>2019-05-09T09:54:31.877Z</updated>
    
    <content type="html"><![CDATA[<h6 id="缘起：几天没更新了，总结一些Python小技巧-希望在Python路上的你能越走越远"><a href="#缘起：几天没更新了，总结一些Python小技巧-希望在Python路上的你能越走越远" class="headerlink" title="缘起：几天没更新了，总结一些Python小技巧,希望在Python路上的你能越走越远"></a>缘起：几天没更新了，总结一些Python小技巧,希望在Python路上的你能越走越远</h6><hr><blockquote><h5 id="1、条件判断"><a href="#1、条件判断" class="headerlink" title="1、条件判断"></a>1、条件判断</h5></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">flag=True</span><br><span class="line">if flag:</span><br><span class="line">    x=1</span><br><span class="line">else:</span><br><span class="line">    x=2</span><br><span class="line">print(x)</span><br></pre></td></tr></table></figure><p>简化形式：</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">flag=True</span><br><span class="line">x=1 if flag else 2</span><br><span class="line">print(x)</span><br></pre></td></tr></table></figure><blockquote><h5 id="2、累加求和"><a href="#2、累加求和" class="headerlink" title="2、累加求和"></a>2、累加求和</h5></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">sum=0</span><br><span class="line">for i in range(0,101):</span><br><span class="line">    sum +=i</span><br><span class="line">print(sum)</span><br></pre></td></tr></table></figure><p>利用求和函数sum():<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">print(sum(range(0,101)))</span><br></pre></td></tr></table></figure></p><blockquote><h5 id="3、文件关闭"><a href="#3、文件关闭" class="headerlink" title="3、文件关闭"></a>3、文件关闭</h5></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">f = open(&apos;file.txt&apos;,&apos;r&apos;)</span><br><span class="line">f_control = f.read()</span><br><span class="line">f.close()</span><br><span class="line">words = f_control.split(&apos; &apos;)</span><br><span class="line">word_count=len(words)</span><br><span class="line">print (word_count)</span><br></pre></td></tr></table></figure><p>配合with使用更简便：</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">with open(&apos;file.txt&apos;,&apos;r&apos;) as f:</span><br><span class="line">    f_control=f.read()</span><br><span class="line">words = f_control.split(&apos; &apos;)</span><br><span class="line">word_count=len(words)</span><br><span class="line">print (word_count)</span><br></pre></td></tr></table></figure><blockquote><h5 id="4、输出下标与键"><a href="#4、输出下标与键" class="headerlink" title="4、输出下标与键"></a>4、输出下标与键</h5></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">seq = [&apos;Zero&apos;,&apos;One&apos;,&apos;Two&apos;,&apos;Three&apos;]</span><br><span class="line">i=0</span><br><span class="line">for element in seq:</span><br><span class="line">    print (i,seq[i])</span><br><span class="line">    i+=1</span><br></pre></td></tr></table></figure><p>使用enumerate函数来遍历:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">seq = [&apos;Zero&apos;,&apos;One&apos;,&apos;Two&apos;,&apos;Three&apos;]</span><br><span class="line">for i, element in enumerate(seq):</span><br><span class="line">    print (i, element)</span><br></pre></td></tr></table></figure><blockquote><h5 id="5、遍历多个序列"><a href="#5、遍历多个序列" class="headerlink" title="5、遍历多个序列"></a>5、遍历多个序列</h5></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">names=[&apos;Corey&apos;,&apos;Chris&apos;,&apos;Dave&apos;,&apos;Apple&apos;]</span><br><span class="line">ages=[20,23,18,24]</span><br><span class="line">for i,name in enumerate(names):</span><br><span class="line">    age=ages[i]</span><br><span class="line">    print(&apos;&#123;&#125; is &#123;&#125; old&apos;.format(name,age))</span><br></pre></td></tr></table></figure><p>用zip函数来简化：</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">names=[&apos;Corey&apos;,&apos;Chris&apos;,&apos;Dave&apos;,&apos;Apple&apos;]</span><br><span class="line">ages=[20,23,18,24]</span><br><span class="line">for name ,age in zip(names,ages):</span><br><span class="line">    print(&apos;&#123;&#125; is &#123;&#125; old&apos;.format(name,age))</span><br></pre></td></tr></table></figure><blockquote><h5 id="6、序列取首尾"><a href="#6、序列取首尾" class="headerlink" title="6、序列取首尾"></a>6、序列取首尾</h5></blockquote><p>传统方式：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">numbers=(0,1,2,3,4,5,6,7,8,9)</span><br><span class="line">head=numbers[0]</span><br><span class="line">tail=numbers[-1]</span><br><span class="line">print (head)</span><br><span class="line">print (tail)</span><br></pre></td></tr></table></figure></p><p>利用下划线_:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">numbers=(0,1,2,3,4,5,6,7,8,9)</span><br><span class="line">head,*_,tail=numbers</span><br><span class="line">print (head)</span><br><span class="line">print (tail)</span><br></pre></td></tr></table></figure></p><blockquote><h5 id="7、输入加密的密码"><a href="#7、输入加密的密码" class="headerlink" title="7、输入加密的密码"></a>7、输入加密的密码</h5></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">username = input(&apos;Username: &apos;)</span><br><span class="line">password = input(&apos;Password:&apos;)</span><br><span class="line">print (&apos;Logging In...&apos;)</span><br><span class="line">&gt;&gt;&gt;</span><br><span class="line">Username: leijun</span><br><span class="line">Password:python</span><br><span class="line">Logging In...</span><br></pre></td></tr></table></figure><p>密码通常隐藏输入：</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">from getpass import getpass</span><br><span class="line">username=input(&apos;Username: &apos;)</span><br><span class="line">password=getpass(&apos;Password:&apos;)</span><br><span class="line">print (&apos;Logging In...&apos;)</span><br><span class="line"></span><br><span class="line">&gt;&gt;</span><br><span class="line">Username: leijun</span><br><span class="line">Password:</span><br><span class="line">Logging In...</span><br><span class="line">注：Python自带IDLE似乎不支持隐藏回显，在cmd有效</span><br></pre></td></tr></table></figure><blockquote><h5 id="8、列表找奇数"><a href="#8、列表找奇数" class="headerlink" title="8、列表找奇数"></a>8、列表找奇数</h5></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">a=[1,2,3,4,5,6,7,8,9,10]</span><br><span class="line">res=[i for i in a if i%2==1]</span><br><span class="line">print(res)</span><br></pre></td></tr></table></figure><blockquote><h5 id="9、列表合并-在已存在的列表中添加新的列表内容"><a href="#9、列表合并-在已存在的列表中添加新的列表内容" class="headerlink" title="9、列表合并,在已存在的列表中添加新的列表内容"></a>9、列表合并,在已存在的列表中添加新的列表内容</h5></blockquote><p>传统做法：</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">list1=[1,3,5,7,9]</span><br><span class="line">list2=[2,4,6,8,10]</span><br><span class="line">list1=list1+list2</span><br><span class="line">print(list1)</span><br></pre></td></tr></table></figure><p>使用extend函数：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">list1=[1,3,5,7,9]</span><br><span class="line">list2=[2,4,6,8,10]</span><br><span class="line">list1.extend(list2)</span><br><span class="line">list1.sort(reverse=False)</span><br><span class="line">print(list1)</span><br></pre></td></tr></table></figure></p><blockquote><h5 id="10、有趣的python"><a href="#10、有趣的python" class="headerlink" title="10、有趣的python"></a>10、有趣的python</h5></blockquote><p>画爱心</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">print(&apos;\n&apos;.join([&apos;&apos;.join([(&apos;ILoveYou&apos;[(x-y)%8]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3&lt;=0 else&apos; &apos;)for x in range(-30,30)])for y in range(15,-15,-1)]))</span><br></pre></td></tr></table></figure><p>离人工智能最近的一次<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">while True:</span><br><span class="line">    s = input(&quot;me:&quot;).strip(&apos;?？&apos;).replace(&quot;吗&quot;,&quot;&quot;).replace(&quot;你&quot;,&quot;&quot;).replace(&quot;我&quot;,&quot;&quot;)</span><br><span class="line">    print(&quot;AI:&quot;+s)</span><br><span class="line">&gt;&gt;&gt;</span><br><span class="line">me:你好</span><br><span class="line">AI:好</span><br><span class="line">me:你爱我吗？</span><br><span class="line">AI:爱</span><br><span class="line">me:有趣</span><br><span class="line">AI:有趣</span><br></pre></td></tr></table></figure></p><hr><blockquote><p>博主GitHub page地址：<a href="https://zhan-ying.github.io/" target="_blank" rel="noopener">zhan123.xin</a><br>博主知乎地址：<a href="https://www.zhihu.com/people/xiao-zhan-66-58/activities" target="_blank" rel="noopener">知乎</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h6 id=&quot;缘起：几天没更新了，总结一些Python小技巧-希望在Python路上的你能越走越远&quot;&gt;&lt;a href=&quot;#缘起：几天没更新了，总结一些Python小技巧-希望在Python路上的你能越走越远&quot; class=&quot;headerlink&quot; title=&quot;缘起：几天没更新
      
    
    </summary>
    
    
      <category term="Python" scheme="http://yoursite.com/tags/Python/"/>
    
  </entry>
  
  <entry>
    <title>Git简明教程</title>
    <link href="http://yoursite.com/2019/04/06/Git%E7%AE%80%E6%98%8E%E6%95%99%E7%A8%8B/"/>
    <id>http://yoursite.com/2019/04/06/Git简明教程/</id>
    <published>2019-04-06T08:40:41.000Z</published>
    <updated>2019-05-09T09:54:52.896Z</updated>
    
    <content type="html"><![CDATA[<hr><h6 id="缘起：由于要写博客，博客文章要添加，修改等，于是Git学习就必不可少。同时Git作为版本控制系统，在项目开发中特别有用，值得一学"><a href="#缘起：由于要写博客，博客文章要添加，修改等，于是Git学习就必不可少。同时Git作为版本控制系统，在项目开发中特别有用，值得一学" class="headerlink" title="缘起：由于要写博客，博客文章要添加，修改等，于是Git学习就必不可少。同时Git作为版本控制系统，在项目开发中特别有用，值得一学"></a>缘起：由于要写博客，博客文章要添加，修改等，于是Git学习就必不可少。同时Git作为版本控制系统，在项目开发中特别有用，值得一学</h6><hr><h2 id="Git是什么"><a href="#Git是什么" class="headerlink" title="Git是什么"></a><strong>Git是什么</strong></h2><p><strong>Git</strong> 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。 Git 最初是由Linus Torvalds设计开发的，用于管理Linux内核开发。Git 是根据GNU通用公共许可证版本2的条款分发的自由/免费软件，安装参见：<a href="http://git-scm.com/" target="_blank" rel="noopener">http://git-scm.com/</a></p><p><strong>GitHub</strong>是一个基于Git的远程文件托管平台（同GitCafe、BitBucket和GitLab等）。</p><p>Git本身完全可以做到版本控制，但其所有内容以及版本记录只能保存在本机，如果想要将文件内容以及版本记录同时保存在远程，则需要结合GitHub来使用。使用场景：</p><p>无GitHub：在本地 .git 文件夹内维护历时文件<br>有GitHub：在本地 .git 文件夹内维护历时文件，同时也将历时文件托管在远程仓库</p><hr><h2 id="安装好Git的第一件事"><a href="#安装好Git的第一件事" class="headerlink" title="安装好Git的第一件事"></a>安装好Git的第一件事</h2><p>初次使用Git前，在命令行输入第一条Git命令</p><pre><code>$ git config --global user.name &quot;你的名字&quot;$ git config --global user.email &quot;你的Email&quot;</code></pre><p>因为Git是分布式版本控制系统，所以，每个机器都必须自报家门：你的名字和Email地址。</p><p>注意git config命令的–global参数，用了这个参数，表示你这台机器上所有的Git仓库都会使用这个配置，当然也可以对某个仓库指定不同的用户名和Email地址。</p><hr><h2 id="创建属于自己的Git仓库"><a href="#创建属于自己的Git仓库" class="headerlink" title="创建属于自己的Git仓库"></a>创建属于自己的Git仓库</h2><p>你需要在某个你喜欢的地方创建一个目录，在此目录下运行Git命令</p><pre><code>git init</code></pre><p>这样你就已经初始化了一个新的Git仓库，初始化后，会在当前目录自动创建 .git 文件夹，该文件是Git中最重要的文件夹，Git相关文件以及版本都将保存在该文件夹中，如果你没有看到它，没有关系，因为它怕你不小心伤害它，开启了隐藏属性。</p><hr><h2 id="在仓库中放文件时，先看一下其工作流程"><a href="#在仓库中放文件时，先看一下其工作流程" class="headerlink" title="在仓库中放文件时，先看一下其工作流程"></a>在仓库中放文件时，先看一下其工作流程</h2><ul><li><p>Git的工作流程一般是这样的</p><ol><li>在工作目录中添加，修改文件</li><li>将需要进行版本管理的文件放入暂存区域</li><li>将暂存区域的文件提交到Git仓库</li></ol></li><li><p>Git管理文件的三种状态</p><ol><li>已修改（modified）</li><li>已暂存（staged）</li><li>已提交（committed）</li></ol></li></ul><p>你的本地仓库有 Git 维护的三棵“树”组成，这是 Git 的核心框架。</p><p>这三棵树分别是：工作目录、暂存区和 Git 仓库</p><p><img src="https://s2.ax1x.com/2019/04/06/AWXoa4.jpg" alt="sankeshu"></p><p>工作目录（Working Directory）即存放项目代码的地方。</p><p>暂存区（Stage）用于临时存放你的改动，事实上它只是一个文件，保存即将提交的文件列表信息。</p><p>Git 仓库（Repository）就是安全存放数据的位置，这里边有你提交的所有版本的数据。其中，HEAD 指向最近一次放入仓库的版本</p><hr><h2 id="基本操作"><a href="#基本操作" class="headerlink" title="基本操作"></a>基本操作</h2><blockquote><p>项目添加到暂存区域</p></blockquote><pre><code>git add 文件名</code></pre><blockquote><p>项目提交到本地Git仓库</p></blockquote><pre><code>git commit -m &apos;本次提交描述信息&apos;</code></pre><blockquote><p>查看Git当前状态，如：哪些文件被修改过、那些文件还未提交到版本库等</p></blockquote><pre><code>git status</code></pre><blockquote><p>查看提交记录，即：历史版本记录</p></blockquote><pre><code>git log</code></pre><hr><h2 id="Git版本回滚（Git的后悔药）"><a href="#Git版本回滚（Git的后悔药）" class="headerlink" title="Git版本回滚（Git的后悔药）"></a>Git版本回滚（Git的后悔药）</h2><p>git reset 命令就是你的后悔药。它可以将当前的工作分支的HEAD定位到以前提交的任何版本中</p><blockquote><p>git rest –mixed HEAD~</p></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">- 移动HEAD的指向，将其指向上一个快照</span><br><span class="line">- 将HEAD移动后指向的快照回滚到暂存区</span><br></pre></td></tr></table></figure><blockquote><p>git rest –soft HEAD~</p></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">- 移动HEAD的指向，将其指向上一个快照</span><br></pre></td></tr></table></figure><blockquote><p>git rest –hard HEAD~</p></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">- 移动HEAD的指向，将其指向上一个快照</span><br><span class="line">- 将HEAD移动后指向的快照回滚到暂存区</span><br><span class="line">- 将暂存区的文件还原到工作目录</span><br></pre></td></tr></table></figure><blockquote><p>reset命令回滚快照三部曲<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">- 移动HEAD的指向（--soft）</span><br><span class="line">- 将快照回滚到暂存区(--mixed,默认)</span><br><span class="line">- 将暂存区还原到工作目录（--hard）</span><br></pre></td></tr></table></figure></p></blockquote><blockquote><p>修改最后一次提交</p></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">在实际开发中，你可能会遇到以下两种情景</span><br><span class="line">- 情景一：版本刚commit到仓库，突然想起漏掉两个文件没有add</span><br><span class="line"></span><br><span class="line">- 情景二：版本刚commit到仓库，突然想起版本说明写的不够全面</span><br><span class="line"></span><br><span class="line">此时可以执行带 --amend 选项的commit 提交命令</span><br><span class="line">Git就会更正最近的一次提交</span><br></pre></td></tr></table></figure><hr><h2 id="Git分支管理"><a href="#Git分支管理" class="headerlink" title="Git分支管理"></a>Git分支管理</h2><p>几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来，然后在不影响主线的同时继续工作。</p><p><img src="https://s2.ax1x.com/2019/04/06/AWvM7D.jpg" alt="分支"></p><blockquote><p>创建新分支</p></blockquote><pre><code>git branch 分支名</code></pre><blockquote><p>切换分支</p></blockquote><pre><code>git checkout 分支名</code></pre><blockquote><p>合并分支到主分支</p></blockquote><pre><code>git merge 分支名</code></pre><blockquote><p>删除分支</p></blockquote><pre><code>git branch -d 分支名</code></pre><hr><h2 id="Git-标签管理"><a href="#Git-标签管理" class="headerlink" title="Git 标签管理"></a>Git 标签管理</h2><p>发布一个版本时，我们通常先在版本库中打一个标签（tag），这样，就唯一确定了打标签时刻的版本。将来无论什么时候，取某个标签的版本，就是把那个打标签的时刻的历史版本取出来。所以，标签也是版本库的一个快照。</p><blockquote><p>创建标签</p></blockquote><pre><code>git tag 标签名如（1.0.0） 1b2d3c42ff注：1b2d3c42ff 是你想要标记的提交 ID 的前 10 位字符。使用如下命令获取提交 ID：git log --decorate --oneline</code></pre><blockquote><p>指定标签信息</p></blockquote><pre><code>git tag -a 标签名 -m &quot;第一个版本&quot;</code></pre><hr><h2 id="Git服务器搭建"><a href="#Git服务器搭建" class="headerlink" title="Git服务器搭建"></a>Git服务器搭建</h2><p>GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说，既不想公开源代码，又舍不得给GitHub交保护费，那就只能自己搭建一台Git服务器作为私有仓库使用。<br>搭建Git服务器需要准备一台运行Linux的机器，强烈推荐用Ubuntu或Debian，这样，通过几条简单的apt命令就可以完成安装。</p><p>假设你已经有sudo权限的用户账号</p><blockquote><p>第一步，安装git</p></blockquote><pre><code>$ sudo apt-get install git</code></pre><blockquote><p>第二步，创建一个git用户，用来运行git服务</p></blockquote><pre><code>$ sudo adduser git</code></pre><blockquote><p>第三步，创建证书登录</p></blockquote><p>收集所有需要登录的用户的公钥，就是他们自己的id_rsa.pub文件，把所有公钥导入到/home/git/.ssh/authorized_keys文件里，一行一个。</p><blockquote><p>第四步，初始化Git仓库</p></blockquote><p>先选定一个目录作为Git仓库，假定是/srv/sample.git，在/srv目录下输入命令：</p><pre><code>$ sudo git init --bare sample.git</code></pre><p>Git就会创建一个裸仓库，裸仓库没有工作区，因为服务器上的Git仓库纯粹是为了共享，所以不让用户直接登录到服务器上去改工作区，并且服务器上的Git仓库通常都以.git结尾。然后，把owner改为git：</p><pre><code>$ sudo chown -R git:git sample.git</code></pre><blockquote><p>第五步，禁用shell登录</p></blockquote><p>出于安全考虑，第二步创建的git用户不允许登录shell，这可以通过编辑/etc/passwd文件完成。找到类似下面的一行：</p><pre><code>git:x:1001:1001:,,,:/home/git:/bin/bash</code></pre><p>改为：</p><pre><code>git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell</code></pre><p>这样，git用户可以正常通过ssh使用git，但无法登录shell，因为我们为git用户指定的git-shell每次一登录就自动退出。</p><blockquote><p>第六步，克隆远程仓库</p></blockquote><p>现在，可以通过git clone命令克隆远程仓库了，在各自的电脑上运行：</p><pre><code>$ git clone git@server:/srv/sample.gitCloning into &apos;sample&apos;...warning: You appear to have cloned an empty repository.</code></pre><hr><blockquote><p>博主GitHub page地址：<a href="https://zhan-ying.github.io/" target="_blank" rel="noopener">zhan123.xin</a><br>博主知乎地址：<a href="https://www.zhihu.com/people/xiao-zhan-66-58/activities" target="_blank" rel="noopener">知乎</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      
      
        &lt;hr&gt;
&lt;h6 id=&quot;缘起：由于要写博客，博客文章要添加，修改等，于是Git学习就必不可少。同时Git作为版本控制系统，在项目开发中特别有用，值得一学&quot;&gt;&lt;a href=&quot;#缘起：由于要写博客，博客文章要添加，修改等，于是Git学习就必不可少。同时Git作为版本控制系统，在项
      
    
    </summary>
    
    
      <category term="Git" scheme="http://yoursite.com/tags/Git/"/>
    
  </entry>
  
  <entry>
    <title>Python二级总结</title>
    <link href="http://yoursite.com/2019/04/01/Python%E4%BA%8C%E7%BA%A7%E6%80%BB%E7%BB%93/"/>
    <id>http://yoursite.com/2019/04/01/Python二级总结/</id>
    <published>2019-04-01T09:44:08.000Z</published>
    <updated>2019-05-09T09:55:31.136Z</updated>
    
    <content type="html"><![CDATA[<hr><blockquote><p>缘起:Python二级与2018年9月首次开考，与2016-至今大火，加入pythoner行列的人越来越多，学生学Python，二级是一个很好检验标准。博主作为一名大学生自学Python两年，听说计算机等级考试加入了Python语言，于是就立即报了名，虽然说对于学了这么久来说现在考意义并不大，但就是好奇</p></blockquote><hr><h6 id="这篇文章写于考试结束后，旨在让新手了解Python二级考试试卷结构，以及一些经典的考试题目（详细请查看www-Python123-io平台，Python二级的专属网站）"><a href="#这篇文章写于考试结束后，旨在让新手了解Python二级考试试卷结构，以及一些经典的考试题目（详细请查看www-Python123-io平台，Python二级的专属网站）" class="headerlink" title="这篇文章写于考试结束后，旨在让新手了解Python二级考试试卷结构，以及一些经典的考试题目（详细请查看www.Python123.io平台，Python二级的专属网站）"></a>这篇文章写于考试结束后，旨在让新手了解Python二级考试试卷结构，以及一些经典的考试题目（详细请查看<a href="http://www.python123.io" target="_blank" rel="noopener">www.Python123.io</a>平台，Python二级的专属网站）</h6><hr><h3 id="试卷结构"><a href="#试卷结构" class="headerlink" title="试卷结构"></a>试卷结构</h3><p>选择题40道(40分，其中10分为公共基础知识)，基础操作题3道(15分，一道5分)，简单应用题2道(1道10分，一道15分)，综合应用题1道(20分)</p><h3 id="基本要求"><a href="#基本要求" class="headerlink" title="基本要求"></a>基本要求</h3><ol><li>掌握 Python 语言的基本语法规则。</li><li>掌握不少于 2 个基本的 Python 标准库。</li><li>掌握不少于 2 个 Python 第三方库，掌握获取并安装第三方库的方法。</li><li>能够阅读和分析 Python 程序。</li><li>熟练使用 IDLE 开发环境，能够将脚本程序转变为可执行程序。</li><li>了解 Python 计算生态在以下方面(不限于)的主要第三方库名称：网络爬虫、数据分析、数据可视化、机器学习、Web 开发等。</li></ol><h3 id="考试内容"><a href="#考试内容" class="headerlink" title="考试内容"></a>考试内容</h3><blockquote><p>一、 Python 语言基本语法元素</p></blockquote><ol><li>程序的基本语法元素：程序的格式框架、缩进、注释、变量、命名、保留字、数据类型、赋值语句、引用。</li><li>基本输入输出函数：input()、eval()、print()</li><li>源程序的书写风格。</li><li>Python 语言的特点。</li></ol><blockquote><p>二、基本数据类型</p></blockquote><ol><li>数字类型：整数类型、浮点数类型和复数类型。</li><li>数字类型的运算：数值运算操作符、数值运算函数。</li><li>字符串类型及格式化：索引、切片、基本的 format() 格式化方法。</li><li>字符串类型的操作：字符串操作符、处理函数和处理方法。</li><li>类型判断和类型间转换。</li></ol><blockquote><p>三、 程序的控制结构</p></blockquote><ol><li>程序的三种控制结构。</li><li>程序的分支结构：单分支结构、二分支结构、多分支结构。</li><li>程序的循环结构：遍历循环、无限循环、break 和 continue 循环控制。</li><li>程序的异常处理：try-except。</li></ol><blockquote><p>四、 函数和代码复用</p></blockquote><ol><li>函数的定义和使用。</li><li>函数的参数传递：可选参数传递、参数名称传递、函数的返回值。</li><li>变量的作用域：局部变量和全局变量</li></ol><blockquote><p>五、 组合数据类型</p></blockquote><ol><li>组合数据类型的基本概念。</li><li>列表类型：定义、索引、切片。</li><li>列表类型的操作：列表的操作函数、列表的操作方法。</li><li>字典类型：定义、索引。</li><li>字典类型的操作：字典的操作函数、字典的操作方法。</li></ol><blockquote><p>六、 文件和数据格式化</p></blockquote><ol><li>文件的使用：文件打开、读写和关闭。</li><li>数据组织的维度：一维数据和二维数据。</li><li>一维数据的处理：表示、存储和处理。</li><li>二维数据的处理：表示、存储和处理。</li><li>采用 CSV 格式对一二维数据文件的读写。</li></ol><blockquote><p>七、Python 计算生态</p></blockquote><ol><li>标准库：turtle 库(必选)、random 库(必选) 、time 库(可选)。</li><li>基本的 Python 内置函数。</li><li>第三方库的获取和安装。</li><li>脚本程序转变为可执行程序的第三方库：PyInstaller 库(必选)。</li><li>第三方库：jieba 库(必选)、wordcloud 库(可选)。</li><li>更广泛的 Python 计算生态，只要求了解第三方库的名称，不限于以下领域：网络爬虫、数<br>据分析、文本处理、数据可视化、用户图形界面、机器学习、Web 开发、游戏开发等。</li></ol><blockquote><p>考试环境<br>Windows 7 操作系统，建议 Python 3.4.2 至 Python 3.5.3 版本，IDLE 开发环境。</p></blockquote><hr><h3 id="分享一套试题"><a href="#分享一套试题" class="headerlink" title="分享一套试题"></a>分享一套试题</h3><pre><code>做做看，试试你能对几道</code></pre><blockquote><p>选择题</p></blockquote><font color="blue">1. 关于数据的存储结构，以下选项描述正确的是</font><p>A数据所占的存储空间量<br>B数据在计算机中的顺序存储方式<br>C数据的逻辑结构在计算机中的表示<br>D存储在外存中的数据</p><p>正确答案： C</p><font color="blue">2. 关于线性链表的描述，以下选项中正确的是</font><p>A存储空间不一定连续，且前件元素一定存储在后件元素的前面<br>B存储空间必须连续，且前件元素一定存储在后件元素的前面<br>C存储空间必须连续，且各元素的存储顺序是任意的<br>D存储空间不一定连续，且各元素的存储顺序是任意的</p><p>正确答案： D</p><font color="blue">3. 在深度为 7 的满二叉树中，叶子结点的总个数是</font><p>A 31<br>B 64<br>C 63<br>D 32</p><p>正确答案： B</p><font color="blue">4. 关于结构化程序设计所要求的基本结构，以下选项中描述错误的是</font><p>A 重复（循环）结构<br>B 选择（分支）结构<br>C  goto跳转<br>D 顺序结构</p><p>正确答案： C</p><font color="blue">5. 关于面向对象的继承，以下选项中描述正确的是</font><p>A 继承是指一组对象所具有的相似性质<br>B 继承是指类之间共享属性和操作的机制<br>C 继承是指各对象之间的共同性质<br>D 继承是指一个对象具有另一个对象的性质</p><p>正确答案： B</p><font color="blue">6. 关于软件危机，以下选项中描述错误的是</font><p>A 软件成本不断提高<br>B 软件质量难以控制<br>C 软件过程不规范<br>D 软件开发生产率低</p><p>正确答案： C<br>软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求，从而导致软件开发与维护过程中出现一系列严重问题的现象</p><font color="blue">7. 关于软件测试，以下选项中描述正确的是</font><p>A 软件测试的主要目的是确定程序中错误的位置<br>B 为了提高软件测试的效率，最好由程序编制者自己来完成软件的测试工作<br>C 软件测试是证明软件没有错误<br>D 软件测试的主要目的是发现程序中的错误</p><p>正确答案： D</p><font color="blue">8. 以下选项中用树形结构表示实体之间联系的模型是</font><p>A 网状模型<br>B 层次模型<br>C 静态模型<br>D 关系模型</p><p>正确答案： B</p><font color="blue">9. 设有表示学生选课的三张表，学生S（学号，姓名，性别，年龄，身份证号），课程（课号，课程名），选课SC（学号，课号，成绩），表SC的关键字（键或码）是</font><p>A 学号，成绩<br>B 学号，课号<br>C 学号，姓名，成绩<br>D 课号，成绩</p><p>正确答案： B</p><font color="blue">10.设有如下关系表：</font><br>以下选项中正确地描述了关系表 R、S、T 之间关系的是<br><br>A T＝R∪S<br>B T＝R×S<br>C T＝R–S<br>D T＝R∩S<br><br>正确答案： C<br><br><font color="blue">11. 关于 Python 程序格式框架的描述，以下选项中错误的是</font><p>A Python 语言的缩进可以采用 Tab 键实现<br>B Python 单层缩进代码属于之前最邻近的一行非缩进代码，多层缩进代码根据缩进关系决定所属范围<br>C 判断、循环、函数等语法形式能够通过缩进包含一批 Python 代码，进而表达对应的语义<br>D Python 语言不采用严格的“缩进”来表明程序的格式框架</p><p>正确答案： D</p><font color="blue">12. 以下选项中不符合 Python 语言变量命名规则的是</font><p>A I<br>B 3_1<br>C _AI<br>D TempStr</p><p>正确答案： B</p><font color="blue">13. 以下关于 Python 字符串的描述中，错误的是</font><p>A 字符串是字符的序列，可以按照单个字符或者字符片段进行索引<br>B 字符串包括两种序号体系：正向递增和反向递减<br>C Python 字符串提供区间访问方式，采用 [N:M] 格式，表示字符串中从 N 到 M 的索引子字符串（包含 N 和 M）<br>D 字符串是用一对双引号””或者单引号’ ‘括起来的零个或者多个字符</p><p>正确答案： C</p><font color="blue">14. 关于 Python 语言的注释，以下选项中描述错误的是</font><p>A Python 语言的单行注释以#开头<br>B Python 语言的单行注释以单引号 ‘ 开头<br>C Python 语言的多行注释以 ‘ ‘ ‘（三个单引号）开头和结尾<br>D Python 语言有两种注释方式：单行注释和多行注释</p><p>正确答案： B</p><font color="blue">15. 关于 import 引用，以下选项中描述错误的是</font><p>A 使用 import turtle 引入turtle 库<br>B 可以使用 from turtleimport setup 引入 turtle 库<br>C 使用 import turtle as t引入 turtle 库，取别名为 t<br>D import 保留字用于导入模块或者模块中的对象</p><p>正确答案： B</p><font color="blue">16. 下面代码的输出结果是</font><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">x = 12.34</span><br><span class="line">print(type(x))</span><br></pre></td></tr></table></figure><br><br>A <code>&lt;class &#39;int&#39;&gt;</code><br>B <code>&lt;class &#39;float&#39;&gt;</code><br>C <code>&lt;class &#39;bool&#39;&gt;</code><br>D <code>&lt;class &#39;complex&#39;&gt;</code><br><br>正确答案： B<br><br><font color="blue">17. 关于 Python 的复数类型，以下选项中描述错误的是</font><p>A 复数的虚数部分通过后缀“J”或者“j”来表示<br>B 对于复数 z，可以用 z.real 获得它的实数部分<br>C 对于复数 z，可以用 z.imag 获得它的实数部分<br>D 复数类型表示数学中的复数</p><p>正确答案： C</p><font color="blue">18. 关于 Python 字符串，以下选项中描述错误的是</font><p>A 可以使用 datatype() 测试字符串的类型<br>B 输出带有引号的字符串，可以使用转义字符\<br>C 字符串是一个字符序列，字符串中的编号叫“索引”<br>D 字符串可以保存在变量中，也可以单独存在</p><p>正确答案： A</p><font color="blue">19. 关于 Python 的分支结构，以下选项中描述错误的是</font><p>A 分支结构使用 if 保留字<br>B Python 中 if-else 语句用来形成二分支结构<br>C Python 中 if-elif-else 语句描述多分支结构<br>D 分支结构可以向已经执行过的语句部分跳转</p><p>正确答案： D</p><font color="blue">20. 关于程序的异常处理，以下选项中描述错误的是</font><p>A 程序异常发生经过妥善处理可以继续执行<br>B 异常语句可以与 else 和 finally 保留字配合使用<br>C 编程语言中的异常和错误是完全相同的概念<br>D Python 通过 try、except 等保留字提供异常处理功能</p><p>正确答案： C</p><font color="blue">21. 关于函数，以下选项中描述错误的是</font><p>A 函数能完成特定的功能，对函数的使用不需要了解函数内部实现原理，只要了解函数的输入输出方式即可。<br>B 使用函数的主要目的是减低编程难度和代码重用<br>C Python 使用 del 保留字定义一个函数<br>D 函数是一段具有特定功能的、可重用的语句组</p><p>正确答案： C</p><font color="blue">22. 关于 Python 组合数据类型，以下选项中描述错误的是</font><p>A 组合数据类型可以分为 3 类：序列类型、集合类型和映射类型<br>B 序列类型是二维元素向量，元素之间存在先后关系，通过序号访问<br>C Python 的 str、tuple 和 list 类型都属于序列类型<br>D Python 组合数据类型能够将多个同类型或不同类型的数据组织起来，通过单一的表示使数据操作更有序、更容易</p><p>正确答案： B</p><font color="blue">23. 关于 Python 序列类型的通用操作符和函数，以下选项中描述错误的是</font><p>A 如果 x 不是 s 的元素，x not ins 返回 True<br>B 如果 s 是一个序列，s =[1,”kate”,True]，s[3] 返回 True<br>C 如果 s 是一个序列，s =[1,”kate”,True]，s[–1] 返回 True<br>D 如果 x 是 s 的元素，x in s 返回 True</p><p>正确答案： B</p><font color="blue">24. 关于 Python 对文件的处理，以下选项中描述错误的是</font><p>A Python 通过解释器内置的 open() 函数打开一个文件<br>B 当文件以文本方式打开时，读写按照字节流方式<br>C 文件使用结束后要用 close() 方法关闭，释放文件的使用授权<br>D Python 能够以文本和二进制两种方式处理文件</p><p>正确答案： B</p><font color="blue">25. 以下选项中不是 Python 对文件的写操作方法的是</font><p>A writelines<br>B write 和 seek<br>C writetext<br>D write</p><p>正确答案： C</p><font color="blue">26. 关于数据组织的维度，以下选项中描述错误的是</font><p>A 一维数据采用线性方式组织，对应于数学中的数组和集合等概念<br>B 二维数据采用表格方式组织，对应于数学中的矩阵<br>C 高维数据有键值对类型的数据构成，采用对象方式组织<br>D 数据组织存在维度，字典类型用于表示一维和二维数据</p><p>正确答案： D</p><font color="blue">27. 以下选项中不是 Python 语言的保留字的是</font><p>A except<br>B do<br>C pass<br>D while</p><p>正确答案： B</p><font color="blue">28. 以下选项中是 Python 中文分词的第三方库的是</font><p>A jieba<br>B itchat<br>C time<br>D turtle</p><p>正确答案： A</p><font color="blue">29. 以下选项中使 Python 脚本程序转变为可执行程序的第三方库的是</font><p>A pygame<br>B PyQt5<br>C PyInstaller<br>D random</p><p>正确答案： C</p><font color="blue">30. 以下选项中不是 Python 数据分析的第三方库的是</font><p>A numpy<br>B scipy<br>C pandas<br>D requests</p><p>正确答案： D</p><font color="blue">31.下面代码的输出结果是</font><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">x = 0o1010</span><br><span class="line">print(x)</span><br></pre></td></tr></table></figure><br><br>A 520<br>B 1024<br>C 32768<br>D 10<br><br>正确答案： A<br><br><font color="blue">32.下面代码的输出结果是</font><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">x=10</span><br><span class="line">y=3</span><br><span class="line">print(divmod(x,y))</span><br></pre></td></tr></table></figure><br><br>A (1, 3)<br>B 3,1<br>C 1,3<br>D (3, 1)<br><br>正确答案： D<br>divmod(x, y, /)<br>Return the tuple(x//y, x%y).  Invariant: div*y + mod ==x.<br><br><font color="blue">33. 下面代码的输出结果是</font><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">for s in&quot;HelloWorld&quot;:</span><br><span class="line">    if s==&quot;W&quot;:</span><br><span class="line">        continue</span><br><span class="line">    print(s,end=&quot;&quot;)</span><br></pre></td></tr></table></figure><br><br>A Hello<br>B World<br>C HelloWorld<br>D Helloorld<br><br>正确答案： D<br><br><font color="blue">34.给出如下代码：</font><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">DictColor =&#123;&quot;seashell&quot;:&quot;海贝色&quot;,&quot;gold&quot;:&quot;金色&quot;,&quot;pink&quot;:&quot;粉红色&quot;,&quot;brown&quot;:&quot;棕色&quot;, &quot;purple&quot;:&quot;紫色&quot;,&quot;tomato&quot;:&quot;西红柿色&quot;&#125;</span><br></pre></td></tr></table></figure><br><br>以下选项中能输出“海贝色”的是<br>A print(DictColor.keys())<br>B print(DictColor[“海贝色”])<br>C print(DictColor.values())<br>D print(DictColor[“seashell”])<br><br>正确答案： D<br><br><font color="blue">35. 下面代码的输出结果是</font><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">s =[&quot;seashell&quot;,&quot;gold&quot;,&quot;pink&quot;,&quot;brown&quot;,&quot;purple&quot;,&quot;tomato&quot;]</span><br><span class="line">print(s[1:4:2])</span><br></pre></td></tr></table></figure><br><br>A [‘gold’, ‘pink’, ‘brown’]<br>B [‘gold’, ‘pink’]<br>C [‘gold’, ‘pink’, ‘brown’, ‘purple’,’tomato’]<br>D [‘gold’, ‘brown’]<br><br>正确答案： D<br><br><font color="blue">36. 下面代码的输出结果是</font><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">d =&#123;&quot;大海&quot;:&quot;蓝色&quot;, &quot;天空&quot;:&quot;灰色&quot;, &quot;大地&quot;:&quot;黑色&quot;&#125;</span><br><span class="line">print(d[&quot;大地&quot;], d.get(&quot;大地&quot;, &quot;黄色&quot;))</span><br></pre></td></tr></table></figure><br><br>A 黑的 灰色<br>B 黑色 黑色<br>C 黑色 蓝色<br>D 黑色 黄色<br><br>正确答案： B<br><br><font color="blue">37. 当用户输入abc时，下面代码的输出结果是</font><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">try:</span><br><span class="line">   n = 0</span><br><span class="line">   n = input(&quot;请输入一个整数: &quot;)</span><br><span class="line">   def pow10(n):</span><br><span class="line">      return n**10</span><br><span class="line">except:</span><br><span class="line">   print(&quot;程序执行错误&quot;)</span><br></pre></td></tr></table></figure><br><br>A 输出：abc<br>B 程序没有任何输出<br>C 输出：0<br>D 输出：程序执行错误<br><br>正确答案： B<br>请仔细看代码，def定义后的函数并没有执行，仅仅是干扰<br><br><font color="blue">38.下面代码的输出结果是</font><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">a = \[[1,2,3],[4,5,6], [7,8,9]]</span><br><span class="line">s = 0 </span><br><span class="line">for c in a:</span><br><span class="line">   for j in range(3):</span><br><span class="line">      s += c[j]</span><br><span class="line">print(s)</span><br></pre></td></tr></table></figure><p>A 0<br>B 45<br>C 以上答案都不对<br>D 24</p><p>正确答案： B</p><p><font color="blue">39.文件 book.txt 在当前程序所在目录内，其内容是一段文本：book，下面代码的输出结果是</font><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">txt =open(&quot;book.txt&quot;, &quot;r&quot;)</span><br><span class="line">print(txt)</span><br><span class="line">txt.close()</span><br></pre></td></tr></table></figure></p><p>A book.txt<br>B txt<br>C 以上答案都不对<br>D book</p><p>正确答案： C<br>打印文本文件对象的时候绝对不是这样的，而是类似于</p><p>&lt;_io.TextIOWrapper name=’book.txt’mode=’r’ encoding=’utf-8’&gt;</p><p><font color="blue">40.如果当前时间是 2018年5月1日10点10分9秒，则下面代码的输出结果是</font><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">import time</span><br><span class="line">print(time.strftime(&quot;%Y=%m-%d@%H&gt;%M&gt;%S&quot;,time.gmtime()))</span><br></pre></td></tr></table></figure></p><p>A 2018=05-01@10&gt;10&gt;09<br>B 2018=5-1 10&gt;10&gt;9<br>C True@True<br>D 2018=5-1@10&gt;10&gt;9</p><p>正确答案： A</p><hr><blockquote><p>基础操作题</p></blockquote><p>1.如下函数返回两个数的平方和，请补充横线处代码</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">def psum(___①_  _):</span><br><span class="line">    ___②___ a**2 + b**2</span><br><span class="line">a=eval(input())</span><br><span class="line">b=eval(input())</span><br><span class="line">print(psum(a,b))​</span><br></pre></td></tr></table></figure><p>答案：</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">def psum(a, b):</span><br><span class="line">    return a**2 + b**2</span><br><span class="line">a=eval(input())</span><br><span class="line">b=eval(input())</span><br><span class="line">print(psum(a,b))​</span><br></pre></td></tr></table></figure><p>2.以中国共产党第十九次全国代表大会报告中一句话作为字符串变量 s，完善 Python 程序，分别用 Python 内置函数及 jieba 库中已有函数计算字符串 s 的中文字符个数及中文词语个数。注意，中文字符包含中文标点符号。（提交的代码应包括题目中给出的部分）</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">import jieba</span><br><span class="line">s = &quot;中国特色社会主义进入新时代，我国社会主要矛盾已经转化为人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾。&quot;</span><br><span class="line">n = ____①____</span><br><span class="line">m = ____②____</span><br><span class="line">print(&quot;中文字符数为&#123;&#125;，中文词语数为&#123;&#125;。&quot;.format(n,m))</span><br></pre></td></tr></table></figure><p>答案<br>1:len(s)<br>2:jieba.lcut(s)</p><p>3.0x4DC0 是一个十六进制数，它对应的 Unicode 编码是中国古老的《易经》六十四卦的第一卦，请输出第 51 卦（震卦）对应的 Unicode 编码的二进制、十进制、八进制和十六进制格式。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">print(&quot;二进制&#123;____①____&#125;、十进制&#123;____②____&#125;、八进制&#123;____③____&#125;、十六进制&#123;____④____&#125;&quot;.format(____⑤____))</span><br></pre></td></tr></table></figure><p>答案<br>print(“二进制{0:b}、十进制{0}、八进制{0:o}、十六进制{0:x}”.format(0x4DC0+50))</p><hr><blockquote><p>简单应用题</p></blockquote><p>4.使用 turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制一个边长为 200 的正方形。请结合格式框架，补充横线处代码。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">import turtle</span><br><span class="line">d = 0</span><br><span class="line">for i in range(____①____):</span><br><span class="line">    turtle.fd(____②____)</span><br><span class="line">    d = ____③____</span><br><span class="line">turtle.seth(d)</span><br></pre></td></tr></table></figure><p>答案：</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">import turtle</span><br><span class="line">d = 0</span><br><span class="line">for i inrange(4):</span><br><span class="line">    turtle.fd(200)</span><br><span class="line">    d = d + 90</span><br><span class="line">turtle.seth(d)</span><br></pre></td></tr></table></figure><p>5.列表 ls 中存储了我国 39 所 985 高校所对应的学校类型，请以这个列表为数据变量，完善 Python 代码，统计输出各类型的数量。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">ls = [&quot;综合&quot;, &quot;理工&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;综合&quot;,\</span><br><span class="line">  &quot;师范&quot;, &quot;理工&quot;, &quot;综合&quot;, &quot;理工&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;综合&quot;,&quot;理工&quot;,\</span><br><span class="line">  &quot;理工&quot;, &quot;理工&quot;, &quot;理工&quot;, &quot;师范&quot;, &quot;综合&quot;, &quot;农林&quot;, &quot;理工&quot;, &quot;综合&quot;, &quot;理工&quot;, &quot;理工&quot;, \</span><br><span class="line">  &quot;理工&quot;, &quot;综合&quot;, &quot;理工&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;理工&quot;, &quot;农林&quot;, &quot;民族&quot;, &quot;军事&quot;]</span><br></pre></td></tr></table></figure><p>答案：</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">ls = [&quot;综合&quot;, &quot;理工&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;综合&quot;, \</span><br><span class="line">    &quot;综合&quot;, &quot;综合&quot;, &quot;师范&quot;, &quot;理工&quot;, &quot;综合&quot;, &quot;理工&quot;, &quot;综合&quot;, &quot;综合&quot;, \</span><br><span class="line">    &quot;综合&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;理工&quot;, &quot;理工&quot;, &quot;理工&quot;, &quot;理工&quot;, &quot;师范&quot;, \</span><br><span class="line">    &quot;综合&quot;, &quot;农林&quot;, &quot;理工&quot;, &quot;综合&quot;, &quot;理工&quot;, &quot;理工&quot;, &quot;理工&quot;, &quot;综合&quot;, \</span><br><span class="line">    &quot;理工&quot;, &quot;综合&quot;, &quot;综合&quot;, &quot;理工&quot;, &quot;农林&quot;, &quot;民族&quot;, &quot;军事&quot;]</span><br><span class="line">d = &#123;&#125;</span><br><span class="line">for word in ls:</span><br><span class="line">    d[word] = d.get(word, 0) + 1</span><br><span class="line">    for k in d:</span><br><span class="line">        print(&quot;&#123;&#125;:&#123;&#125;&quot;.format(k, d[k]))</span><br></pre></td></tr></table></figure><hr><blockquote><p>综合应用题</p></blockquote><p>6、古代航海人为了方便在航海时辨别方位和观测天象，将散布在天上的星星运用想象力将它们连接起来，有一半是在古时候已命名，另一半是近代开始命名的。两千多年前古希腊的天文学家希巴克斯命名十二星座，依次为白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、魔蝎座、水瓶座和双鱼座。给出二维数据存储CSV文件（SunSign.csv），内容如下：</p><pre><code>星座,开始月日,结束月日,Unicode水瓶座,120,218,9810双鱼座,219,320,9811白羊座,321,419,9800金牛座,420,520,9801双子座,521,621,9802巨蟹座,622,722,9803狮子座,723,822,9804处女座,823,922,9805天秤座,923,1023,9806天蝎座,1024,1122,9807射手座,1123,1221,9808魔蝎座,1222,119,9809</code></pre><p>请编写程序，读入CSV文件中数据，循环获得用户输入，直至用户输入 “exit” 退出。根据用户输入的星座名称，输出此星座的出生日期范围及对应字符形式。如果输入的星座名称有误，请输出“输入星座名称有误！”。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬</p><p>答案：</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line">#读入CSV格式数据到列表中</span><br><span class="line">fo = open(&quot;SunSign.csv&quot;,&quot;r&quot;, encoding=&apos;utf-8&apos;)</span><br><span class="line">ls = []</span><br><span class="line">for line in fo:</span><br><span class="line">    line = line.replace(&quot;\n&quot;,&quot;&quot;)</span><br><span class="line">    ls.append(line.split(&quot;,&quot;))</span><br><span class="line">fo.close()</span><br><span class="line"></span><br><span class="line">while True:</span><br><span class="line">    InputStr = input() # 请输入星座名称,例如双子座</span><br><span class="line">    InputStr.strip()</span><br><span class="line">    flag = False</span><br><span class="line">    if InputStr == &apos;exit&apos;:</span><br><span class="line">        break</span><br><span class="line">    for line in ls:</span><br><span class="line">        if InputStr == line[0]:</span><br><span class="line">            print(&quot;&#123;&#125;座的生日位于&#123;&#125;-&#123;&#125;之间。&quot;.format(chr(eval(line[3])),line[1],line[2]))</span><br><span class="line">            flag = True</span><br><span class="line">    if flag == False:</span><br><span class="line">        print(&quot;输入星座名称有误！&quot;)</span><br></pre></td></tr></table></figure><hr><blockquote><p>博主GitHub page地址：<a href="https://zhan-ying.github.io/" target="_blank" rel="noopener">zhan123.xin</a><br>博主知乎地址：<a href="https://www.zhihu.com/people/xiao-zhan-66-58/activities" target="_blank" rel="noopener">知乎</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      
      
        &lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;缘起:Python二级与2018年9月首次开考，与2016-至今大火，加入pythoner行列的人越来越多，学生学Python，二级是一个很好检验标准。博主作为一名大学生自学Python两年，听说计算机等级考试加入了Python语言，于是
      
    
    </summary>
    
    
      <category term="Python" scheme="http://yoursite.com/tags/Python/"/>
    
  </entry>
  
  <entry>
    <title>Makrdown的基础语法格式</title>
    <link href="http://yoursite.com/2019/04/01/markdown/"/>
    <id>http://yoursite.com/2019/04/01/markdown/</id>
    <published>2019-04-01T07:33:25.000Z</published>
    <updated>2019-05-09T09:55:43.608Z</updated>
    
    <content type="html"><![CDATA[<hr><h6 id="缘起：以前是自己写代码做博客系统，写博客都为了记录自己学到的东西，想发布出来还要购买服务器，近期想写一些博文免费发布出来，于是选择了用GitHub-page写博客，由于其特殊性，必须学会使用Markdown，于是就有了这篇博客"><a href="#缘起：以前是自己写代码做博客系统，写博客都为了记录自己学到的东西，想发布出来还要购买服务器，近期想写一些博文免费发布出来，于是选择了用GitHub-page写博客，由于其特殊性，必须学会使用Markdown，于是就有了这篇博客" class="headerlink" title="缘起：以前是自己写代码做博客系统，写博客都为了记录自己学到的东西，想发布出来还要购买服务器，近期想写一些博文免费发布出来，于是选择了用GitHub page写博客，由于其特殊性，必须学会使用Markdown，于是就有了这篇博客"></a>缘起：以前是自己写代码做博客系统，写博客都为了记录自己学到的东西，想发布出来还要购买服务器，近期想写一些博文免费发布出来，于是选择了用GitHub page写博客，由于其特殊性，必须学会使用Markdown，于是就有了这篇博客</h6><p><strong>1.标题的使用</strong></p><blockquote><p>#　想要的标题&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;多少个#号就代表有多少级标题，共6级</p><h1 id="这是一级标题"><a href="#这是一级标题" class="headerlink" title="# 这是一级标题"></a># 这是一级标题</h1><h2 id="这是二级标题"><a href="#这是二级标题" class="headerlink" title="## 这是二级标题"></a>## 这是二级标题</h2><h3 id="这是三级标题"><a href="#这是三级标题" class="headerlink" title="### 这是三级标题"></a>### 这是三级标题</h3><h4 id="这是四级标题"><a href="#这是四级标题" class="headerlink" title="#### 这是四级标题"></a>#### 这是四级标题</h4><p>注意#号后有一个空格</p></blockquote><hr><p><strong>2.间隔线</strong></p><blockquote><p>— &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;三条 - 就可以划出一条间隔线</p></blockquote><hr><p><strong>3.区块引用</strong></p><blockquote><p>在引用的文字前加&gt;即可,可嵌套即不断加&gt;号<br>> 文字<br>注&gt;号与文字之间有一空格</p></blockquote><p>示例：</p><pre><code>&gt; 一级&gt;&gt; 二级&gt;&gt;&gt; 三级</code></pre><p>效果：</p><blockquote><p>一级</p><blockquote><p>二级</p><blockquote><p>三级 </p></blockquote></blockquote></blockquote><hr><p><strong>4.字体格式</strong></p><blockquote><p>加粗 文字两边加两个*号<br>倾斜 文字两边加一个*号<br>加粗加倾斜 文字两边加三个*号<br>删除线 文字两边加两个~~线<br>高亮 文字两边加两个\==号</p></blockquote><p>示例：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">**加粗**</span><br><span class="line">*倾斜*</span><br><span class="line">***加粗加倾斜***</span><br><span class="line">~~删除线~~</span><br></pre></td></tr></table></figure></p><p>效果：</p><blockquote><p><strong>加粗</strong><br><em>倾斜</em><br><strong><em>加粗加倾斜</em></strong><br><del>删除线</del></p></blockquote><hr><p><strong>5.超链接</strong></p><blockquote><p>文本中我们很大几率使用超链接<br>超链接语法格式如下：[超链接名](超链接地址) </p></blockquote><p>示例：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[百度](http://baidu.com)</span><br><span class="line">[GitHub](https://github.com/)</span><br></pre></td></tr></table></figure></p><p>效果：</p><blockquote><p><a href="http://baidu.com" target="_blank" rel="noopener">百度</a><br><a href="https://github.com/" target="_blank" rel="noopener">GitHub</a></p></blockquote><hr><p><strong>6.图片</strong></p><blockquote><p>![alt](图片地址链接路径 ‘’title’’)<br>alt就是显示在图片下面的文字，相当于对图片内容的解释。<br>title是图片的标题，当鼠标移到图片上时显示的内容。title可省略</p></blockquote><p>示例：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">![Markdown](https://timgsa.baidu.com/timg?image&amp;quality=80&amp;size=b9999_10000&amp;sec=1554110345080&amp;di=a0186dd4f1df196f24be348ef38b6853&amp;imgtype=0&amp;src=http%3A%2F%2F2.im.guokr.com%2FYtavWcYpNiA3PDc9nI3VlKABHBwMwev-sVT_rHUQJAjEAQAA_wAAAEpQ.jpg%3FimageView2%2F1%2Fw%2F400%2Fh%2F240 &quot;Markdown&quot;)</span><br></pre></td></tr></table></figure></p><p>效果：</p><p><img src="https://timgsa.baidu.com/timg?image&amp;quality=80&amp;size=b9999_10000&amp;sec=1554110345080&amp;di=a0186dd4f1df196f24be348ef38b6853&amp;imgtype=0&amp;src=http%3A%2F%2F2.im.guokr.com%2FYtavWcYpNiA3PDc9nI3VlKABHBwMwev-sVT_rHUQJAjEAQAA_wAAAEpQ.jpg%3FimageView2%2F1%2Fw%2F400%2Fh%2F240" alt="Markdown" title="Markdown"></p><hr><p><strong>7.列表</strong></p><blockquote><p>无序列表用一个 -<br>有序列表用数字加.，形如 1. 2. 3.</p></blockquote><p>示例：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">- 无序列表1</span><br><span class="line">- 无序列表2</span><br><span class="line">- 无序列表3</span><br><span class="line">1. 有序列表1</span><br><span class="line">2. 有序列表2</span><br><span class="line">3. 有序列表3</span><br><span class="line">注列表可以嵌套使用</span><br></pre></td></tr></table></figure></p><p>效果：</p><blockquote><ul><li>无序列表1</li><li>无序列表2</li><li>无序列表3</li></ul><ol><li>有序列表1</li><li>有序列表2</li><li>有序列表3</li></ol></blockquote><hr><p><strong>8.表格</strong></p><blockquote></blockquote><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">表头|表头|表头</span><br><span class="line">--|--|--</span><br><span class="line">内容|内容|内容</span><br><span class="line">内容|内容|内容</span><br><span class="line">&gt;内容默认居左</span><br><span class="line">&gt;第二行--两边加：表示文字居中</span><br><span class="line">&gt;第二行--右边加：表示文字居右</span><br></pre></td></tr></table></figure><p>示例：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">四大法王|擅长|排行</span><br><span class="line">:--|:--:|--</span><br><span class="line">紫衫龙王|水性|大哥</span><br><span class="line">白眉鹰王|鹰爪功|二哥</span><br><span class="line">金毛狮王|狮吼功|三弟</span><br><span class="line">青翼蝠王|轻功|四弟</span><br></pre></td></tr></table></figure></p><p>效果：</p><table><thead><tr><th style="text-align:left">四大法王</th><th style="text-align:center">擅长</th><th>排行</th></tr></thead><tbody><tr><td style="text-align:left">紫衫龙王</td><td style="text-align:center">水性</td><td>大哥</td></tr><tr><td style="text-align:left">白眉鹰王</td><td style="text-align:center">鹰爪功</td><td>二哥</td></tr><tr><td style="text-align:left">金毛狮王</td><td style="text-align:center">狮吼功</td><td>三弟</td></tr><tr><td style="text-align:left">青翼蝠王</td><td style="text-align:center">轻功</td><td>四弟</td></tr></tbody></table><hr><p><strong>9.代码片段</strong></p><blockquote><p>单行代码片段使用一个反引号`包裹<br>多行代码使用三个反引号<code>`</code>包裹</p></blockquote><p>示例：</p><p>单行 ` print(“Hello world”)`<br>多行  ``` while True:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(input().strip(‘吗?？’)+’!’)<br>&nbsp;&nbsp;&nbsp;&nbsp;```</p><p>效果：</p><p><code>print(&quot;Hello world&quot;)</code></p><pre><code>while True:     print(input().strip(&apos;吗?？&apos;)+&apos;!&apos;)</code></pre><hr><p><strong>10.待办事项</strong></p><blockquote><p>当你想写一个类似Todo的待办可以用<br>- [ ] 不勾选<br>- [x] 勾选<br>注：括号里有x代表勾选，没有为空，中间有空格</p></blockquote><p>效果：</p><ul><li style="list-style: none"><input type="checkbox"> 不勾选</li><li style="list-style: none"><input type="checkbox" checked> 勾选</li></ul><hr><p><strong>其他</strong></p><blockquote><p>Markdown还可以画流程图，等等，其他功能等你去发现，现在就开始使用Markdown写一些文章练习一下吧</p></blockquote><hr><p><strong>推荐工具</strong></p><blockquote><p>除官方的Markdown工具外，博主强烈推荐VScode工具，很强大请自行体会，其对Markdown提供了很好的支持；另外您也可以使用在线的Markdown编辑文章,推荐 marxi.co</p></blockquote><blockquote><p>博主GitHub page地址：<a href="https://zhan-ying.github.io/" target="_blank" rel="noopener">zhan123.xin</a><br>博主知乎地址：<a href="https://www.zhihu.com/people/xiao-zhan-66-58/activities" target="_blank" rel="noopener">知乎</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      
      
        &lt;hr&gt;
&lt;h6 id=&quot;缘起：以前是自己写代码做博客系统，写博客都为了记录自己学到的东西，想发布出来还要购买服务器，近期想写一些博文免费发布出来，于是选择了用GitHub-page写博客，由于其特殊性，必须学会使用Markdown，于是就有了这篇博客&quot;&gt;&lt;a href=&quot;#缘起
      
    
    </summary>
    
    
      <category term="Makrdown" scheme="http://yoursite.com/tags/Makrdown/"/>
    
  </entry>
  
  <entry>
    <title>你好朋友</title>
    <link href="http://yoursite.com/2019/03/27/hello/"/>
    <id>http://yoursite.com/2019/03/27/hello/</id>
    <published>2019-03-27T09:05:09.000Z</published>
    <updated>2019-04-01T08:36:25.608Z</updated>
    
    <content type="html"><![CDATA[<p>有一天你来了！</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;有一天你来了！&lt;/p&gt;

      
    
    </summary>
    
    
      <category term="问候" scheme="http://yoursite.com/tags/%E9%97%AE%E5%80%99/"/>
    
  </entry>
  
</feed>
