如何在python中阻止而不是整个程序

时间:2017-07-07 20:21:01

标签: python python-3.x

这里我想退出if块但不想使用sys.exit(),因为它将终止程序。我有几行要在最后执行,因此只想退出if块。 不能使用break来标记错误"打破外部循环"

- Edited-- 在这里我希望程序退出块#34; if(retry == 3)" #line 55并在末尾打印行。然而,直到使用sys.exit()完全退出程序

才会发生
import random
import sys

loop = ''
retry = 0
loop = input('Do u want to play lottery ? yes/no : ')
if loop !='yes':
    print('Thank you!! visit again.')
    sys.exit()
fireball = input('Do you want to play fireball ? yes/no : ')

lotto_numbers = sorted(random.sample(range(0,4),3))
fireball_number = random.randint(0,3)


while loop == 'yes':

    user_input1 = int(input('pls enter the first no: '))
    user_input2 = int(input('pls enter the second no: '))
    user_input3 = int(input('pls enter the third no: '))
    print ('your numbers are : ' , user_input1,user_input2,user_input3)

    def check():
        if lotto_numbers != [user_input1,user_input2,user_input3]:
            return False

        else:
            return True

    def fbcheck():
        if lotto_numbers == [user_input1,user_input2,fireball_number]:
            return True
        elif lotto_numbers == [fireball_number, user_input2, user_input3]:
            return True
        elif lotto_numbers == [user_input1, fireball_number, user_input3]:
            return True
        else:
            return False

    retry += 1    
    result=check()
    if (result == True):
        print ("Congratulations!! You won!!")
    else:
        print ("Oops!! you lost.")

    if (fireball == 'yes'):
        fb_result=fbcheck()
        if (fb_result == True):

            print ("Congratulations, You won fireball!!")
        else:
            print ("Sorry you lost fireball.")
    print ('No of retries remaining : ' , (3 - retry))
    if (retry == 3):

        sys.exit()


    loop=input('Do you want to try again? yes/no : ')
    continue
else:

    pass

print ("Winning combo : ",lotto_numbers)
if (fireball == 'yes'):
    print ('fireball no : ' , fireball_number)
print('Thank you!! visit again.')

3 个答案:

答案 0 :(得分:3)

你根本不需要任何东西。 if块内的代码将执行,脚本将在if块之后运行代码。

答案 1 :(得分:2)

简单回答你的问题并不能真正帮助你......所以请先让我添加link,你可以用应用程序有效地学习python,你需要它。

话虽如此,请知道if不是一个循环所以它不重复,继续进一步的代码只记得停止缩进,这就是全部。
即:

if some_condition:
    # do stuff
# stop indent and do some more stuff

希望这有用。

答案 2 :(得分:1)

我觉得我很愿意。

你想在执行if条件后执行某些操作吗?所以,创建一个子任务,然后调用它!

def finish_program():
  print("something")
  a = "foo"
  print("finish program")

loop = input('Do u want to play lottery ? yes/no : ')
if loop!='yes':
    print('Thank you!! visit again.')
    finish_program()