如何在没有无限循环的情况下使用while循环(python 2.7)

时间:2017-05-29 18:40:52

标签: python python-2.7

我一直在尝试用python 2.7创建一个程序。 该程序创建一个随机数。 (nlist[r]保存在list[]

如果list[0]'do''ge''gi',则只需打印list即可结束该计划。

如果list[0]'mo''yu',则while循环开始。

list[k]=='yu''mo'时,循环必须停止,打印list,并结束程序。 但这最终导致无限循环......

这是我的代码:

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

3 个答案:

答案 0 :(得分:1)

你在那里做的很常见,我的朋友。您必须更改k的值以进行循环,或添加break语句以停止循环。

答案 1 :(得分:1)

我在您的代码中做了一些更改,我将在下面解释。

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] =='do'或your_list [0] =='gae'或your_list [0] =='女孩':

这看起来更优雅。

  

如果some_list_with_those_values中的your_list [0]:

3)而不是将列表命名为 list 定义一些    变量名称。对于前 your_list

4)你也可以使用 break 标志变量,但我更喜欢在这里使用flag变量。理解它们至关重要。设置一个标志变量,其值为 1 ,并在条件更改时将其更改为 0 。这样你就可以退出while循环。

5)我不清楚你想用你的程序做什么。但是根据您的描述,这是您可能想要的工作代码。

答案 2 :(得分:0)

您需要在每个循环中增加k的值 你可以通过添加

来实现
K+=1

k=k+1