小编And*_*dyP的帖子

python 列表理解中的打印(或执行语句)

我想知道是否有任何方法可以在列表理解中打印(或者更一般地说,执行语句)。
所以我们都在同一页面上,考虑以下函数 f 中的列表理解:

def g(x):
     return some_complicated_condition_function(x)

def f(list_of_numbers,n):
     return [i for i in range(n) if g(list_of_numbers[i]) > 0]
Run Code Online (Sandbox Code Playgroud)

假设我在调用 f 时遇到一些神秘的错误,并希望通过使用以下内容捕获错误来进行调试:

try: g(list_of_numbers[i])
except: 
    print (i,list_of_numbers[i]))
    raise Exception("Danger Will Robinson!")
Run Code Online (Sandbox Code Playgroud)

无论如何,有没有办法做到这一点而不将我的列表理解重写为传统的 for/while 循环?

谢谢!PS 也许这是一种可怕的调试方式(我是数学专业,而不是计算机科学专业),所以如果您有任何提示,请不要害羞。

python list-comprehension

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

python pdb:进入从控制台调用的函数

注意:为了快速解释这一点,我将从 Spyder 工作的角度来讨论这一点。

如果在我的代码中调用 a 函数,我可以在调用它的位置旁边放置一个断点,然后当我的代码到达该点时,我可以单击“Step into function..”按钮来查看该函数内部发生了什么。

假设我处于某个任意断点,并且想要查看不在我的代码中的函数内部发生的情况。有什么方法可以通过 pdb 控制台调用此函数并“步入”所述函数调用吗?

python python-2.7 spyder pdb

5
推荐指数
2
解决办法
3796
查看次数

如何在ssh上执行Bash别名

这是我正在尝试做的事情:

ssh andy@<ip_address> "cat .bash_aliases; sayhello"
Run Code Online (Sandbox Code Playgroud)

这是发生的事情:

alias sayhello="echo hello"
bash: sayhello: command not found
Run Code Online (Sandbox Code Playgroud)

为了更具体地解决我的问题,我试图
"sudo etherwake -i eth0 <mac_address>"通过ssh 调用命令- 这在我的本地计算机上执行(我认为),给出sudo: unable to resolve host [blabla]错误.似乎任何非标准bash命令的命令都由我的本地机器解析.

如果这就是发生的事情,我该如何解决它?如果没有,什么如何解释呢?

ssh bash

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

如何替换 music21 乐谱中的音高

我正在尝试用另一个音高替换乐谱中的一个音高(最终目标是产生和声部分)。

>>> from music21 import *
>>> score = converter.parse('test.mid')
>>> type(score)
<class 'music21.stream.Score'>

>>> p0 = score.parts[0].pitches[0]
>>> p0sharp = p0.transpose(1)
>>> print p0
A3
>>> print p0sharp
B-3
>>> score.replace(p0, p0sharp)
>>> print score.parts[0].pitches[0]
A3
Run Code Online (Sandbox Code Playgroud)

我该怎么办?


更新:我在这里发布了我的“test.mid”文件。

music21

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

标签 统计

python ×2

bash ×1

list-comprehension ×1

music21 ×1

pdb ×1

python-2.7 ×1

spyder ×1

ssh ×1