缩进问题Pycharm

问题描述 投票:0回答:1

我是编码和python的新手,所以我正在做在线免费课程。我应该执行的一项任务无法正常工作,显然问题是识别。这是代码:

c = 0
while c < 5:
    c += 1
    if c == 3:
        continue
        print (c)

因此,最后一行与上一行对齐,并且仅当我从最后一行删除一个标识后,代码才能正常运行。如何将其配置为自动,这样我就不必一直删除它?

pycharm
1个回答
0
投票

TLDR:通常,不,您不能自动配置它。但是,在某些特定情况下,借助于短绒毛毡,我们可以说一条语句肯定在错误的范围内。

一般情况:

没有一种编程语言可以知道您想要的语句在什么范围内。这是您(程序员)用该语言表达的内容。 Python的作用域恰好是由空格决定的,而不是像其他一些流行语言(即C / C ++ / Java / Perl)那样由花括号决定的。

考虑:

if x:
    do_y()
    do_z()

vs。

if x:
    do_y()
do_z()

两者都是合法的Python程序,并且两者在逻辑上都是正确的,这取决于应用程序。如果do_z()为真,您也许[[only想要调用x(第一个示例)。或者,您always不管do_z(),都想呼叫x(第二个示例)。只有应用程序开发人员才能决定他们想要哪个。视情况而定,您想要的那个可能随着时间的推移实际上change。因此,应该非常清楚,该决定(通常)不能自动做出。

使用文字:

但是,有时候我们只能说某些语句在错误的范围内(肯定地)(在上面的示例中的行中,永远不会到达紧接在continue之后的语句)。

您可以使用短绒棉((如pylint)来帮助解决此问题:

test.py中,您放置了您的问题代码,并给了它一个快速的字样:

(so) URSA-MattM-MacBook:stackoverflow mmessersmith$ cat test.py c = 0 while c < 5: c += 1 if c == 3: continue print(c) (so) URSA-MattM-MacBook:stackoverflow mmessersmith$ pylint test.py ************* Module test test.py:1:0: C0111: Missing module docstring (missing-docstring) test.py:1:0: C0103: Constant name "c" doesn't conform to UPPER_CASE naming style (invalid-name) test.py:6:8: W0101: Unreachable code (unreachable) ------------------------------------------------------------------ Your code has been rated at 5.00/10 (previous run: 5.00/10, +0.00)

注意,此行:test.py:6:8: W0101: Unreachable code (unreachable)。这告诉您无论程序处于什么状态,都可以

never
执行第6行。
© www.soinside.com 2019 - 2024. All rights reserved.