我是编码和python的新手,所以我正在做在线免费课程。我应该执行的一项任务无法正常工作,显然问题是识别。这是代码:
c = 0
while c < 5:
c += 1
if c == 3:
continue
print (c)
因此,最后一行与上一行对齐,并且仅当我从最后一行删除一个标识后,代码才能正常运行。如何将其配置为自动,这样我就不必一直删除它?
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行。