2017-05-01 48 views
1

我写了典型猜数游戏:如何在Spyder中执行简单的交互式程序?

import random 
secret = random.randint(1, 99) 
guess = 0 
tries = 0 
print("Hey you on board! I am the dreadfull pirat Robert, and I have a 
secret!") 
print("that is a magic number from 1 to 99. I give you 6 tries.") 
while guess != secret & tries < 6: 
    guess = input() 
    if guess < secret: 
     print("You! Son of a Biscuit Eater! It is too little! YOU Scurvy dog!") 
    elif guess > secret: 
     print("Yo-ho-ho! It is generous, right? BUT it is still wrong! The 
number is too large, Savvy? Shiver me timbers!") 
    tires = tries + 1 
if guess == secret: 
    print("Enough! You guessed it! Now you know my secret and I can have a peaceful life. Take my ship, and be new captain") 
else: 
    print("You are not lucky enough to live! You do not have ties. But before you walk the plank...") 
    print("The number was ", secret) 
    print("Sorry pal! This number became actually you death punishment. Dead men tell no tales! Yo Ho Ho!") 

然而Spyder的执行这一切,而不由用户输入查询号码停止,我有眼前这个输出:

嘿,你在船上!我是恐怖的海盗罗伯特,我有一个秘密! 这是从1到99的幻数。我给你6次尝试。 你不幸生活!你没有关系。但在你走板之前... 该号码是56 对不起pal!这个数字实际上成了你的死刑。死人不会告密! Yo Ho Ho!

我试着打电话给CMD - > Spyder的,有执行它(通过复制粘贴),但我得到了很多类似的错误:

打印(以下简称“数”,秘密) 文件“”,第1个打印 (“数是”,秘密)

然而,执行由线(与打印至少所有行)这行代码是没有问题的。

如何交互地执行我的代码,以便用户可以给一个号码然后游戏继续?

回答

1

几个问题与您的代码,在tires=tries+1你可能犯了一个代码错字。

其次,猜测读取一个字符串,所以你需要将猜测转换为一个int来做整数比较,使用类似guess=int(guess)

你没有看到这个的原因是因为你的while循环条件没有被执行为真,在解释器中运行guess != secret & tries < 6,你会发现条件是错误的。

相反,您应该使用and,因为这是一个逻辑运算符&是一个按位逻辑运算符(它们不相同)。

while guess != secret and tries < 6:是您应该替换的适当的代码行。

相关问题