python中的累加器

2024-06-01 15:55:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我要做一个累加器,计算用户用来猜测随机数的条目数。我已经计算出了所有while语句,但我无法计算它占用了多少条条目。谢谢你的帮助!在

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!")
        number = input("Your guess: ")
        number = int(number)
    if number < secretNumber:
        print("Too low!")
        number = input("Your guess: ")
        number = int(number)
while number == secretNumber:
    print("You got it in",tries,"tries")
    break

我需要帮助的部分是在休息后实现tries累加器


Tags: 用户numberinputyourif条目randomint
3条回答

如果你弄错了,你可以增加尝试次数:

...
while number != secretNumber:
    tries += 1
    if number > secretNumber:
        print("Too high!")
...

另外,在结尾处,而不是这样:

^{pr2}$

你可以使用这个:

print("You got it in",tries,"tries")

因为只有你把号码弄对了,才能走到这一步。在

另一件事,尝试最初应该等于0,没有人,因为一开始你尝试了0次,而不是1。在

你想问的第一件事是当你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来帮助调试代码。在

把线放好

tries += 1

在循环中-这一行将tries变量增加1。在

我还从if语句中删除了它的一部分,从而缩短了它的长度,并删除了第二个while循环(因为循环总是在没有理由放循环的情况下发生):

^{pr2}$

相关问题 更多 >