【问题标题】:Whats wrong with this guess the number game code?这个猜数字游戏代码有什么问题?
【发布时间】:2014-11-16 16:45:49
【问题描述】:
#Guess my number

import random

print ("Welcome to the guess my number game")
print ("***********************************")
print ("You will choose a random number between 1-100")
print ("and the computer must guess what it is.")
print ()

number = int(input("Please choose a number between 1-100: "))
guesses = 0
guess = 0

while guess != number:
    guess = ("My guess is: ",random.randint(1,100))
    guesses=guesses+1

    if guess > number:
        print("Lower...")
        continue

    elif guess < number:
        print ("Higher...")

    else:
        print ("Well done you have guessed my number and it took you")          print ("guesses,"guesses!")

基本上你选择一个数字,计算机必须不断猜测,直到它正确,但我似乎无法让它工作。

【问题讨论】:

  • 怎么了?你遇到了什么错误??
  • 代码中至少有两个错误; guess 是一个元组,但您尝试将其与整数进行比较,您永远不会在循环中要求新的猜测。您遇到的问题最多的是哪一个?
  • 我不太确定,但计算机说它与此行有关:
  • guess = ("我的猜测是:",random.randint(1,100))
  • 同样在最后一个打印语句print ("guesses,"guesses!") 中有一个错误。我认为它会进入无限循环,因为while guess != number: 始终为真,并且取决于生成的数字并卡在任一条件中。

标签: python loops if-statement random while-loop


【解决方案1】:

您应该学习基本的调试技能。调试此程序的最简单方法是添加 print() 语句以查看变量中的值。

您的基本问题是您将guess 设置为具有两个值的元组:字符串"My guess is: " 和1 到100 之间的随机数。您可能打算将guess 设置为仅数字。

你可能想要这样的东西:

guess = random.randint(1,100)
print("My guess is: {}".format(guess))

这会让你更近一步。然后,您将需要弄清楚如何更改程序以缩小猜测范围。如果你有这方面的问题,也许你应该找人辅导一下。

【讨论】:

  • 计算机应该不断猜测 1-100 之间的随机数,直到找到正确的数字。所以猜测必须不断变化,直到它正确为止。
  • 您没有将guess 设置为数字。您将其设置为包含两个值的tuple:字符串和数字。这是不对的。
  • 我继续为您拼写出来。我鼓励你接受一些辅导,或者通过在线 Python 教程来学习,例如:learnpythonthehardway.org
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-09
  • 2023-03-20
  • 2021-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多