如果某事< = 0我想跳过大约30 - 40行

时间:2015-05-16 02:35:20

标签: python

如果某些内容等于或小于0,我想跳过Python中的一些行。这是一个例子:

ye = input()
if ye <= 0:
    #skip lines
else:
   #do nothing

那我怎么能跳过线?我无能为力(我现在该怎么做),但我怎么会跳过40行?我看了谷歌,我看到的只是Python的帮助,就像一个完整的故事,几乎没用。

如果if语句为真,重写我说的我想跳过行(特定行数(10+行)),否则我只会import time并且{{1 }}

5 个答案:

答案 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