2017-07-28 78 views
-2

所以我一直试图在python中创建一个基本的文本游戏,并且我使用这段代码来不断生成随机数字,以便在某些函数中使用来决定玩家被破坏,玩家被攻击等:while循环在python中初始代码不可访问

rng = random.randint(0,100) 
    while True: 
      rng = random.randint(0,100) 

实际显示给用户的,它要求如果玩家想打我的第一行代码,就不会当我把循环运行在我的程序开始时生成随机数字。 PyCharm说,代码无法访问。我该如何解决这个问题?下面是该行,供参考:

game = raw_input("Would you like to play? Y/N\n") 

当我运行程序时,除非我取出循环,否则屏幕上不会显示任何内容。对不起,如果答案是显而易见的,我只在python上工作了很短的时间。

+1

从我可以看,你的循环是无限的。真是永远是真的,因此程序将进入循环,永远不会爆发。 – Carter

+0

'当我运行程序时屏幕上没有显示,除非我取出循环。'然后取出循环。 –

+0

“我正在使用此代码来不断生成随机数” - 您是否有这样的印象:Python会在后台运行此循环,不断替换“rng”的值,而其他代码继续执行其他操作?这不是如何工作的,即使你经历了这个工作来实现这个循环与其他代码同时运行,管理随机数也是一种可怕的方式。 – user2357112

回答

0

正如所暗示的那样,您的while循环将永远运行并且没有任何机制来打破while循环。

while True: 
    # do something 

这永远不会停止,因为while环路有效地做这个测试:

while True == True: 
    # do something 

如前所述,你最好做这样的事情:

game = raw_input("Would you like to play? Y/N\n") 

# do stuff 
# AND NOW, simulating some of the items you mentioned... 

if random.randint(0, 100) > 70: 
    # enemy attacks 

if random.randint(0, 100) > 50: 
    # player experiences damage