如何使用while循环没有无限循环(python 2.7)
我一直在试图用python 2.7创建一个程序。 该程序创建一个随机数。 (nlist[r]
保存在list[]
)如何使用while循环没有无限循环(python 2.7)
如果list[0]
是'do'
或'ge'
或'gi'
,只是打印list
和程序结束。
如果list[0]
是'mo'
或'yu'
,则while
循环开始。
当list[k]=='yu'
或'mo'
,循环必须停止,打印list
,并且也结束程序。 但是,这结束了在while循环无限...
这里是我的代码:
nlist=['do','ge','gi','yu','mo']
list=[]
def playYut():
import random
r=random.randrange(0,5)
list.append(nlist[r])
playYut()
if list[0]=='do' or list[0]=='gae' or list[0]=='girl':
for i in list:
print i
else:
k=0
while list[k]:
if list[k]=='yut' or list[k]=='mo':
playYut()
for i in list:
print i
else:
for i in list:
print i
我在你的代码中做了一些改变,我将在下面进行解释。
import random
nlist=['do','ge','gi','yu','mo']
check_list = ['do','ge','gi']
loop_check_list = ['yu' ,'mo' ]
flag =1
your_list=[]
k=0
def playYut():
r=random.randrange(0,5)
your_list.append(nlist[r])
playYut()
if your_list[0] in check_list:
print list1
elif your_list[0] in loop_check_list:
while flag==1:
k+=1
playYut()
if your_list[k] in loop_check_list:
print your_list
flag=0
1)让进口声明它是很好的做法在程序的顶部声明。检查了解详细说明。
In Python, what happens when you import inside of a function?
2)代替此
如果your_list [0] == '做' 或your_list [0] == 'GAE' 或your_list [0] =='女孩:
这样看起来更优雅。
如果your_list [0]在some_list_with_those_values:
3)亦代替命名列表作为列表为它定义一些 变量名。例如your_list。
4)您也可以使用休息或标志变量但我更喜欢这里使用标志变量。了解它们至关重要。设置一个标志变量,其值为,并在条件发生变化时将其更改为。这样你可以退出while循环。
5)我不清楚你想用你的程序做什么。但是从你的描述中可以看出你可能想要的一个工作代码。
你的陈述2有点误导。 OP的声明非常好。另外,如果你打算给出一个答案,请指出'list'是一个不好的变量名称,而不是仅仅把它改成'list1' – MooingRawr
@MooingRawr谢谢你指出了man。有点糊涂了!! :) – void
这是你做有没有非常常见的错误,我的朋友。您必须更改循环的值k
或添加break
语句来停止循环。
您需要通过添加
K+=1
或
k=k+1
你是不是递增'k'增加k的值在每一个循环 你可以这样做? –