2014-12-23 66 views
0

如何让循环工作,以便它会在你正确的时候结束并且如果你弄错了再问这个问题? 当我猜错两次或更多次时,无论发生什么事,总会说错。虽然循环不打印正确的猜字游戏

import random; 
import sys; 
x = random.randint(1, 100); 
print(x); 
guess = int(input("Guess a number 1 to 100")); 
if guess == x: 
     print("correct"); 
     sys.exit() 
while guess != x: 
    print("wrong"); 
    int(input("Guess a number 1 to 100")); 
    print(x); 
    if guess == x: 
     print("Correct"); 
     sys.exit() 

另外什么函数记录它循环的次数。例如,如果我猜错了10次,然后我要打印,我打进了10

+0

我真的建议在行尾加分号 - 这是不必要的,更糟糕​​的是,一旦你习惯于阅读Python代码,这会让人感到困惑(你开始期待它是一个冒号,你经常看到它在一行的末尾) – zehnpaard

回答

2

你忘了周围的分配,第二次在该guess变量

while guess != x: 
    print("wrong"); 
    guess = int(input("Guess a number 1 to 100")); #look here 
    print(x); 
    if guess == x: 
     print("Correct"); 
     sys.exit() 
2

失踪“的猜测=”循环中的输入行。要记录次数,只需在循环中增加一个变量即可。

[附录]

import random; 
import sys; 
x = random.randint(1, 100); 
print(x); 
count = 1 
guess = int(input("Guess a number 1 to 100: ")); 
while guess != x: 
    count += 1 
    guess = int(input("Wrong\nGuess a number 1 to 100: ")); 
print("Correct - score = "+str(100./count)+"%"); 
sys.exit(0) 
+0

你可以更具体的增量变量部分? – user3370908

+0

进口随机; import sys; x = random.randint(1,100); print(x); count = 1 guess = int(input(“猜数字1至100:”)); while guess!= x: count + = 1 guess = int(input(“Wrong \ nGuess a number 1 to 100:”)); print(“Correct - score =”+ str(100./count)+“%”); sys.exit(0) – dwn

0

其实你应该改变你的代码:

import random 
x=random.randint(1,100) 
score=0 
while True: 
    guess=int(input("Guess a number 1 to 100: ")) 
    if guess==x: 
     print ("Correct!") 
     break 
    else: 
     print ("Not correct!") 
     score+=1 
print ("your answers was wrong {} times.".format(score)) 

更好的语句,少的代码。干杯!

+0

也是什么函数记录它循环的次数。例如,如果我猜错了10次,那么我想打印出我得分为10. – user3370908

+0

定义一个等于零的变量并在错误答案后升级此变量的值,然后在_while_循环之外打印该变量 – GLHF

+0

如果此答案已解决你的问题,请检查它作为答案。 – GLHF