小编Kit*_*Kit的帖子

Python:在Unicode转义字符串上使用.format()

我使用的是Python 2.6.5.我的代码需要使用"超过或等于"的符号.在这里:

>>> s = u'\u2265'
>>> print s
>>> ?
>>> print "{0}".format(s)
Traceback (most recent call last):
     File "<input>", line 1, in <module> 
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2265'
  in position 0: ordinal not in range(128)`  
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此错误?有没有正确的方法来做到这一点?我需要使用该.format()功能.

python string unicode python-2.x

154
推荐指数
3
解决办法
8万
查看次数

如何在Python中使用自定义消息引发相同的Exception?

try我的代码中有这个块:

try:
    do_something_that_might_raise_an_exception()
except ValueError as err:
    errmsg = 'My custom error message.'
    raise ValueError(errmsg)
Run Code Online (Sandbox Code Playgroud)

严格地说,我实际上是在另一种情况下 ValueError,而不是ValueError抛出的do_something...(),err在这种情况下被称为.如何附加自定义消息err?我尝试下面的代码,但失败,因为err,一个ValueError 实例,不是赎回:

try:
    do_something_that_might_raise_an_exception()
except ValueError as err:
    errmsg = 'My custom error message.'
    raise err(errmsg)
Run Code Online (Sandbox Code Playgroud)

python message exception

123
推荐指数
7
解决办法
7万
查看次数

在Mac OS X上更新内置vim

我知道这可能更适合Ask Different,但是当我尝试在那里添加标签时,没有vim标签,只有macvim.所以我想我可能会在这里找到更好的观众.

在终端中,我执行以下操作

$ vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jan 31 2010 13:33:49)
Run Code Online (Sandbox Code Playgroud)

当我浏览http://www.vim.org时,我看到了一则新闻

Vim 7.3发布了!

如何更新内置的vim?我非常希望干净利落(即没有重复的安装,或任何额外的下载,没有macports等)

我考虑使用Mercurial(因为我已经将它用于其他事情),按照这里的说明.

$ hg clone https://vim.googlecode.com.hg/ vim
$ cd vim/src
$ make
Run Code Online (Sandbox Code Playgroud)

但我认为这将使重复安装.尽管如上所述我的"干净"要求,"不干净"的解决方案也是受欢迎的,因为也许真的没有别的办法.

macos vim

110
推荐指数
5
解决办法
10万
查看次数

从Python列表或元组中明确选择项目

我有以下Python列表(也可以是一个元组):

myList = ['foo', 'bar', 'baz', 'quux']
Run Code Online (Sandbox Code Playgroud)

我可以说

>>> myList[0:3]
['foo', 'bar', 'baz']
>>> myList[::2]
['foo', 'baz']
>>> myList[1::2]
['bar', 'quux']
Run Code Online (Sandbox Code Playgroud)

如何明确选择索引没有特定模式的项目?例如,我想选择[0,2,3].或者从1000个项目的非常大的列表中,我想选择[87, 342, 217, 998, 500].是否有一些Python语法可以做到这一点?看起来像:

>>> myBigList[87, 342, 217, 998, 500]
Run Code Online (Sandbox Code Playgroud)

python indexing select tuples list

103
推荐指数
5
解决办法
25万
查看次数

Vim Surround在单词周围插入了额外的空间

当我选择单词并使用环绕插件时S:

foobar
Run Code Online (Sandbox Code Playgroud)

它成为了

( foobar )
Run Code Online (Sandbox Code Playgroud)

如何删除多余的空格,以便它成为

(foobar)
Run Code Online (Sandbox Code Playgroud)

我应该在我的设置中放置什么?

vim surround

83
推荐指数
2
解决办法
5451
查看次数

设置MacVim默认字体

如何设置MacVim的默认字体?

我尝试添加以下行

set guifont = Monaco:h12
Run Code Online (Sandbox Code Playgroud)

到以下任一文件:

~/.vimrc
~/.gvimrc
~/Applications/MacVim/MacVim.app/Contents/Resources/vim/vimrc
~/Applications/MacVim/MacVim.app/Contents/Resources/vim/gvimrc
~/Applications/MacVim/MacVim.app/Contents/Resources/vim/.vimrc
~/Applications/MacVim/MacVim.app/Contents/Resources/vim/.gvimrc
Run Code Online (Sandbox Code Playgroud)

我重新启动了MacVim,但它仍然不会设置默认字体.我错过了什么?

更新:我可以set guifont在运行时发出命令,它工作正常.它似乎似乎没有读取我的启动文件.

vim fonts default

78
推荐指数
4
解决办法
4万
查看次数

我如何检查Vim变量?

.vimrc,有几行看起来像:

let g:SuperTabDefaultCompletionType="<c-x><c-o>"
Run Code Online (Sandbox Code Playgroud)

我如何在Vim内检查它们?这样的效果:

:echom &g:SuperTabDefaultCompletionType
Run Code Online (Sandbox Code Playgroud)

但该命令导致错误:

E113: Unknown option: SuperTabDefaultCompletionType
E15: Invalid expression: &g:SuperTabDefaultCompletionType
Run Code Online (Sandbox Code Playgroud)

如何在Vim中检查这些变量?一些插件设置了一些我需要检查的默认值.

variables vim

55
推荐指数
3
解决办法
3万
查看次数

如何在matplotlib中一次分配多个标签?

我有以下数据集:

x = [0, 1, 2, 3, 4]
y = [ [0, 1, 2, 3, 4],
      [5, 6, 7, 8, 9],
      [9, 8, 7, 6, 5] ]
Run Code Online (Sandbox Code Playgroud)

现在我绘制它:

import matplotlib.pyplot as plt
plt.plot(x, y)
Run Code Online (Sandbox Code Playgroud)

但是,我想用这个命令标记3个y数据集,这会在.legend()调用时引发错误:

lineObjects = plt.plot(x, y, label=['foo', 'bar', 'baz'])
plt.legend()

File "./plot_nmos.py", line 33, in <module>
  plt.legend()
...
AttributeError: 'list' object has no attribute 'startswith'
Run Code Online (Sandbox Code Playgroud)

当我检查lineObjects:

>>> lineObjects[0].get_label()
['foo', 'bar', 'baz']
>>> lineObjects[1].get_label()
['foo', 'bar', 'baz']
>>> lineObjects[2].get_label()
['foo', 'bar', 'baz']
Run Code Online (Sandbox Code Playgroud)

是否有一种优雅的方法来通过使用 …

label matplotlib legend

48
推荐指数
5
解决办法
6万
查看次数

在Vim中使用鼠标滚轮

.vimrc有以下几行

set mouse=a
map <ScrollWheelUp> <C-Y>
map <ScrollWheelDown> <C-E>
Run Code Online (Sandbox Code Playgroud)

但是当我使用鼠标滚轮向上滚动时,我会将文本放在 Vim 上方.例如,如果我刚刚启动Vim,我会收到终端会话文本.我最初在帮助文件上试验鼠标滚轮,然后转到其他文件,因此a选项.

我还需要设置什么?我在终端内使用Snow Leopard和Vim 7.3.

在这里,我刚做了一个轮子.请参阅顶部的终端会话. 在此输入图像描述

vim scroll mousewheel

38
推荐指数
3
解决办法
4万
查看次数

Python:解压缩内部嵌套元组/列表,同时仍获取其索引号

我熟悉使用enumerate():

>>> seq_flat = ('A', 'B', 'C')
>>> for num, entry in enumerate(seq_flat):
        print num, entry
0 A
1 B
2 C
Run Code Online (Sandbox Code Playgroud)

我希望能够为嵌套列表做同样的事情:

>>> seq_nested = (('A', 'Apple'), ('B', 'Boat'), ('C', 'Cat'))
Run Code Online (Sandbox Code Playgroud)

我可以打开包装:

>>> for letter, word in seq_nested:
        print letter, word
A Apple
B Boat
C Cat
Run Code Online (Sandbox Code Playgroud)

我应该如何解压缩以获得以下信息?

0 A Apple
1 B Boat
2 C Cat
Run Code Online (Sandbox Code Playgroud)

我知道的唯一方法是使用计数器/增量器,据我所知,这是非Pythonic.有更优雅的方式吗?

python tuples list enumerate iterable-unpacking

33
推荐指数
1
解决办法
7975
查看次数