ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

Mini​Py

vim-zz ST3

Sublime Text 3 插件 - Python 行内评估

详细信息

安装次数

  • 总数 2K
  • Win 943
  • Mac 565
  • Linux 386
8 月 6 日 8 月 5 日 8 月 4 日 8 月 3 日 8 月 2 日 8 月 1 日 7 月 31 日 7 月 30 日 7 月 29 日 7 月 28 日 7 月 27 日 7 月 26 日 7 月 25 日 7 月 24 日 7 月 23 日 7 月 22 日 7 月 21 日 7 月 20 日 7 月 19 日 7 月 18 日 7 月 17 日 7 月 16 日 7 月 15 日 7 月 14 日 7 月 13 日 7 月 12 日 7 月 11 日 7 月 10 日 7 月 9 日 7 月 8 日 7 月 7 日 7 月 6 日 7 月 5 日 7 月 4 日 7 月 3 日 7 月 2 日 7 月 1 日 6 月 30 日 6 月 29 日 6 月 28 日 6 月 27 日 6 月 26 日 6 月 25 日 6 月 24 日 6 月 23 日
Windows 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0

说明文件

源码
raw.githubusercontent.com

MiniPy

Sublime Text 3 插件 - Python 行内评估。

功能

作为计算器

例如,您可以编写 3.14*0.6 并在您的文本中得到结果 1.884。它也支持多选。

在光标位置增加计数器

另一个特性是使用 $ 作为累加变量,例如有以下多选

arr[$]
arr[$]
arr[$]

会得到

arr[1]
arr[2]
arr[3]

类似地

arr[0 ]      arr[0]
arr[$+2]  -> arr[3]
arr[$*3]     arr[6]

通用 Python 评估器

除此之外,您还有以下导入可用

from math import *
from random import *
from collections import Counter
import datetime
import re  # though you should probably use the build in regex features of ST instead.

因此您可以做

Counter(('Ann', 'Bob', 'Bob', 'Michael'))                                     -> Counter({'Bob': 2, 'Ann': 1, 'Michael': 1})
Counter(('Ann', 'Bob', 'Bob', 'Michael', 'michael'))                          -> Counter({'Bob': 2, 'Ann': 1, 'michael': 1, 'Michael': 1})
Counter(name.title() for name in ('Ann', 'Bob', 'Bob', 'Michael', 'michael')) -> Counter({'Bob': 2, 'Michael': 2, 'Ann': 1})

计算校验和

并且函数 md5sha1 返回输入字符串化的相应十六进制摘要,例如 md5(['foo', 'bar', 'baz']) = dbb432a3f0ac1a2687911715dfbf7502。请注意,您可以哈希列表,因为它是被哈希的列表的字符串表示形式!

Python 的 hashlib.md5hashlib.sha1 函数在名称 _md5_sha1 下可用。

插入日期和时间

函数 dnowtnowdtnow 分别返回当前的日期、时间和日期时间字符串格式

dnow()  -> 03/05/2017
tnow()  -> 09:36:03
dtnow() -> 03/05/2017 09:36:03

请注意,需要在函数名称后加括号来调用函数。

使用集合进行计算

虽然您可以使用常规 Python 来进行集合计算,但还有一些函数包含一些方便的功能:set_intersectset_differenceset_symdiff

这些函数接受两个可迭代参数,并将它们转换为集合,然后执行计算

set_intersect('foo bar', 'foo baz')  -> {'b', ' ', 'a', 'f', 'o'}
set_intersect('foo baz', 'foo bar')  -> {'b', 'a', ' ', 'o', 'f'}
set_difference('foo baz', 'foo bar') -> {'z'}
set_difference('foo bar', 'foo baz') -> {'r'}
set_symdiff('foo baz', 'foo bar')    -> {'z', 'r'}
set_symdiff('foo bar', 'foo baz')    -> {'z', 'r'}

计算累计总和和乘积

计算可迭代对象的累计总和

cumsum([1,2,3,4,5]) -> [1, 3, 6, 10, 15]
cumsum([0.02809, 0.05619, 0.08646, 0.11919, 0.15192, 0.18465, 1.31694]) -> [0.02809, 0.08428, 0.17074, 0.28993, 0.44185, 0.6265000000000001, 1.94344]

以及累计乘积

cumprod([1, 2, 3, 4, 5]) -> [1, 2, 6, 24, 120]
cumprod([0.02809, 0.05619, 0.08646, 0.11919, 0.15192, 0.18465, 1.31694]) -> [0.02809, 0.0015783771, 0.000136466484066, 1.626544023582654e-05, 2.471045680626768e-06, 4.5627858492773275e-07, 6.008915196347284e-07]

但是,做大量小数的乘积容易出现错误,因此我们可以使用一个数学技巧
,其中 A 是可迭代的。这将提高数值稳定性,如本例所示

cumprod([1e-8, 1e-9, 1e-10, 1e-11, 1e-12, 1e-13, 1e-14]) -> [1e-08, 1e-17, 1e-27, 1e-38, 9.999999999999999e-51, 9.999999999999999e-64, 1e-77]
cumprod([1e-8, 1e-9, 1e-10, 1e-11, 1e-12, 1e-13, 1e-14], use_logsum=True) -> [9.999999999999982e-09, 9.99999999999999e-18, 1.0000000000000022e-27, 9.999999999999936e-39, 9.999999999999944e-51, 1.0000000000000049e-63, 9.999999999999967e-78]
cumprod([1e-8, 1e-9, 1e-10, 1e-11, 1e-12, 1e-13, 1e-14], use_logsum=True) -> # same result as above.

数字格式化

函数 formatnum 格式化数字,需要两个强制参数和一个可选参数

num : 正在格式化的数字。

digits : 想要的格式化数字中的位数。

scientificNotation : 是否使用科学记数法。: 可以是 True, False 或 int,其中 int 是数字当未使用科学记数法格式化时,长度达到多少字符数就切换到科学记数法。: 这是默认行为,设置为 8。

示例用法

formatnum(0.123456789, 4)                -> 0.1235
formatnum(0.123456789, 9)                -> 1.234567890e-01
formatnum(123456789.0, 9)                -> 1.234567890e+08
formatnum(123456789.0, 2)                -> 1.23e+08
formatnum(123.456789, 12)                -> 1.234567890000e+02
formatnum(123.456789, 12, False)         -> 123.456789000000
formatnum(123.456789, 3)                 -> 123.457
formatnum(3.14159, 4)                    -> 3.1416
formatnum(3.14159, 3)                    -> 3.142
formatnum(3.14159, 2)                    -> 3.14
formatnum(3.14159, 2, True)              -> 3.14e+00
formatnum(3.141592653589793238462643, 3) -> 3.142

将时间戳转换为人类可读的时间

函数 ts 将时间戳作为 Unix 时间(自纪元以来秒数)转换为字符串,使用提供的格式

ts(1478002058.368)               ->  2016-11-01T12:07:38.368000+0000
ts(1478002058.368, '%Y%m%d')     ->  20161101

用法

要评估术语,请高亮显示并

Super + Shift + X for Mac OS X
Ctrl + Shift + X for Windows/Linux