`
hanyh
  • 浏览: 228830 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python代码缩进的解决方案

阅读更多
这个不是Python的问题,不管你用那个编程语言都会碰到这个问题。也没有统一的解决方案。前面诸位提到的编辑器折叠代码的功能确实能部分解决问题,
但是从根子上讲,还是得靠合理地设计程序结构。我这里讲一些我自己的心得,供你作参考。

首先要合理使用Py的sub function
def outer():
   def inner():
       foobarblahdah

然后把很多nasty的东西放到inner里面。很多时候这种方法能解决很多问题。

此外,要合理使用generator。Py的generator是一个非常强大的工具,用得好,能让你的代码非常赏心悦目。比方说,很多时候,多层的
for while,就是要一环套一环地筛选对象。那么你完全可以这么写代码。

def func():
   criteria1 = lambda : foo
   criteria2 = lambda : bar
   criteria3 = lambda : blah
   criteria4 = lambda : dah

   def gen1(object_set, *criteria):
       for i in object_set:
           play_with_foo_bar_blah_dah
           yield i
   def gen2(object_set, *criteria):
       for i in object_set:
           another_sieve_processing_algo
           yield i

   for i in gen(list_of_objs, (dar, blah)):
       foobarblahdah

这个思路基本上就是在照抄twisted的defer了。criteria1,2,相当于单台机床,gen1,2,相当于排流水线,真正调用gen
(list_of_objs, (dar,blah))的时候,相当于投料正式生产。

此外,还要善于利用Py内置的shortcuts。比方dict的get,setdefault,以及or,and,if else赋值语句等等。

这个东西,说到底还是比较技巧性的。就是说,只要多读代码,retrospect自己的代码,或早或晚都能掌握的。
分享到:
评论

相关推荐

    常见的Python代码报错及解决方案1

    1、变量名错误(NameError): 2、语法错误(SyntaxError): 3、代码缩进错误(IndentationError): 4、输入法半角全角:

    python中常见错误及解决方法

    2.IndentationError代码缩进错误 3.AttributeError对象属性错误 详细讲解 1.NameError变量名错误 报错: >>> print a Traceback (most recent call last): File , line 1, in <module><br>NameError: name 'a...

    python中的错误如何查看

    2.IndentationError代码缩进错误 3.AttributeError对象属性错误 4.TypeError类型错误 5.IOError输入输出错误 6.KeyError字典键值错误 具体介绍 1.NameError变量名错误  报错: >>> print a Traceback (most ...

    Python Cookbook

    1.14 改变多行文本字符串的缩进 29 1.15 扩展和压缩制表符 31 1.16 替换字符串中的子串 33 1.17 替换字符串中的子串-Python 2.4 34 1.18 一次完成多个替换 36 1.19 检查字符串中的结束标记 39 1.20 使用...

    30-Days-Of-Code:该文件包含以下所有解决方案-python source file

    该文件包含以下所有解决方案:Hackerrank 30天代码以及其他算法(不是您的对手吗?请查看以贡献其他/更多算法) 如何贡献? 看看未解决的问题 您还可以为在30天内的任何时间内用于解决问题的算法/代码创建新版本...

    python 实现在shell窗口中编写print不向屏幕输出

    所以有了以下解决方案: 例子 其实也什么特别,就是在编写函数时,函数里面的每句代码前面都加上tab进行缩进。 以上这篇python 实现在shell窗口中编写print不向屏幕输出就是小编分享给大家的全部内容了,希望能给...

    Algo-Tree:Algo-Tree是算法和数据结构的集合,这些都是有效代码和良好软件设计的基础。 要成为一名优秀的程序员,就需要创建和设计出色的算法。 它包含各种语言的解决方案,例如C ++,Python和Java

    它包含各种语言的解决方案,例如C++ , Python和Java 。代码结构演算法贡献准则 :gear: 您可以遵循以下准则并做出相应的贡献: 确保不从外部来源(例如GFG,hackerearth等)复制代码,因为不会考虑该工作。 严禁...

    algoexpert:我对AlgoExpert问题的解决方案

    算法专家 我对解决方案 压痕问题 我已经意识到某些文件存在缩进问题。 因此,我从AlgoExpert的解决方案中将代码复制到VS Code,它们看起来不错,但实际上存在缩进问题。 滑动窗法 经典范例

    代码之美(中文完整版).pdf

    在每章中的漂亮代码都是来自独特解决方案的发现,而这种发现是来源于作者超越既定边界的远见卓识,并且识别出被多数人忽视的需求以及找出令人叹为观止的问题解决方案。 本书介绍了人类在一个奋斗领域中的创造性和...

    Tornado Web服务器中处理空白字符的解决方案

    不缩进真的很影响心情的好吧,特别是对一个python开发者。 国外一些Q&A对这个情况也有一些讨论,其中提到比较多的就是compress_whitespace。在github找到一个issue:...

    Algo-tree

    它包含各种语言的解决方案,例如C++ , Python和Java 。代码结构演算法贡献准则 :gear:您可以遵循以下准则并做出相应的贡献:确保不从外部来源(例如GFG,hackerearth等)复制代码,因为不会考虑该工作。严禁抄袭。...

    java贪吃蛇源码-Searching-in-BST:在BST中搜索

    它包含各种语言的解决方案,如C++ 、 Python和Java 。 代码结构 算法 贡献指南 :gear: 您可以阅读这些指南并做出相应的贡献: 确保您不要从外部来源(如 GFG、hackerearth 等)复制代码,因为不会考虑该工作。 抄袭...

    java贪吃蛇源码-algo:某物

    它包含各种语言的解决方案,如C++ 、 Python和Java 。 代码结构 算法 贡献指南 :gear: 您可以阅读这些指南并做出相应的贡献: 确保您不要从外部来源(如 GFG、hackerearth 等)复制代码,因为不会考虑该工作。 抄袭...

    java贪吃蛇源码-stock-span:库存跨度

    它包含各种语言的解决方案,如C++ 、 Python和Java 。 代码结构 算法 贡献指南 :gear: 您可以阅读这些指南并做出相应的贡献: 确保您不要从外部来源(如 GFG、hackerearth 等)复制代码,因为不会考虑该工作。 抄袭...

    EditPlus 3.31 Build 860 简体中文版

    (完美解决方案,真正中文,不会再调出来韩文了。感谢 D4llower 等多位网友协力帮助) * 修正:在 64 位系统下,无法设置系统右键快捷菜单关联 [0501] * 修正: 当 "另存为"、并在文件名称输入框点击鼠标右键时, 弹出...

    EditPlus 3.31 Build 1129

    (完美解决方案,真正中文,不会再调出来韩文了。感谢 D4llower 等多位网友协力帮助) * 修正:在 64 位系统下,无法设置系统右键快捷菜单关联 [0501] * 修正: 当 "另存为"、并在文件名称输入框点击鼠标右键时, 弹出...

    EditPlus_3.40.683 中文版

    (完美解决方案,真正中文,不会再调出来韩文了。感谢 D4llower 等多位网友协力帮助) * 修正:在 64 位系统下,无法设置系统右键快捷菜单关联 [0501] * 修正: 当 "另存为"、并在文件名称输入框点击鼠标右键时, 弹出...

Global site tag (gtag.js) - Google Analytics