有没有一种方法来缩进在Python代码转换为括号?(Is there a way to conver

2019-06-26 21:26发布

我是一个双目失明的程序员想学习Python谁。 不幸的代码块与不同级别的缩进表示的事实是一个主要的障碍。 我在想,如果有任何可用的工具,可以让我用括号或一些其他的代码块分隔符来编写代码,然后将该格式转换成适当的缩进表示了Python解释器可以使用?

Answer 1:

有你的问题的解决方案被分发与Python本身。 pindent.py ,它位于Tools \ Scripts目录在Windows安装(我把它的路径是C:\ Python25 \工具\ scripts)中,它看起来像你必须从svn.python.org抓住它 ,如果你在Linux或OSX运行。

它增加了注释块时关闭,或可以适当缩进代码,如果意见被放在这里的使用指令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

我很想了解你到底有什么解决了使用,如果您需要任何进一步的帮助,请在这篇文章发表评论,我会尽力帮助。



Answer 2:

我个人怀疑有目前的时刻,作为一个好多了Python afficionados的爱的事实,Python是这样,空格分隔。

我从来没有真正想过这个问题作为然而,一个无障碍的问题。 也许它的东西提出来Python的错误报告?

我会假设你在这里使用屏幕阅读器不过,对于输出? 因此,标签,似乎“不可见”吗? 随着盲文输出,它可能是更容易阅读,但我能理解究竟是如何混淆这可以。

事实上,这对我来说很有趣。 我希望我知道,足以能够编写一个应用程序,会为你做这个。

我认为这是肯定的东西,我会在一个bug报告,除非你已经这样做你自己,还是想。

编辑:此外,如注意到由约翰·米利金还有PyBraces这可能是一个可行的解决方案给你,并有可能被黑客攻破一起取决于你的编程技巧是您需要的东西(我希望,如果是这样的话,你释放出来给别人喜欢自己使用)

编辑2:我刚刚报道这对蟒蛇bug跟踪



Answer 3:

虽然我不是盲目的,我听说有好东西Emacspeak 。 因为他们的他们已经有一个Python模式8.0版本于1998年(他们似乎是高达28.0释放!)。 绝对值得一试。



Answer 4:

你应该能够配置编辑器说话的标签和空格-我知道这是可能在大多数编辑器显示空白,所以必须有一个辅助功能选项某处说出来。

如果做不到这一点,有pybraces ,上面写着玩恶作剧,但实际上可能对你有用了一些工作。



Answer 5:

如果您使用的是Windows,我强烈建议你看看EdSharp: http://empowermentzone.com/EdSharp.htm它支持所有领先的Windows屏幕阅读器,它可以被配置为说话的代码的缩进层次,或者它有一个内置的工具,叫做PyBrace,如果你想这样做,而不是,可以转换和从括号的语法,它支持各种其他功能的程序员已经走在我们的文本编辑器的期望。 我已经使用了多年,一切从PHP到JavaScript来的HTML Python和我喜欢它。



Answer 6:

我很欣赏你的问题,但觉得你指定的执行,而不是你所需要解决的问题。 而不是转化为支撑,如何在工作方式为你的屏幕阅读器告诉你缩进级别?

例如, 有些人对vim的语法着色努力表示蟒蛇缩进层次。 也许修改语法着色可能会产生一些屏幕阅读器会读?



Answer 7:

所有这些“不,你不能”类型的答案真的很烦。 当然可以。

这是一个黑客,但你可以做到这一点。

http://timhatch.com/projects/pybraces/

使用自定义编码交给受解释之前,牙套缩进块转换。


顺便说一句,并作为一个新来的Python -我不从被蟒蛇开发者的偏爱背后接受甚至不允许括号/通用块分隔符的理由...分开。 至少牙套会,如果你做你的代码的某些自动处理或不明白的白色空间是很重要的一个编辑器工作不因意外而吃掉。 如果你自动生成的代码,那么方便的做法没有跟踪缩进级别。 如果你想使用Python做一个perl去年秋季的一行后,就会自动瘫痪。 如果不出意外,只是作为一种保障。 如果你的1000行的Python程序获取所有选项卡吃了吗? 你会去行由行,找出其中的缩进应该是什么?

询问会总能得到一个舌头在脸颊响应像“只管去做‘从__ __未来进口括号’”,“正确配置IDE”,“这是更好反正所以也就习惯了” ......

我看到他们的观点,但是,嘿,如果我想,我可以每行后放一个分号。 所以,我不明白为什么每个人都这么坚定的关于大括号的事情。 如果您需要的语言,迫使你不得不适当地缩进,你不这样做是正确摆在首位。

只是我2C - 我还是要用括号。



Answer 8:

搜索可访问的Python IDE,发现了这个决定来回答。 在Windows下使用JAWS:

  1. 在你喜欢的文本编辑器中按JawsKey + 6(上数排上面的字母)进入设置中心。 如果JAWS提示创建一个新的配置文件,同意。
  2. 在搜索字段中,键入“缩进”
  3. 将有结果只有一个:“说缩进字符”。 启用该选项。
  4. 请享用!

这是令人沮丧的我们的唯一的事情是我们不能享受代码示例网站上(因为在浏览器中缩进来讲是不太舒服 - 它会产生多余的讲话)。

从另一个Python初学者快乐编码)。



Answer 9:

我用eclipse与PyDev的扩展,因为它是一个IDE我有很多有经验。 我也很欣赏智能缩进它提供了if语句编码,循环等我已经配置了pindent.py脚本,我可以将当​​前的重点Python模块使我的生活更轻松,所以我可以看到什么是上运行的外部工具与必须不断地检查出压痕关闭位置。



Answer 10:

有各种各样的答案解释如何做到这一点。 但我会建议不采取这条路线。 虽然你可以使用脚本来进行转换,这将使它很难在一个团队项目。

我的建议是配置您的屏幕阅读器宣布标签。 这并不像听起来那么讨厌,因为它只会说“缩进5”,而不是“标签选项卡标签选项卡标签”。 此外,压痕只会读时,它改变,所以你可以去通过代码的整个块没有听到缩进级别。 这样的听证会缩进没有比听到牙套更详细。

因为我不知道你使用的操作系统或屏幕阅读器我很遗憾不能给实现这一目标的具体步骤。



Answer 11:

Edsger Dijkstra算法中使用,如果〜音响和做〜OD在他的“留守命令语言”,这些看似从发起Algol68的 。 也有中使用的一些例子蟒蛇保护块RosettaCode.org 。

fi = od = yrt = end = lambda object: None;
class MyClass(object):
    def myfunction(self, arg1, arg2):
        for i in range(arg1) :# do
            if i > 5 :# then
                print i
            fi
        od # or end(i) #
    end(myfunction)
end(MyClass)

空白错位Python代码可以明确地未重整,如果一个使用保护块,如果/ FI,DO / OD与一起尝试/ YRT用分号reindented“;” 分离报表。 非常适用于明确的杂志列表或网页剪切/粘贴。

它应该很容易写一个简短的Python程序插入/删除保护块和分号。



文章来源: Is there a way to convert indentation in Python code to braces?