【问题标题】:Guess a number using python使用python猜数字
【发布时间】:2018-10-14 12:50:48
【问题描述】:

我需要一个使用while、for和if循环的python程序:

# initial print statement after setting a random

A secret random integer between 100 and 200 has been generated.
Can you guess what it is?

Make a guess between 100 and 200: 180
Wrong number! The secret number is less than 180.

Make a guess between 100 and 179: 140
Wrong number! The secret number is larger than 140.

Make a guess between 141 and 179: 130
Invalid input! Please make a guess between 141 and 179.

Make a guess between 141 and 179: 155
Wrong number! The secret number is larger than 155.

Make a guess between 156 and 179: 162
Congratulation! You got the right number.

应该在 100 到 200 之间生成一个随机数,并且每次从用户那里得到输入后范围应该动态变化

代码

from random import *

rand = int(randint(100,200))
usr_inp = int(input("Enter a number between 0 and 100: "))
low_range = 0
up_range = 0

if usr_inp != rand:
    for i in range(int(low_range), int(up_range)):
        if usr_inp > rand:
            print("Wrong number! The secret number is lesser than ", usr_inp)
            up_range = usr_inp
        elif usr_inp < rand:
            print("Wrong number! The secret number is larger than ", usr_inp)
            low_range = usr_inp
        else:
            print("Invalid Input")
else:
    print("Congratulation, you got the right number")

【问题讨论】:

  • random 模块应该有帮助
  • 任何代码都会让我们更容易猜出问题
  • 嗨 Venkata,到目前为止,您尝试过什么?你能分享任何代码sn-p吗?这对我们有帮助。另外,阅读random 模块和循环结构。 (一个while循环应该在这里完成工作)
  • @YuvrajJaiswal 我已经添加了代码..

标签: python python-3.x


【解决方案1】:

您不需要遍历范围内的所有数字。

import random
upper = 200
lower = 100
num = int(random.randrange(lower,upper))
print(num)
usr_inp = int(input("Enter a number between " + str(lower) + " and "+ str(upper) + ": "))
while(usr_inp != num):
    if(num > usr_inp):
        lower = usr_inp
    elif(num < usr_inp):
        upper = usr_inp
    usr_inp = int(input("Enter a number between " + str(lower) + " and "+ str(upper) + ": "))

print("Congratulation, you got the right number")

【讨论】:

  • 感谢 Yuvraj。不知何故,我自己尝试并带来了预期的结果..
【解决方案2】:

这是一种方法,但没有任何 for 循环:

import random

running = True
answer = random.randint(100, 200)
print("A secret random integer between 100 and 200 has been generated.\nCan you guess what it is?")
low = 100
high = 200

while running:
    usr_inp = int(input("Make a guess between "+str(low)+" and "+str(high)+": "))
    if usr_inp < low or usr_inp > high:
        print("Invalid input! Please make a guess between "+str(low)+" and "+str(high)+": ")
    elif usr_inp < answer:
        print("Wrong number! The secret number is larger than "+str(usr_inp)+".")
        low = usr_inp + 1
    elif usr_inp > answer:
        print("Wrong number! The secret number is less than "+str(usr_inp)+".")
        high = usr_inp - 1
    elif usr_inp == answer:
        print("Congratulations! You got the right number.")
        running = False

【讨论】:

    猜你喜欢
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 2021-04-03
    • 2013-10-09
    • 2015-08-11
    • 2018-08-19
    相关资源
    最近更新 更多