<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Python on 111qqz's blog</title><link>https://111qqz.com/en/tags/python/</link><description>Recent content in Python on 111qqz's blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2015-2026 111qqz</copyright><lastBuildDate>Sun, 17 Dec 2023 18:22:24 +0800</lastBuildDate><atom:link href="https://111qqz.com/en/tags/python/index.xml" rel="self" type="application/rss+xml"/><item><title>[施工中] cupy与torch的导入顺序不同对计算结果的影响</title><link>https://111qqz.com/en/post/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/2023-12-17-cupy-torch-import-order-impact/</link><pubDate>Sun, 17 Dec 2023 18:22:24 +0800</pubDate><guid>https://111qqz.com/en/post/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/2023-12-17-cupy-torch-import-order-impact/</guid><description>&lt;h2 class="relative group"&gt;背景
 &lt;div id="背景" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%83%8c%e6%99%af" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;公司内部的基于torch的toolbox发现某个版本之后,结果发生了偏移. 通过一系列排查,发现当导入cupy和torch的顺序不同时，计算结果会有所差异。
也就是说,如下两段代码会导致模型训练等环节的计算得到不同的结果.&lt;/p&gt;</description></item><item><title>爬虫学习笔记</title><link>https://111qqz.com/en/post/%E5%B7%A5%E7%A8%8B/%E5%85%B6%E4%BB%96/2018-10-19-web-crawler-notes/</link><pubDate>Fri, 19 Oct 2018 08:18:53 +0000</pubDate><guid>https://111qqz.com/en/post/%E5%B7%A5%E7%A8%8B/%E5%85%B6%E4%BB%96/2018-10-19-web-crawler-notes/</guid><description>&lt;p&gt;再次迫于生计。。。&lt;/p&gt;
&lt;p&gt;参考了&lt;a href="https://www.v2ex.com/t/370455#reply9" target="_blank" rel="noreferrer"&gt;面向新人的 Python 爬虫学习资料&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;大致的学习路线为:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;一： 简单的定向脚本爬虫（ request &amp;mdash; bs4 &amp;mdash; re ）&lt;/p&gt;</description></item><item><title>使用python计算误差代码</title><link>https://111qqz.com/en/post/%E5%B7%A5%E7%A8%8B/%E5%85%B6%E4%BB%96/2018-08-06-calculate-error-with-python/</link><pubDate>Mon, 06 Aug 2018 11:54:35 +0000</pubDate><guid>https://111qqz.com/en/post/%E5%B7%A5%E7%A8%8B/%E5%85%B6%E4%BB%96/2018-08-06-calculate-error-with-python/</guid><description>&lt;p&gt;import os&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;math&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ave_err&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;max_err&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;max_err_rate&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;cpu_result.txt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;r&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;fp1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;cuda_ppl_result.txt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;r&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;fp2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;l1&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;fp1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;l2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fp2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readline&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;l1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;l1&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;l2&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;l2&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;lst&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;l1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;lst2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;l2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;#print lst&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;lst&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;lst&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;length&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;length&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lst&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;lst2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;lst2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;#print (lst)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;#print (lst2)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;19&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;20&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lst&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;21&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;lst2&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;22&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;ave_err&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ave_err&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;23&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;max_err&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;24&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;max_err_rate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_err_rate&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;25&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;26&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;len=&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;27&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;max_err=&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;max_err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;28&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;max_err_rate=&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;max_err_rate&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;%&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;29&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;ave_err=&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;ave_err&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;需要提供两个文件，并且两个文件的数据格式相同。&lt;/p&gt;</description></item><item><title>pytorch 函数笔记</title><link>https://111qqz.com/en/post/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/2018-02-23-pytorch-function-notes/</link><pubDate>Fri, 23 Feb 2018 02:55:25 +0000</pubDate><guid>https://111qqz.com/en/post/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/2018-02-23-pytorch-function-notes/</guid><description>&lt;p&gt;记录一些常用的&amp;hellip;总去查文档也是有点麻烦&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; * 
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;tensor.view 的作用是reshape 比如 a = torch.range(1, 16) 得到一个tensor  that has 16 elements from 1 to 16. 在a=a.view(4,4)就得到了一个4&lt;em&gt;4的tensor。 需要注意reshape之后元素的个数不能改变(16==4&lt;/em&gt;4)  参数-1的作用是，我懒得算这一维度应该是多少,（由于元素个数不能改变）所以希望自动被计算。**需要注意的是，只有一个维度可以写-1。 **不过view和reshape有些区别：&lt;em&gt;reshape always copies memory. view never copies memory&lt;/em&gt;
 &lt;div id="tensorview-的作用是reshape-比如a--torchrange1-16-得到一个tensor-that-has-16-elements-from-1-to-16-在aaview44就得到了一个44的tensor-需要注意reshape之后元素的个数不能改变1644-参数-1的作用是我懒得算这一维度应该是多少由于元素个数不能改变所以希望自动被计算需要注意的是只有一个维度可以写-1不过view和reshape有些区别reshape-always-copies-memory-view-never-copies-memory" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tensorview-%e7%9a%84%e4%bd%9c%e7%94%a8%e6%98%afreshape-%e6%af%94%e5%a6%82a--torchrange1-16-%e5%be%97%e5%88%b0%e4%b8%80%e4%b8%aatensor-that-has-16-elements-from-1-to-16-%e5%9c%a8aaview44%e5%b0%b1%e5%be%97%e5%88%b0%e4%ba%86%e4%b8%80%e4%b8%aa44%e7%9a%84tensor-%e9%9c%80%e8%a6%81%e6%b3%a8%e6%84%8freshape%e4%b9%8b%e5%90%8e%e5%85%83%e7%b4%a0%e7%9a%84%e4%b8%aa%e6%95%b0%e4%b8%8d%e8%83%bd%e6%94%b9%e5%8f%981644-%e5%8f%82%e6%95%b0-1%e7%9a%84%e4%bd%9c%e7%94%a8%e6%98%af%e6%88%91%e6%87%92%e5%be%97%e7%ae%97%e8%bf%99%e4%b8%80%e7%bb%b4%e5%ba%a6%e5%ba%94%e8%af%a5%e6%98%af%e5%a4%9a%e5%b0%91%e7%94%b1%e4%ba%8e%e5%85%83%e7%b4%a0%e4%b8%aa%e6%95%b0%e4%b8%8d%e8%83%bd%e6%94%b9%e5%8f%98%e6%89%80%e4%bb%a5%e5%b8%8c%e6%9c%9b%e8%87%aa%e5%8a%a8%e8%a2%ab%e8%ae%a1%e7%ae%97%e9%9c%80%e8%a6%81%e6%b3%a8%e6%84%8f%e7%9a%84%e6%98%af%e5%8f%aa%e6%9c%89%e4%b8%80%e4%b8%aa%e7%bb%b4%e5%ba%a6%e5%8f%af%e4%bb%a5%e5%86%99-1%e4%b8%8d%e8%bf%87view%e5%92%8creshape%e6%9c%89%e4%ba%9b%e5%8c%ba%e5%88%abreshape-always-copies-memory-view-never-copies-memory" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt; * 
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;torch.squeeze  将输入张量形状中的&lt;code&gt;1&lt;/code&gt; 去除并返回。 如果输入是形如(A×1×B×1×C×1×D)，那么输出形状就为： (A×B×C×D)当给定&lt;code&gt;dim&lt;/code&gt;时，那么挤压操作只在给定维度上。例如，输入形状为: (A×1×B), &lt;code&gt;squeeze(input, 0)&lt;/code&gt; 将会保持张量不变，只有用 &lt;code&gt;squeeze(input, 1)&lt;/code&gt;，形状会变成 (A×B)。注意： 返回张量与输入张量共享内存，所以改变其中一个的内容会改变另一个。
 &lt;div id="torchsqueeze将输入张量形状中的1去除并返回-如果输入是形如a1b1c1d那么输出形状就为abcd当给定dim时那么挤压操作只在给定维度上例如输入形状为a1bsqueezeinput-0将会保持张量不变只有用squeezeinput-1形状会变成ab注意-返回张量与输入张量共享内存所以改变其中一个的内容会改变另一个" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#torchsqueeze%e5%b0%86%e8%be%93%e5%85%a5%e5%bc%a0%e9%87%8f%e5%bd%a2%e7%8a%b6%e4%b8%ad%e7%9a%841%e5%8e%bb%e9%99%a4%e5%b9%b6%e8%bf%94%e5%9b%9e-%e5%a6%82%e6%9e%9c%e8%be%93%e5%85%a5%e6%98%af%e5%bd%a2%e5%a6%82a1b1c1d%e9%82%a3%e4%b9%88%e8%be%93%e5%87%ba%e5%bd%a2%e7%8a%b6%e5%b0%b1%e4%b8%baabcd%e5%bd%93%e7%bb%99%e5%ae%9adim%e6%97%b6%e9%82%a3%e4%b9%88%e6%8c%a4%e5%8e%8b%e6%93%8d%e4%bd%9c%e5%8f%aa%e5%9c%a8%e7%bb%99%e5%ae%9a%e7%bb%b4%e5%ba%a6%e4%b8%8a%e4%be%8b%e5%a6%82%e8%be%93%e5%85%a5%e5%bd%a2%e7%8a%b6%e4%b8%baa1bsqueezeinput-0%e5%b0%86%e4%bc%9a%e4%bf%9d%e6%8c%81%e5%bc%a0%e9%87%8f%e4%b8%8d%e5%8f%98%e5%8f%aa%e6%9c%89%e7%94%a8squeezeinput-1%e5%bd%a2%e7%8a%b6%e4%bc%9a%e5%8f%98%e6%88%90ab%e6%b3%a8%e6%84%8f-%e8%bf%94%e5%9b%9e%e5%bc%a0%e9%87%8f%e4%b8%8e%e8%be%93%e5%85%a5%e5%bc%a0%e9%87%8f%e5%85%b1%e4%ba%ab%e5%86%85%e5%ad%98%e6%89%80%e4%bb%a5%e6%94%b9%e5%8f%98%e5%85%b6%e4%b8%ad%e4%b8%80%e4%b8%aa%e7%9a%84%e5%86%85%e5%ae%b9%e4%bc%9a%e6%94%b9%e5%8f%98%e5%8f%a6%e4%b8%80%e4%b8%aa" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt; * 
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;torch.unsqueeze  返回一个新的张量，对输入的制定位置插入维度 1 注意： 返回张量与输入张量共享内存，所以改变其中一个的内容会改变另一个。如果&lt;code&gt;dim&lt;/code&gt;为负，则将会被转化dim+input.dim()+1
 &lt;div id="torchunsqueeze返回一个新的张量对输入的制定位置插入维度-1-注意-返回张量与输入张量共享内存所以改变其中一个的内容会改变另一个如果dim为负则将会被转化diminputdim1" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#torchunsqueeze%e8%bf%94%e5%9b%9e%e4%b8%80%e4%b8%aa%e6%96%b0%e7%9a%84%e5%bc%a0%e9%87%8f%e5%af%b9%e8%be%93%e5%85%a5%e7%9a%84%e5%88%b6%e5%ae%9a%e4%bd%8d%e7%bd%ae%e6%8f%92%e5%85%a5%e7%bb%b4%e5%ba%a6-1-%e6%b3%a8%e6%84%8f-%e8%bf%94%e5%9b%9e%e5%bc%a0%e9%87%8f%e4%b8%8e%e8%be%93%e5%85%a5%e5%bc%a0%e9%87%8f%e5%85%b1%e4%ba%ab%e5%86%85%e5%ad%98%e6%89%80%e4%bb%a5%e6%94%b9%e5%8f%98%e5%85%b6%e4%b8%ad%e4%b8%80%e4%b8%aa%e7%9a%84%e5%86%85%e5%ae%b9%e4%bc%9a%e6%94%b9%e5%8f%98%e5%8f%a6%e4%b8%80%e4%b8%aa%e5%a6%82%e6%9e%9cdim%e4%b8%ba%e8%b4%9f%e5%88%99%e5%b0%86%e4%bc%9a%e8%a2%ab%e8%bd%ac%e5%8c%96diminputdim1" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tensor&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;unsqueeze&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FloatTensor&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;x4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;unsqueeze&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="mi"&gt;4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FloatTensor&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 class="relative group"&gt;tensor.expand(&lt;em&gt;size)   扩展tensor.可以保持维度数目不变，每一维度的size增加(比如A&lt;/em&gt;B变到C*D,其中C&amp;gt;=A,D&amp;gt;=B).-1参数表示某一个维度的size不发生改变  . 有可以扩展tensor到更多的维度，新增加的维度会默认放在最前面，并且不能以-1作为参数。
 &lt;div id="tensorexpandsize-扩展tensor可以保持维度数目不变每一维度的size增加比如ab变到cd其中cadb-1参数表示某一个维度的size不发生改变--有可以扩展tensor到更多的维度新增加的维度会默认放在最前面并且不能以-1作为参数" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tensorexpandsize-%e6%89%a9%e5%b1%95tensor%e5%8f%af%e4%bb%a5%e4%bf%9d%e6%8c%81%e7%bb%b4%e5%ba%a6%e6%95%b0%e7%9b%ae%e4%b8%8d%e5%8f%98%e6%af%8f%e4%b8%80%e7%bb%b4%e5%ba%a6%e7%9a%84size%e5%a2%9e%e5%8a%a0%e6%af%94%e5%a6%82ab%e5%8f%98%e5%88%b0cd%e5%85%b6%e4%b8%adcadb-1%e5%8f%82%e6%95%b0%e8%a1%a8%e7%a4%ba%e6%9f%90%e4%b8%80%e4%b8%aa%e7%bb%b4%e5%ba%a6%e7%9a%84size%e4%b8%8d%e5%8f%91%e7%94%9f%e6%94%b9%e5%8f%98--%e6%9c%89%e5%8f%af%e4%bb%a5%e6%89%a9%e5%b1%95tensor%e5%88%b0%e6%9b%b4%e5%a4%9a%e7%9a%84%e7%bb%b4%e5%ba%a6%e6%96%b0%e5%a2%9e%e5%8a%a0%e7%9a%84%e7%bb%b4%e5%ba%a6%e4%bc%9a%e9%bb%98%e8%ae%a4%e6%94%be%e5%9c%a8%e6%9c%80%e5%89%8d%e9%9d%a2%e5%b9%b6%e4%b8%94%e4%b8%8d%e8%83%bd%e4%bb%a5-1%e4%bd%9c%e4%b8%ba%e5%8f%82%e6%95%b0" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt; * 
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;&lt;strong&gt;tensor.contiguous  将一个tensor变成连续的。（一些ops如expand/expand_as会让tensor 不连续）&lt;/strong&gt;
 &lt;div id="tensorcontiguous-将一个tensor变成连续的一些ops如expandexpand_" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tensorcontiguous-%e5%b0%86%e4%b8%80%e4%b8%aatensor%e5%8f%98%e6%88%90%e8%bf%9e%e7%bb%ad%e7%9a%84%e4%b8%80%e4%ba%9bops%e5%a6%82expandexpand_" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;</description></item><item><title>正则匹配中文及常用正则表达式 (转载)</title><link>https://111qqz.com/en/post/%E5%B7%A5%E7%A8%8B/%E5%85%B6%E4%BB%96/2017-12-04-common-regular-expression/</link><pubDate>Mon, 04 Dec 2017 11:34:06 +0000</pubDate><guid>https://111qqz.com/en/post/%E5%B7%A5%E7%A8%8B/%E5%85%B6%E4%BB%96/2017-12-04-common-regular-expression/</guid><description>&lt;p&gt;先放一个同事安利给我的网站:&lt;a href="https://regex101.com/" target="_blank" rel="noreferrer"&gt;regex101&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://unicode-table.com/cn" target="_blank" rel="noreferrer"&gt;查询匹配的中文字符unicode编码&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;正则表达式用于字符串处理、表单验证、日志数据分析等场合，实用高效。现将自己走网上搜索并总结的常用方法收集了一下：&lt;/p&gt;</description></item><item><title>python只获取当前目录下的文件夹及文件名</title><link>https://111qqz.com/en/post/acm-icpc/2017/2017-08-16-python-get-dir-name-in-current-path/</link><pubDate>Wed, 16 Aug 2017 08:21:41 +0000</pubDate><guid>https://111qqz.com/en/post/acm-icpc/2017/2017-08-16-python-get-dir-name-in-current-path/</guid><description>&lt;p&gt;list = os.listdir(rootdir)#列出目录下的所有文件和目录&lt;/p&gt;</description></item><item><title>python numpy 用法 简明手册</title><link>https://111qqz.com/en/post/acm-icpc/2017/2017-07-24-python-numpy-notes/</link><pubDate>Mon, 24 Jul 2017 03:08:35 +0000</pubDate><guid>https://111qqz.com/en/post/acm-icpc/2017/2017-07-24-python-numpy-notes/</guid><description>&lt;p&gt;&lt;a href="https://zhuanlan.zhihu.com/p/20878530?refer=intelligentunit" target="_blank" rel="noreferrer"&gt;原文链接&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;感谢stanford,感谢原作者的翻译，我调整了一下代码格式，可以当做手册来用了，毕竟之前没怎么写过py 23333&lt;/p&gt;</description></item><item><title>libgfortran.so.4 missing under archlinux</title><link>https://111qqz.com/en/post/%E5%B7%A5%E5%85%B7/2017-06-09-libgfortran-so-4-missing-under-archlinux/</link><pubDate>Fri, 09 Jun 2017 20:12:41 +0000</pubDate><guid>https://111qqz.com/en/post/%E5%B7%A5%E5%85%B7/2017-06-09-libgfortran-so-4-missing-under-archlinux/</guid><description>&lt;p&gt;。。。哭了哦。。终于解决了这个bug&lt;/p&gt;
&lt;p&gt;参考资料：&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/ContinuumIO/anaconda-issues/issues/686" target="_blank" rel="noreferrer"&gt;libgfortran broken? &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/conda/conda/issues/2177" target="_blank" rel="noreferrer"&gt;libgfortran=3.0 should not be install with numpy &amp;lt;= 1.9&lt;/a&gt;&lt;/p&gt;</description></item><item><title>conda升级anaconda　ValueError的解决办法</title><link>https://111qqz.com/en/post/acm-icpc/2017/2017-06-08-how-to-fix-conda-upgrade-valueerror/</link><pubDate>Thu, 08 Jun 2017 13:03:51 +0000</pubDate><guid>https://111qqz.com/en/post/acm-icpc/2017/2017-06-08-how-to-fix-conda-upgrade-valueerror/</guid><description>&lt;p&gt;conda update anaconda　后提示&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-asm" data-lang="asm"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nl"&gt;ValueError:&lt;/span&gt; &lt;span class="nf"&gt;unsupported&lt;/span&gt; &lt;span class="no"&gt;format&lt;/span&gt; &lt;span class="no"&gt;character&lt;/span&gt; &lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0x29&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="no"&gt;at&lt;/span&gt; &lt;span class="no"&gt;index&lt;/span&gt; &lt;span class="mi"&gt;49&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;查到了这个：&lt;a href="https://github.com/conda/conda/issues/564" target="_blank" rel="noreferrer"&gt;anaconda update issue&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;I have narrowed this down to the following packages:&lt;/p&gt;
&lt;table &gt;
&lt;tr &gt;
package
build
&lt;/tr&gt;
&lt;tbody &gt;
&lt;tr &gt;
&lt;blockquote&gt;&lt;td &gt;psutil-1.2.1
&lt;/td&gt;
&lt;/blockquote&gt;&lt;blockquote&gt;&lt;td &gt;py27_0 hard-link
&lt;/td&gt;
&lt;/blockquote&gt;&lt;/tr&gt;
&lt;tr &gt;
&lt;blockquote&gt;&lt;td &gt;pycparser-2.10
&lt;/td&gt;
&lt;/blockquote&gt;&lt;blockquote&gt;&lt;td &gt;py27_0 hard-link
&lt;/td&gt;
&lt;/blockquote&gt;&lt;/tr&gt;
&lt;tr &gt;
&lt;blockquote&gt;&lt;td &gt;pykit-0.1.0
&lt;/td&gt;
&lt;/blockquote&gt;&lt;blockquote&gt;&lt;td &gt;np18py27_2 hard-link
&lt;/td&gt;
&lt;/blockquote&gt;&lt;/tr&gt;
&lt;tr &gt;
&lt;blockquote&gt;&lt;td &gt;pyparsing-2.0.1
&lt;/td&gt;
&lt;/blockquote&gt;&lt;blockquote&gt;&lt;td &gt;py27_0 hard-link
&lt;/td&gt;
&lt;/blockquote&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
by calling "conda install anaconda" and then successfully installing everything else one at a time.
These four packages consistently exhibit the described behaviour.
(note: pykit depends on pycparser so may itself be ok - can't tell)
&lt;/blockquote&gt;&lt;p&gt;我先把psutil卸载掉，重新update了一下，成功。&lt;/p&gt;</description></item><item><title>数字图像处理大作业(初步）</title><link>https://111qqz.com/en/post/acm-icpc/2017/2017-06-07-digital-image-processing-course-final-project/</link><pubDate>Wed, 07 Jun 2017 06:53:36 +0000</pubDate><guid>https://111qqz.com/en/post/acm-icpc/2017/2017-06-07-digital-image-processing-course-final-project/</guid><description>&lt;p&gt;&amp;hellip;先随便记录一下好了。。。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; * 神经网络识别数字或者字母？
 * 识别车牌号？
 * not hot dog?
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装python pandas &lt;a href="http://pandas.pydata.org/pandas-docs/stable/install.html" target="_blank" rel="noreferrer"&gt;pandas&lt;/a&gt;&lt;/p&gt;</description></item><item><title>vim下python 的配置</title><link>https://111qqz.com/en/post/acm-icpc/2017/2017-06-07-vimrc-for-python/</link><pubDate>Wed, 07 Jun 2017 06:21:12 +0000</pubDate><guid>https://111qqz.com/en/post/acm-icpc/2017/2017-06-07-vimrc-for-python/</guid><description>&lt;h3 class="relative group"&gt;由于最近要做数字图像处理的大作业，以及之后一段时间，估计写python多一些，所以打算花些时间配置下vim.
 &lt;div id="由于最近要做数字图像处理的大作业以及之后一段时间估计写python多一些所以打算花些时间配置下vim" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%94%b1%e4%ba%8e%e6%9c%80%e8%bf%91%e8%a6%81%e5%81%9a%e6%95%b0%e5%ad%97%e5%9b%be%e5%83%8f%e5%a4%84%e7%90%86%e7%9a%84%e5%a4%a7%e4%bd%9c%e4%b8%9a%e4%bb%a5%e5%8f%8a%e4%b9%8b%e5%90%8e%e4%b8%80%e6%ae%b5%e6%97%b6%e9%97%b4%e4%bc%b0%e8%ae%a1%e5%86%99python%e5%a4%9a%e4%b8%80%e4%ba%9b%e6%89%80%e4%bb%a5%e6%89%93%e7%ae%97%e8%8a%b1%e4%ba%9b%e6%97%b6%e9%97%b4%e9%85%8d%e7%bd%ae%e4%b8%8bvim" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;

&lt;h2 class="relative group"&gt;1. 一键执行
 &lt;div id="1-一键执行" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-%e4%b8%80%e9%94%ae%e6%89%a7%e8%a1%8c" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h4 class="relative group"&gt;其实之前一直有的。。不过没有效果，就没有管。发现问题是，python对应的filetype为&amp;quot;python&amp;quot;，而不是&amp;quot;py&amp;quot;
 &lt;div id="其实之前一直有的不过没有效果就没有管发现问题是python对应的filetype为python而不是py" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%85%b6%e5%ae%9e%e4%b9%8b%e5%89%8d%e4%b8%80%e7%9b%b4%e6%9c%89%e7%9a%84%e4%b8%8d%e8%bf%87%e6%b2%a1%e6%9c%89%e6%95%88%e6%9e%9c%e5%b0%b1%e6%b2%a1%e6%9c%89%e7%ae%a1%e5%8f%91%e7%8e%b0%e9%97%ae%e9%a2%98%e6%98%afpython%e5%af%b9%e5%ba%94%e7%9a%84filetype%e4%b8%bapython%e8%80%8c%e4%b8%8d%e6%98%afpy" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h4&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;func! CompileRunGcc&lt;span class="o"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;	&lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;w&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;	&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nv"&gt;filetype&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;c&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;		&lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;!g++ % -o %&amp;lt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;		&lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;! ./%&amp;lt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;	elseif &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nv"&gt;filetype&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;cpp&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;		&lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;!g++ % -std=gnu++11 -Wall -o %&amp;lt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;		&lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;! ./%&amp;lt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;	elseif &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nv"&gt;filetype&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;java&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;		&lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;!javac %&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;		&lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;!java %&amp;lt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;	elseif &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nv"&gt;filetype&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sh&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;		:!./%
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;	elseif &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nv"&gt;filetype&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;python&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;	&lt;span class="s2"&gt;&amp;#34;	exec &amp;#34;&lt;/span&gt;!python %&lt;span class="s2"&gt;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	&amp;#34;&lt;/span&gt;	&lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;!python %&amp;lt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt;		&lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;!python2.7 %&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;	endif
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;19&lt;/span&gt;&lt;span class="cl"&gt;endfunc&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 class="relative group"&gt;&lt;strong&gt;2.代码补全&lt;/strong&gt;
 &lt;div id="2代码补全" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2%e4%bb%a3%e7%a0%81%e8%a1%a5%e5%85%a8" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h3 class="relative group"&gt;不想折腾了。。既然ycm也支持python,就先用用看好了。。不行再换别的。
 &lt;div id="不想折腾了既然ycm也支持python就先用用看好了不行再换别的" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%8d%e6%83%b3%e6%8a%98%e8%85%be%e4%ba%86%e6%97%a2%e7%84%b6ycm%e4%b9%9f%e6%94%af%e6%8c%81python%e5%b0%b1%e5%85%88%e7%94%a8%e7%94%a8%e7%9c%8b%e5%a5%bd%e4%ba%86%e4%b8%8d%e8%a1%8c%e5%86%8d%e6%8d%a2%e5%88%ab%e7%9a%84" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;

&lt;h3 class="relative group"&gt;放一段ycm　for python的配置文件
 &lt;div id="放一段ycmfor-python的配置文件" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%94%be%e4%b8%80%e6%ae%b5ycmfor-python%e7%9a%84%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-vim" data-lang="vim"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;#34;默认配置文件路径&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;g&lt;/span&gt;:&lt;span class="nx"&gt;ycm_global_ycm_extra_conf&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;~/.ycm_extra_conf.py&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;#34;打开vim时不再询问是否加载ycm_extra_conf.py配置&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;g&lt;/span&gt;:&lt;span class="nx"&gt;ycm_confirm_extra_conf&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nx"&gt;completeopt&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;longest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;menu&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;#34;python解释器路径&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;g&lt;/span&gt;:&lt;span class="nx"&gt;ycm_path_to_python_interpreter&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/usr/bin/python&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;#34;是否开启语义补全&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;g&lt;/span&gt;:&lt;span class="nx"&gt;ycm_seed_identifiers_with_syntax&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;#34;是否在注释中也开启补全&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;g&lt;/span&gt;:&lt;span class="nx"&gt;ycm_complete_in_comments&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;g&lt;/span&gt;:&lt;span class="nx"&gt;ycm_collect_identifiers_from_comments_and_strings&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;#34;开始补全的字符数&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;g&lt;/span&gt;:&lt;span class="nx"&gt;ycm_min_num_of_chars_for_completion&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;#34;补全后自动关机预览窗口&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;g&lt;/span&gt;:&lt;span class="nx"&gt;ycm_autoclose_preview_window_after_completion&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;#34; 禁止缓存匹配项,每次都重新生成匹配项&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;g&lt;/span&gt;:&lt;span class="nx"&gt;ycm_cache_omnifunc&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;19&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;#34;字符串中也开启补全&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;20&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;g&lt;/span&gt;:&lt;span class="nx"&gt;ycm_complete_in_strings&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 class="relative group"&gt;&lt;strong&gt;3. 语法检查&lt;/strong&gt;
 &lt;div id="3-语法检查" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#3-%e8%af%ad%e6%b3%95%e6%a3%80%e6%9f%a5" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h3 class="relative group"&gt;Syntastic大家都知道了。。。。看到了&lt;a href="https://zhuanlan.zhihu.com/p/23317292" target="_blank" rel="noreferrer"&gt;异步检测插件ALE&lt;/a&gt;，打算试一下。
 &lt;div id="syntastic大家都知道了看到了异步检测插件ale打算试一下" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#syntastic%e5%a4%a7%e5%ae%b6%e9%83%bd%e7%9f%a5%e9%81%93%e4%ba%86%e7%9c%8b%e5%88%b0%e4%ba%86%e5%bc%82%e6%ad%a5%e6%a3%80%e6%b5%8b%e6%8f%92%e4%bb%b6ale%e6%89%93%e7%ae%97%e8%af%95%e4%b8%80%e4%b8%8b" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;

&lt;h3 class="relative group"&gt;&lt;a href="https://github.com/w0rp/ale" target="_blank" rel="noreferrer"&gt;ale_github&lt;/a&gt;
 &lt;div id="ale_" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ale_" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;

&lt;h3 class="relative group"&gt;需要注意的是，这个插件需要vim 8.0+的特性。。。
 &lt;div id="需要注意的是这个插件需要vim-80的特性" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%9c%80%e8%a6%81%e6%b3%a8%e6%84%8f%e7%9a%84%e6%98%af%e8%bf%99%e4%b8%aa%e6%8f%92%e4%bb%b6%e9%9c%80%e8%a6%81vim-80%e7%9a%84%e7%89%b9%e6%80%a7" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;

&lt;h3 class="relative group"&gt;放一波配置文件
 &lt;div id="放一波配置文件" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%94%be%e4%b8%80%e6%b3%a2%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="kr"&gt;for&lt;/span&gt; &lt;span class="n"&gt;ale&lt;/span&gt; &lt;span class="n"&gt;begin&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;let&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;ale_sign_column_always&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;保持侧边栏可见：
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;let g:ale_sign_error = &amp;#39;&amp;gt;&amp;gt;&amp;#39; &amp;#34;&lt;/span&gt;&lt;span class="err"&gt;改变错误和警告标识符&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;let&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;ale_sign_warning&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;--&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;let&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;ale_statusline_format&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;⨉ %d&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;⚠ %d&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;⬥ ok&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;改变状态栏信息格式
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;自定义跳转错误行快捷键：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;nmap&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;silent&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;C&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Plug&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ale_previous_wrap&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;nmap&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;silent&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;C&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Plug&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ale_next_wrap&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;消除某excption not caught的警告
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;let g:ale_emit_conflict_warnings = 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 class="relative group"&gt;&lt;strong&gt;4. 编程提示(jedi-vim)&lt;/strong&gt;
 &lt;div id="4-编程提示jedi-vim" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#4-%e7%bc%96%e7%a8%8b%e6%8f%90%e7%a4%bajedi-vim" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h3 class="relative group"&gt;　据说是vim写python的神器。。。装来看看。。。
 &lt;div id="据说是vim写python的神器装来看看" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%8d%ae%e8%af%b4%e6%98%afvim%e5%86%99python%e7%9a%84%e7%a5%9e%e5%99%a8%e8%a3%85%e6%9d%a5%e7%9c%8b%e7%9c%8b" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;

&lt;h3 class="relative group"&gt;据说默认配置就够了，先不折腾了
 &lt;div id="据说默认配置就够了先不折腾了" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%8d%ae%e8%af%b4%e9%bb%98%e8%ae%a4%e9%85%8d%e7%bd%ae%e5%b0%b1%e5%a4%9f%e4%ba%86%e5%85%88%e4%b8%8d%e6%8a%98%e8%85%be%e4%ba%86" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;

&lt;h3 class="relative group"&gt;
 &lt;div id="" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;

&lt;h3 class="relative group"&gt;
 &lt;div id="" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;</description></item></channel></rss>