python中“標志位”的使用



python中“標志位”的使用!!!

       在復雜的程序中,很多不同的事件都會導致程序停止運行;在這種情況下,該怎么辦呢?

例如,在游戲中,多種事件都可能導致游戲結束,如玩家一艘飛船都沒有了或要保護的城市都被摧毀了。導致程序結束的事件有很多時,如果在一條 while 語句中檢查所有這些條件,將既復雜又困難。在要求很多條件都滿足才繼續運行的程序中,可定義一個變量,用於判斷整個程序是否處於活動狀態。這個變量被稱為 標志 ,充當了程序的交通信號燈。你可讓程序在標志為 True 時繼續運行,並在任何事件導致標志的值為 False 時讓程序停止運行。這樣,在 while 語句中就只需檢查一個條件 —— 標志的當前值是否為 True ,並將所有測試(是否發生了應將標志設置為 False 的事件)都放在其他地方,從而讓程序變得更為整潔。

      下面來在前一節的程序 parrot.py 中添加一個標志。我們把這個標志命名為 active (可給它指定任何名稱),它將用於判斷程序是否應繼續運行:

prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit' to end the program. "
❶ active = True
❷ while active:
message = input(prompt)
❸ if message == 'quit':
active = False
❹ else:

print(message)

 

        我們將變量 active 設置成了 True (見❶),讓程序最初處於活動狀態。這樣做簡化了 while 語句,因為不需要在其中做任何比較 —— 相關的邏輯由程序的其他部分處理。只要變量 active 為 True ,循環就將繼續運行(見❷)。在 while 循環中,我們在用戶輸入后使用一條 if 語句來檢查變量 message 的值。如果用戶輸入的是 'quit' (見❸),我們就將變量 active 設置為 False ,這將導致 while 循環不再繼續執行。如果用戶輸入的不是 'quit' (見❹),我們就將輸入作為一條消息打印出來。

 
-------------------------------------------------------------------------------------
flag = False
name = 'luren'
if name == 'python': # 判斷變量是否為 python
  flag = True # 條件成立時設置標志為真
  print 'welcome boss' # 並輸出歡迎信息
else:
  print name # 條件不成立時輸出變量名稱
 
 
 
==========================================================================

在單層循環的退出中,使用break即能退出,那么多層循環呢?機智的人們使用flag標識符的方式,例如:

exit_flag = False
for i in range(10):
    if i <5:
        continue
    print(i)
    for j in range(10):
        print('layer2',j)
        if j == 6:
            exit_flag = True #標志位設定為True,跳出內循環
            break
    if exit_flag: #檢測標志為為True,跳出循環
        break



例子2

a=['a',1,2,3,4]
b=['b',1,2,3,4]
c=['c',1,2,3,4]
d=['d',1,2,3,4]
break_flag=0
while break_flag==0:
    y_n=input('a,yes or no:')
    if y_n == 'no':
        break
    elif y_n == 'yes':
        for i in a:
            print(i)
        while break_flag ==0:
            y_n_2=input('b,yes or no:')
            if y_n_2=='no':
                print('退出')
                break_flag=1
            elif y_n_2=='yes':
                for j in b:
                    print(j)
                while break_flag==0:
                    y_n_3=input('c,yes or no:')
                    if y_n_3 == 'no':
                        print('退出。。。')
                        break_flag=1
                    elif y_n_3 == 'yes':
                        for k in c:
                            print(k)
                        while break_flag == 0:
                            y_n_4 = input('d,yes or no:')
                            if y_n_4=='no':
                                print('退出')
                                break_flag =1
                            elif y_n_4 =='yes':
                                for n in d:
                                    print(n)

    if break_flag==1:
        break
設置標志位


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM