如果某些内容等于或小于0,我想跳过Python中的一些行。这是一个例子:
ye = input()
if ye <= 0:
#skip lines
else:
#do nothing
那我怎么能跳过线?我无能为力(我现在该怎么做),但我怎么会跳过40行?我看了谷歌,我看到的只是Python的帮助,就像一个完整的故事,几乎没用。
如果if
语句为真,重写我说的我想跳过行(特定行数(10+行)),否则我只会import time
并且{{1 }}
答案 0 :(得分:4)
1985年,当我学习帕斯卡尔时,我不得不打破这种习惯,之前我只知道过BASIC。在BASIC中,通常会测试您真正想知道的相反,然后使用GOTO
跳过您没有的代码>想要执行。
但这是20世纪70年代BASIC不是正确的结构化语言并且不支持多行IF
块的事实。 Pascal是一种适当的结构化语言(就像Python一样),因此您不需要解决方法。
简而言之,而不是:
if ye <= 0, somehow skip ahead 40 lines
# 40 lines you don't want executed when ye <= 0
你应该想:
if ye > 0:
# 40 lines you don't want executed when ye <= 0
# i.e., 40 lines you DO want executed if ye > 0
这样,if
语句的结构会为你跳过这些行;你不需要一个明确的命令来这样做。
关于将40行分解为函数的其他答案也很有帮助,但主要是因为在if
语句下有40行可能很难理解。这种方法本身并不是解决问题的方法。
答案 1 :(得分:1)
如果您需要以这种方式跳过行,我会考虑重写/重新思考您的代码。它建议将要跳过的代码放入函数中,并仅在满足某个条件时调用它。那或者你可以使用更多的条件
答案 2 :(得分:1)
看到python并不支持GOTO语句,你必须使代码模块化。如果你可以使40行代码成为一个函数,那么当值小于或等于零时你就不能运行该函数。如果你不想这样做,你可以添加一个if语句。现在看起来你想跳过~40行代码,所以你可以这样做:
if ye <= 0:
skipit = 1 #1 for 'true'#
else:
skipit = 0 #0 for 'false'#
if skipit = 0:
40linesofcode(ye)
else:
#do nothing#
您必须将要跳过的40行代码转换为函数,但它不应该太难。在将来,您应该将代码的每个方面都写成一个函数;因为这使得以后更容易使用它并进行更改/修复。
答案 3 :(得分:1)
Python是一种结构化语言,不会让你随意跳过代码行。您需要将要跳过的代码移动到单独的函数中,如下所示:
def function():
# do what you want to skip here!
pass
ye = input()
if ye > 0:
function()
else:
# You can either do nothing or you can
# do the sleep call you mentioned here.
pass
您应该考虑不执行该代码,而不是考虑跳过&#34;跳过行&#34;。函数是在结构化编程语言中创建代码块的标准方法。函数只是一个可以从多个位置执行的代码块。
def call_me():
print("You rang?")
ye = input()
if ye <= 0:
pass
else:
call_me()
注意上面的示例在call_me
时不会调用ye <= 0
函数。因此,它实际上正在跳过所有这些代码行。
但是,当您只需要else
条件的if
分支来执行某些操作时,通常,反转逻辑会更有意义。这就是我说使用if ye > 0
的原因。这表示何时您将运行call_me
而不是说明何时不运行call_me
。对于不涉及双重否定的陈述更容易推理。
答案 4 :(得分:0)
难道你不能在方法上封装那些40行吗?然后只有条件为真时才运行它。像:
def those40lines( required parameters...):
those 40 lines...
ye = input()
if ye > 0:
those40lines( parameters again...)
python AFAIK中没有标签/ GOTO