在Python中无限循环

时间:2015-08-23 14:41:30

标签: python while-loop

我获得了一个无限的while循环在python这里是我的滚动骰子的代码 它一遍又一遍地滚动骰子 守则:

#!usr/bin/python
# -*- coding: utf-8 -*-
import random
import time
import sys
print ("")
print ("This is a dice rolling simulator ")
x=raw_input("press Enter to launch the dice ")
def dice():
    print("\nRolling the dice...\n")
    time.sleep(1)
    n=random.randint(1, 6)
    if n == 1:
        print '''
1
            '''
    if n == 2:
        print '''

            '''
    if n == 3:
        print '''
3
            '''
    if n == 4:
        print '''
4
            '''
    if n == 5:
        print '''
5
            '''
    if n == 6:
        print '''
6
            '''

dice()
x=raw_input("press Enter to restart the or type q to quit")
while x!= ("q"):
    dice()
if x== ("q"):
        print ("see you later ")

4 个答案:

答案 0 :(得分:2)

您没有在while循环中读取输入。您应该在while循环中读取它,因此在每次迭代中您都可以更改它,否则它将始终执行相同的计算。

你循环应该看起来像这样:

x=raw_input("press Enter to restart the or type q to quit")
while x!= ("q"):
    dice()
    x=raw_input("press Enter to restart the or type q to quit")

答案 1 :(得分:2)

你需要在while循环中获取用户输入...而不是

x = raw_input("press Enter to restart the or type q to quit")
while x != ("q"):
    dice()

尝试:

x = raw_input("press Enter to restart the or type q to quit")
while x != ("q"):
    dice()
    x = raw_input("press Enter to restart the or type q to quit")

答案 2 :(得分:1)

你必须将raw_input()函数放在while循环中的第40行。

x=raw_input("press Enter to restart the or type q to quit")
while x!= ("q"):
    dice()
    x=raw_input("press Enter to restart the or type q to quit")

答案 3 :(得分:0)

所有告诉您复制代码的答案都很糟糕。 Pythonic解决方案

while True:
    dice()
    x = ...
    if x == 'q': break

在这种情况下,您也可以在开头设置x='',但通常情况下,退出其他地方的循环没有任何问题。