簡體   English   中英

Python代碼中的奇怪縮進

[英]Strange indentation in Python code

我收到了一些Python代碼來維護。 只有當我修改內部for循環的內部時,它怎么可能工作以及為什么它會與unindent錯誤崩潰?

        for m in range(len(Model)):
        if param==1:
            m=m-1

            parFlag = 0
            for s in range(len(PSets)):
                if Parameter.lower() in self._Sets._P_ModelVars[Model[m]][PSets[s]]:
                    parFlag = 1

當我在這里輸入它時,它看起來更奇怪:

在此輸入圖像描述

我認為它可能與標簽有關,但我不太了解它們,除非我盡可能避免它們。

實際上,代碼混合了標簽和空格:

>>> from pprint import pprint
>>> pprint('''\
...                     for m in range(len(Model)):
...                 if param==1:
...                     m=m-1
... 
...                 parFlag = 0
...                 for s in range(len(PSets)):
...                     if Parameter.lower() in self._Sets._P_ModelVars[Model[m]][PSets[s]]:
...                         parFlag = 1
... '''.splitlines())
['    \t\tfor m in range(len(Model)):',
 '\t\t    if param==1:',
 '\t\t    \tm=m-1',
 '',
 '        \t    parFlag = 0',
 '        \t    for s in range(len(PSets)):',
 '\t                if Parameter.lower() in self._Sets._P_ModelVars[Model[m]][PSets[s]]:',
 '\t                    parFlag = 1']

注意\\t\\t所有組合 每行開頭的字符。

一個好的文本編輯器將允許您用空格替換選項卡,還可以設置創建新縮進時應使用的樣式。 Python樣式指南建議您只使用空格。

您可以通過使用-tt命令行開關運行代碼來檢測空格和制表符的混合位置:

python -tt yourscript.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM