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语句怎么用在python中❷ 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
设置标志位
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论