我使用的是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()
功能.
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) 我知道这可能更适合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)
但我认为这将使重复安装.尽管如上所述我的"干净"要求,"不干净"的解决方案也是受欢迎的,因为也许真的没有别的办法.
我有以下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) 当我选择单词并使用环绕插件时S
:
foobar
Run Code Online (Sandbox Code Playgroud)
它成为了
( foobar )
Run Code Online (Sandbox Code Playgroud)
如何删除多余的空格,以便它成为
(foobar)
Run Code Online (Sandbox Code Playgroud)
我应该在我的设置中放置什么?
如何设置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
在运行时发出命令,它工作正常.它似乎似乎没有读取我的启动文件.
在.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中检查这些变量?一些插件设置了一些我需要检查的默认值.
我有以下数据集:
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)
是否有一种优雅的方法来通过使用 …
我.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.
在这里,我刚做了一个轮子.请参阅顶部的终端会话.
我熟悉使用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.有更优雅的方式吗?