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

How to exit only if block in python and not the entire program

这里我想退出if块,但不想使用sys.exit(),因为它将终止程序。我在末尾有几行要执行,因此只想退出if块。无法使用break,因为它标记错误"break outside loop"

--编辑--在这里,我希望程序在"if(retry==3)"第55行退出该块,并在末尾打印这些行。但是,在使用sys.exit()完全退出程序之前不会发生这种情况。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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.')


你什么都不需要。执行if块内的代码,脚本将在if块后运行代码。


简单回答你的问题对你没有真正的帮助。因此,让我先添加这个链接,在这里您可以有效地使用应用程序学习Python,您将需要它。

这么说,请知道if不是一个循环,所以它不会重复,继续进一步的代码只需记住停止缩进即可。IE:

1
2
3
if some_condition:
    # do stuff
# stop indent and do some more stuff

希望这是有帮助的。


我想我明白你的意思了。

要在执行if条件之后执行某个操作吗?所以,创建一个子任务,并调用它!

1
2
3
4
5
6
7
8
9
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()