Welcome to my blog. The English verison of posts are in En page.

Python拆包的好处

内容

在最近的一期 realpython 中,我阅读到了这样一段代码:

之前因为:

  1. 这个东西不是很直观
  2. 这个可能造成参数混乱

而不是很在意这段代码。现在想来,真是很方便的一个东西:我们可以通过这个特性,轻松的拆解response.json这个dict,从而直接使用参数。

注意一点,如果一个函数的参数超过三个,说明你需要拆解这个函数,而不是被参数的数量搞得焦头烂额。

具体例子

这个方法可以方便很多事情,比如说,我可以这样来重新构建输出的变量,而不是一个个print

Ubuntu 脱坑指南

希望本文能够给读者较少一些不必要的困扰。书写顺序较为随意,以 “从安装到使用”这个为主线行文。 安装时 本文不在此具体介绍如何安装Ubuntu。对于安装过程的建议,本文会写在 内容之中。安装之前,建议阅读本文。 使用非定制的ISO 不要使用Lubuntu,Kubuntu甚至Gnome Ubuntu这些更改了默认桌面环境的Ubuntu。 对于新手而言,Ubuntu本身就很脆弱,使用这些定制的ISO,不仅不利于提升用户 体验,反而会在非重点的地方极大的消耗时间。对了,Kylin也是不推荐的,尽管 官方甚至都把它挂在了首页。 唯一建议使用的ISO是官方下载地址。 使用英文系统 中文系统可能会导致许多问题。比如,如果一个软件不支持中文路径,你可能需要 排查很久才能想到这个问题。除此之外还有其他的一些问题,比如在命令行中进入 一个目录,你可能需要切换输入法,然后再切换回来,十分不方便。还有一些暗含 的问题,我已经记不清了,也没有精力去探索这些问题,因为我们的目的是“脱坑”。 因此,使用英文作为系统语言可以解决很多问题。唯一引入的问题可能是英文的阅 读障碍。我想这应该是一个需要克服的问题。 如果使用英文調不出輸入法,可以嘗試添加中文支持,再去掉 不要挑战花式安装 我这里的花式安装是指,/home做一个分区,/boot做一个分区这种事;还有就 是在固态上放一个区,在其他位置再放一个区等。这种事情不要做。是的,不要做。 在我看来,这种事情毫无意义,对于新手而言,基本上不会有时间让系统稳定到 硬盘不够用。 把根目录/挂到一个大分区下,100G,所有问题就都解决了。当空间不足需要重装, 恭喜,你可能已经不是新手了,很多问题都可以不再按照此指南进行了。你可以 尝试按照你自己的意图去配置系统了。 使用 下面是使用部分。使用部分是,第一次进行安装之后,第一次进入桌面。 不要添加第三方PPA 我把这条忠告写在最前面。如果你不知道什么叫做第三方ppa,那么很好, 我的意思是,在你了解它是什么之前,不要通过apt与software center 以外的方式安装软件。这可以很大程度的保护你的软件包管理工具。修复 软件包管理工具需要消耗的时间可能很多,而且问题往往是链式的,总会 给新手造成“我以为我解决了”这样的错觉。 sudo add-apt-repository ppa:kelleyk/emacs 这就是我所说的PPA。 Vim 和 Emacs 都是我的最爱。 不要在输入法上耗费太多时间 输入法如果花费一上午都没有解决的话,建议放弃。因为Ubuntu官方的版本 有时候给出的中文输入法都可能无法使用。 如果真的需要输入中文,可以先考虑使用中文搜索引擎做pinyin的转换。不过 你真的需要中文,并且在Ubuntu下做文字处理的工作吗? 多运行apt-get update 是的。更换国内源这个事情我是建议的,个人对于tsinghua的源非常喜欢, 尽管它崩的概率也有点高,不过在ipv6以及速度上都太令人满意了。 源的不稳定可能造成的问题是,没有完全将软件依赖更新好。 如果你不知道我在说什么,没关系,apt命令出现问题时,多运行apt-get update 就可以了。 官方文档为主 Ubuntu的很多问题,都是国内博主在写文章时比较随意造成的(我也挖这种坑)。 在进行软件安装的时候,新手往往在国内搜索某个教程就复制粘贴了。这是非常 容易出问题的,且不论安全性,甚至教程本身都无法使得软件正常运行。这里面 包含很多种可能:文章不再更新,系统已经不适配;教程缺斤少两等等。 安装软件先以官方文档为主,也就是软件的官方网站,一般都会有文档。文档可能 不好读,但是起码能够减少问题。其次是Ubuntu官方的安装指南;再其次是google 第一位的安装指南(前提是新手能明白每一步都在做什么);没有最后。 能用apt-get install解决的问题,不要通过make解决。 尽量不使用sudo 除非是按照官方文档进行操作(不排除无良软件开发者挖坑导致运行时出问题), [阅读全文]

博客最近没更新

感觉博客样式太丑了,不想更新

批量转换ipynb

一段脚本将ipython notebook转化为py文件。

It’s hard to make notebook file to import so it’s important to make notebook importable.

与所有单词相关联的字串

题目

给定一个字符串 s 和一些长度相同的单词 words,找出 s 与 words 中所有单词(words 每个单词只出现一次)串联一起(words 中组成串联串的单词的顺序随意)的字符串匹配的所有起始索引,子串要与串联串完全匹配,中间不能有其他字符。

[阅读全文]

笔记列表

这些笔记用 Sphinx 进行书写的,Sphinx 着实不是特别好用,学习曲线有些陡峭,后面打算切换到语雀什么的,可能会舒服一些。就是可能不够自由。

如果喜欢本博客,建议添加 RSS 订阅

python如何使用不可变量const


这样一来,就可以在python中使用不可变量了。其中,利用魔术方法__setattr__,把一个变量当作是const类的属性,然后使用__dict__来判断当前变量是否已经存在。

通过这个技巧我们还能构造出一系列有意思的东西——

运行截图

refer