我是一个完全盲目的程序员,谁想学习Python。不幸的是,代码块用不同级别的缩进表示,这是一个主要的障碍。我想知道是否有任何可用的工具允许我使用大括号或其他代码块分隔符编写代码,然后将该格式转换为Python解释器可以使用的适当缩进的表示形式?
发布于 2008-09-23 02:04:02
对于您的问题,有一个随python本身一起发布的解决方案。pindent.py
,它位于windows安装的Tools\Scripts目录中(我的路径是C:\Python25\Tools\Scripts),如果你在Linux或OSX上运行,看起来你必须使用grab it from svn.python.org。
它在块关闭时添加注释,或者如果添加了注释,则可以正确地缩进代码。下面是pindent使用以下命令输出的代码示例:
pindent.py -c myfile.py
def foobar(a, b):
if a == b:
a = a+1
elif a < b:
b = b-1
if b > a: a = a-1
# end if
else:
print 'oops!'
# end if
# end def foobar
其中,原始myfile.py
是:
def foobar(a, b):
if a == b:
a = a+1
elif a < b:
b = b-1
if b > a: a = a-1
else:
print 'oops!'
您还可以使用pindent.py -r
根据注释插入正确的缩进(有关详细信息,请阅读pindent.py的标题),这应该允许您使用Python语言编写代码,而不必担心缩进。
例如,运行pindent.py -r myfile.py
会将myfile.py
中的以下代码转换为与上面的pindent.py -c
示例生成的相同的适当缩进(和注释)的代码:
def foobar(a, b):
if a == b:
a = a+1
elif a < b:
b = b-1
if b > a: a = a-1
# end if
else:
print 'oops!'
# end if
# end def foobar
我很有兴趣知道你最终使用的解决方案是什么,如果你需要任何进一步的帮助,请评论这篇文章,我会尽力帮助你。
发布于 2008-09-23 01:35:24
我个人怀疑目前是否有,因为许多Python爱好者喜欢Python是这样的,空格分隔。
然而,我从来没有真正考虑过这是一个可访问性的问题。也许它可以作为错误报告提交给Python?
我假设您在这里使用的是屏幕阅读器,但是输出呢?所以标签对你来说看起来是“隐形的”?有了盲文输出,它可能更容易阅读,但我可以确切地理解这可能是多么令人困惑。
事实上,这对我来说非常有趣。我希望我知道的足够多,能够为你写一个应用程序来做这件事。
我认为我肯定会把它写进bug报告,除非你自己已经这么做了,或者你想要这样做。
编辑:此外,作为John Millikin的noted,PyBraces对您来说可能是一个可行的解决方案,并且可以根据您的编码技能将其组合在一起,以满足您的需求(我希望如果是这样的话,您可以发布它以供像您这样的其他人使用)
编辑2:我刚刚通过reported this连接到了python bug跟踪器
发布于 2008-09-23 01:51:53
虽然我不是盲人,但我听说过关于Emacspeak的好话。从1998年的8.0 release开始,他们就有了Python模式(他们似乎已经发布了28.0版!)。绝对值得一看。
https://stackoverflow.com/questions/118643
复制相似问题