你想问的第一件事是当你print tries时,你得到了什么?
实际上,你会发现你总是得到1。在
因为,你没有增加。你没有添加,因为用户一直在猜测。在
通常,您可以为每个猜测编写tries = tries + 1。在tries = 1
while number != secretNumber:
if number > secretNumber:
print("Too high!")
tries = tries + 1 # here is the addition
number = input("Your guess: ")
number = int(number)
if number < secretNumber:
print("Too low!")
tries = tries + 1 # here is the addition
number = input("Your guess: ")
number = int(number)
while number == secretNumber:
print("You got it in",tries,"tries")
break
这个代码仍然有一些问题。第二个循环没有意义。循环听起来像循环。它一直在运行,直到满足某个条件或有人(你)打断它并告诉它退出。在
如果用户找到了号码,那么while number !- secretNumber将变成{}对吗?
它将退出第一个循环。因此,您可以跳过第二个循环并祝贺用户。在
另一个小问题是双if语句。
if语句代价高昂。计算机必须测试才能猜对。但无论哪种方式,都有不同的方法来处理多种情况。在
^{pr2}$
如果number > secretNumber是{},那么理论上就不需要测试{}。它通过调整if .. elif .. else使代码更干净,逻辑上更合理import random
secretNumber = random.randint(1,100)
secretNumber = int(secretNumber)
print("Guess a number between 1 and 100!")
number = input("Your guess: ")
number = int(number)
tries = 1
while number != secretNumber:
if number > secretNumber:
print("Too high!")
tries = tries + 1 # here is the addition
number = input("Your guess: ")
number = int(number)
elif number < secretNumber:
print("Too low!")
tries = tries + 1 # here is the addition
number = input("Your guess: ")
number = int(number)
print("You got it in",tries,"tries")
# another way to print is
# print("You got it in %s tries" % tries)
# print("You got it in {t} tries".format(t=tries))
对于初学者,请使用print来帮助调试代码。在