在python中生成新的随机数?

时间:2017-12-04 19:39:51

标签: python

所以我试图在python中创建这个真正非常简单的游戏,其中人输入一个数字,如果它匹配计算机生成用户的数字,则会显示一条消息,说明它有正确的数字,如果错误一条消息说它错了,现在我无法弄清楚我在这里做错了什么,因为当我运行这个时,我多次尝试不同的数字,它总是向我显示我没猜到正确数字的消息,谁能告诉我什么我在这里做错了,因为我不知道问题是什么?

import random

number = random.randint(0,10)
user_number = input()

while user_number != number:
  if user_number == number:
    print("GREAT! You guessed the right number! :)")
  else:
    print("AWW! You guessed the wrong number, try again! :)")
  input()

编辑我有一个问题,每次用户输入内容时,如何让我的脚本生成不同的数字,因为我现在拥有的数字会生成一个数字,而且这个数字永远不会改变(顺便说一句,多亏了安东vBR为这个更新版本,我稍微调整了一下):

import random

number = random.randint(0,10)
user_number = None
valid_num = [str(i) for i in range(0,10)]
random = 2

while random > 1:
while True:
    user_number = input("Enter a number between 1-10: ")
    if user_number in valid_num:
        user_number = int(user_number)
        break
    else:
        print("Not valid!")
if user_number == number:
    print("GREAT! You guessed the right number! :)")
else:
    print("AWW! You guessed the wrong number, try again! :)")

4 个答案:

答案 0 :(得分:1)

我喜欢使用此代码段,它确保用户回答以下其中一项" 0"," 1"," 2",&# 34; 3" .." 10"或者它一直要求有效的输入。

valid_num = [str(i) for i in range(11)]

while True:
    user_number = input("Enter a number between 1-10: ")
    if user_number in valid_num:
        user_number = int(user_number)
        break
    else:
        print("Not valid!")

现在到完整的代码:

import random

number = random.randint(0,10)
user_number = None
valid_num = [str(i) for i in range(11)]

while user_number != number:

    # Ask for user input
    while True:
        user_number = input("Enter a number between 1-10: ")
        if user_number in valid_num:
            user_number = int(user_number)
            break
        else:
            print("Not valid!")

    # Check if correct guess
    if user_number == number:
        print("GREAT! You guessed the right number! :)")
    else:
        print("AWW! You guessed the wrong number, try again! :)")

答案 1 :(得分:0)

代码的最后一行是input()。所有这一切都需要输入,而不是存储在任何地方。要存储它,您必须将其分配给user_number,如user_number = input()。此外,(假设您使用的是Python 3)input()返回一个字符串,而不是一个数字,因此它永远不会相等。您必须将其转换为user_number = int(input())

的数字

答案 2 :(得分:0)

它永远不会说你是正确的,因为while循环说只要输入的数字与随机数不同,它就会执行if循环。 删除while循环应该没问题。 如果你想保留它,你可以将它变成一个函数。

答案 3 :(得分:0)

你必须设计执行块(如果你在时间内必须进行缩进)

除了你的循环变得无限,因为你没有在里面提出问题,你必须把输入放在里面,并设计代码以知道它的起始位置和结束执行块