小编asm*_*rer的帖子

用于Python的emacs中更高级的语法着色

我一直在使用emacs 24(从git版本构建).我已经开始创建自定义主题,但我注意到主题功能相当有限,特别是对于Python.

我希望能够为像这样的东西分配不同的颜色

  • '单引号字符串'与"双引号字符串"
  • 突出显示doctests.所以,如果我有类似的东西

    def myfunc(x):
        """
        This is the docstring.
    
        >>> # These are the examples
        >>> print myfunc(x)
        1
        """
        return 1
    
    Run Code Online (Sandbox Code Playgroud)

    我想要This is the docstring像字符串一样着色,但我希望它print myfunc()像Python代码一样着色(或至少不同).例如,在vim中,使用我安装的任何插件,doctests颜色为棕色,但字符串为蓝色.

  • 与常规字符串不同地突出显示文档字符串.

  • 字符串格式化字符的着色(如"%s""%(newstyle_formatting)s").
  • 更好地处理'或'之前的r,u或b.

对这些中的一个或全部有任何建议吗?

如果我想到它,我可能会在这里添加更多东西.

python emacs syntax-highlighting

6
推荐指数
1
解决办法
299
查看次数

如何创建用于在 Julia 中创建符号的宏

我试图在 Julia 中创建一个字符串文字宏来创建一个symbol,所以它s"x":x. 这是行不通的:

julia> macro s_str(p)
           symbol(p)
       end

julia> s'x'
ERROR: s not defined

julia> s"x"
ERROR: x not defined
Run Code Online (Sandbox Code Playgroud)

macros julia

6
推荐指数
3
解决办法
1233
查看次数

在IPython 5中自定义键盘快捷键

在IPython 5.0中,使用新的prompt_toolkit后端,如何修改或添加新的键盘快捷键?例如,我想让它成为历史记录中的向上箭头,而不是进行历史搜索(这是默认行为).

keyboard-shortcuts ipython prompt-toolkit

6
推荐指数
0
解决办法
71
查看次数

Python使用变量保存(稀疏)矩阵

我有一些大小合适的矩阵(2000*2000),我希望在矩阵的元素中有符号表达式 - 即元素的.9**b + .8**b + .7**b ...一个例子.矩阵非常稀疏.

我通过添加中间计算来创建这些矩阵.我想将它们存储到磁盘中以便稍后读取并使用不同的值进行评估b.

我已经玩过同情,它确实完成了我需要它做的事情,但是做简单的添加是令人头脑麻木的慢.从我所看到的,似乎theano或tensorflow可能能够用Tensors做到这一点,但我无法弄清楚如何在Tensor中放置一个符号.

任何人都可以指出我正确的方向,使用这个任务的最佳工具?我更喜欢它在python中,但是如果python以外的东西能做到这一点也很好.

python symbolic-math sympy

6
推荐指数
1
解决办法
121
查看次数

为什么 Python linecache 会影响回溯模块而不影响常规回溯?

考虑以下 Python 程序:

code = """
def test():
    1/0
"""

filename = "<test>"

c = compile(code, filename, 'exec')
exec(c)

import linecache

linecache.cache[filename] = (len(code), None, code.splitlines(keepends=True), filename)

import traceback

print("Traceback from the traceback module:")
print()
try:
    test()
except:
    traceback.print_exc()

print()
print("Regular traceback:")
print()

test()
Run Code Online (Sandbox Code Playgroud)

我正在动态定义一个引发异常的函数并将其添加到linecache. 代码的输出是

Traceback from the traceback module:

Traceback (most recent call last):
  File "test.py", line 20, in <module>
    test()
  File "<test>", line 3, in test
    1/0
ZeroDivisionError: division by zero

Regular traceback:

Traceback (most …
Run Code Online (Sandbox Code Playgroud)

python traceback

6
推荐指数
1
解决办法
188
查看次数

计算分数和的公共分子的最有效算法

我很确定这是解决此问题的合适站点,但是如果适合的话,可以随时将其移至其他stackexchange站点。

假设您有一个分数的总和a1/d1 + a2/d2 + … + an/dn。您想要计算一个公共的分子和分母,即,将其重写为p/q。我们有公式

p = a1*d2*…*dn + d1*a2*d3*…*dn + … + d1*d2*…d(n-1)*an
q = d1*d2*…*dn.
Run Code Online (Sandbox Code Playgroud)

特别是,最有效的方法是p什么?您会看到,如果您天真地进行计算,即使用上面给出的公式,则会计算出很多多余的东西。例如,您将计算d1*d2 n-1时间。

我的第一个想法是迭代地计算d1*d2d1*d2*d3…和dn*d(n-1),,dn*d(n-1)*d(n-2)…,但是效率很低,因为您最终将在“中间” n计算d3*d4两次乘法(例如,如果足够大,则将计算两次)。

我敢肯定,可以使用某种图论或组合学方法来表达这个问题,但是我对这些东西的研究还不够深入,因此对此感觉还不错。

还有一个注意事项:我不在乎取消,而只是取消乘数的最有效方法。

更新:

我应该知道,stackoverflow上的人们会以为这些是数字,但是我已经习惯了我的用例,所以我忘了提这个了。

我们不能仅仅将an每个术语“分开” 。这里的用例是一个符号系统。实际上,我正在尝试修复.as_numer_denom()SymPy计算机代数系统中调用的函数,该函数目前可通过这种方式简单地进行计算。请参阅相应的SymPy问题

划分事物有一些问题,我想避免。首先,不能保证一切都会取消。这是因为从数学上讲,(a*b)**n != a**n*b**n通常(如果ab为正,则成立,但例如,如果a == b ==-1n == 1/2,则得到(a*b)**n == 1**(1/2) == 1 …

algorithm math

5
推荐指数
1
解决办法
791
查看次数

Git:获取未提交更改的大小

有没有办法查看 git 中未提交更改的大小?我想如果有办法查看已提交更改的大小,我可以暂时提交我的内容并查看该提交。有没有办法做到这一点?

原因是我担心我未提交的更改(包括一堆二进制文件更改)可能会过大,这会永远增加 git 存储库的大小。所以我想寻找另一种解决方案(如果是的话)。

git

5
推荐指数
1
解决办法
836
查看次数

bash:用set -e运行脚本(errexit)

有没有办法运行bash脚本set -e,就好像set -e是在脚本的第一行?我知道有例如bash -x模拟set -x,但我没有看到任何模仿set -e.

bash

5
推荐指数
1
解决办法
4712
查看次数

使用 pyyaml 序列化字符串而不带省略号

我正在尝试yaml.dump与 pyyaml一起使用将字符串转换为 yaml 安全的内容(即,所有需要转义的内容都已正确转义)。然后我会将这些字符串插入到一个大的 yaml 文档中。

问题是yaml.dump想要将字符串视为整个文档,并添加...(文档结尾),例如

In [4]: yaml.dump("a string")
Out[4]: 'a string\n...\n'
Run Code Online (Sandbox Code Playgroud)

我如何让它不添加\n...\n,而不仅仅是手动删除它?或者有没有更好的方法来使用 pyyaml 引用字符串以供 yaml 使用?

python yaml pyyaml

5
推荐指数
1
解决办法
2404
查看次数

匹配 Python 整数文字的正则表达式

可以匹配字符串中任何有效的 Python 整型文字的正则表达式是什么?它应该支持所有额外的东西,如ol,但不匹配浮点数或带有数字的变量。我使用的是Python re,所以它支持的任何语法都可以。

编辑:这是我的动机(显然这非常重要)。我正在尝试修复http://code.google.com/p/sympy/issues/detail?id=3182。我想做的是为 IPython 创建一个钩子,自动将 int/int (如1/2) 转换为Rational(int, int), (如Rational(1, 2)。原因是,否则不可能将其1/2注册为有理数,因为它是 Python 类型__div__Python 类型。 SymPy,这可能非常烦人,因为当您想要的是精确数量 时,类似的东西x**(1/2)会创建x**0(或x**0.5使用除法或Python 3)。__future__x**Rational(1, 2)

我的解决方案是向 IPython 添加一个钩子,自动用 Integer(SymPy 的自定义整数类,提供Rational除法)包装输入中的所有整数文字。这将让我添加一个选项,isympy让 SymPy 在这方面更像传统的计算机代数系统,对于那些想要它的人来说。我希望这可以解释为什么我需要它来匹配任意 Python 表达式中的任何和所有文字,这就是为什么它不需要匹配浮点文字和名称中带有数字的变量。

另外,由于每个人都对我尝试的内容非常感兴趣,所以这里是:在我放弃之前没多少(正则表达式很难)。我尝试(?!\.)让它不捕获浮点文字的第一部分,但这似乎不起作用(我很好奇是否有人能告诉我原因,一个例子是re.sub(r"(\d*(?!\.))", r"S\(\1\)", "12.1"))。

编辑2:由于我计划将其与 结合使用re.sub,因此您不妨将整个内容括在答案中的括号中,以便我可以使用\1:)

python regex

4
推荐指数
1
解决办法
3089
查看次数

Julia中是否有完整的特殊宏列表?

http://julia.readthedocs.org/en/latest/manual/metaprogramming/讨论朱莉娅宏,通常开始@,但也列出了两个特殊的宏text_strcmd,其处理text"string"`shell command`分别.是否有Julia支持的这些特殊宏的完整列表?是否可以定义自己的?

macros julia

3
推荐指数
1
解决办法
451
查看次数

如何使用 MathJax 配置 Sphinx 以使用美元符号作为数学分隔符

如何配置 Sphinx 以使用美元符号作为 MathJax 扩展的数学分隔符?

我尝试添加

mathjax_config = {
    'tex2jax': {
      'inlineMath': [ ['$','$']],
      'displayMath': [ ['$$','$$']],
    },
}
Run Code Online (Sandbox Code Playgroud)

to conf.py,但这有两个问题:

  1. 数学需要两个反斜杠。例如,$\\sin(x)$。Sphinx 似乎去掉了单个反斜杠。
  2. 如果我不在..math页面上的某处包含普通指令,它就不会加载 MathJax Javascript。我想专门使用$$$分隔数学。

latex mathjax python-sphinx

3
推荐指数
1
解决办法
315
查看次数

为什么Julia中的字符串宏使用...?

我一直在寻找在对于r_str在朱莉娅宏,它分析r"text"Regex("text").第二个参数是flags...,它将标志传递给正则表达式,就像i不区分大小写一样,依此类推.

我自己正在玩这个并得到:

julia> macro a_str(p, flags...)
           print(flags)
           p
       end

julia> a"abc"iii
("iii",)"abc"
Run Code Online (Sandbox Code Playgroud)

所以它似乎iii都作为第一个标志传入.在那种情况下,为什么有...旗帜.是否可以将多个元素传递flags给宏?

macros julia

2
推荐指数
1
解决办法
455
查看次数