我一直在使用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").对这些中的一个或全部有任何建议吗?
如果我想到它,我可能会在这里添加更多东西.
我试图在 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) 在IPython 5.0中,使用新的prompt_toolkit后端,如何修改或添加新的键盘快捷键?例如,我想让它成为历史记录中的向上箭头,而不是进行历史搜索(这是默认行为).
我有一些大小合适的矩阵(2000*2000),我希望在矩阵的元素中有符号表达式 - 即元素的.9**b + .8**b + .7**b ...一个例子.矩阵非常稀疏.
我通过添加中间计算来创建这些矩阵.我想将它们存储到磁盘中以便稍后读取并使用不同的值进行评估b.
我已经玩过同情,它确实完成了我需要它做的事情,但是做简单的添加是令人头脑麻木的慢.从我所看到的,似乎theano或tensorflow可能能够用Tensors做到这一点,但我无法弄清楚如何在Tensor中放置一个符号.
任何人都可以指出我正确的方向,使用这个任务的最佳工具?我更喜欢它在python中,但是如果python以外的东西能做到这一点也很好.
考虑以下 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) 我很确定这是解决此问题的合适站点,但是如果适合的话,可以随时将其移至其他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*d2,d1*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通常(如果a和b为正,则成立,但例如,如果a == b ==-1和n == 1/2,则得到(a*b)**n == 1**(1/2) == 1 …
有没有办法查看 git 中未提交更改的大小?我想如果有办法查看已提交更改的大小,我可以暂时提交我的内容并查看该提交。有没有办法做到这一点?
原因是我担心我未提交的更改(包括一堆二进制文件更改)可能会过大,这会永远增加 git 存储库的大小。所以我想寻找另一种解决方案(如果是的话)。
有没有办法运行bash脚本set -e,就好像set -e是在脚本的第一行?我知道有例如bash -x模拟set -x,但我没有看到任何模仿set -e.
我正在尝试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 整型文字的正则表达式是什么?它应该支持所有额外的东西,如o和l,但不匹配浮点数或带有数字的变量。我使用的是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:)
http://julia.readthedocs.org/en/latest/manual/metaprogramming/讨论朱莉娅宏,通常开始@,但也列出了两个特殊的宏text_str和cmd,其处理text"string"和`shell command`分别.是否有Julia支持的这些特殊宏的完整列表?是否可以定义自己的?
如何配置 Sphinx 以使用美元符号作为 MathJax 扩展的数学分隔符?
我尝试添加
mathjax_config = {
'tex2jax': {
'inlineMath': [ ['$','$']],
'displayMath': [ ['$$','$$']],
},
}
Run Code Online (Sandbox Code Playgroud)
to conf.py,但这有两个问题:
$\\sin(x)$。Sphinx 似乎去掉了单个反斜杠。..math页面上的某处包含普通指令,它就不会加载 MathJax Javascript。我想专门使用$和$$分隔数学。我一直在寻找在源对于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给宏?