Return调用时不显示

2024-06-01 12:29:32 发布

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

我试图让用户猜测计算机随机产生的数字。当传递返回函数时,什么也不显示。你知道吗

user = 0
result = ""
import random
print ("Welcome to Guess My Number Game")

def main():
    #user input
    computer = random.randint(1,100)
    print(computer)
    user=int(input("Guess the number:"))
    return (result)

def results(result):
    computer = random.randint(1,100)
    diff = 0
    diff = user - computer
    if diff < -10:
        result = ("Too Low")
    elif diff > 10:
        result = ("Too High")
    elif diff < 0:
        result = ("Getting warmer, but still low")
    elif diff > 0:
        result = ("Getting warmer, but still high")
    else:
        guesses = str(guesses)
        result = ('Good job, you guessed correctly in,',guesses,'guesses!')

Tags: inputdefdiffrandomresultcomputertooprint
2条回答

我假设您正试图打印results方法中的result变量

如果我上面的说法是正确的,那么你对return的作用就有误解了。return通常放在一个函数中,它将返回一些值。所以你应该把你的代码写进这个。你知道吗

computer = random.randint(1,100)
print(computer) #if you print this guessing the number will be very easy
user=int(input("Guess the number:"))
print(results(computer, user))

def results(computer, user):
   results = ""
   # computer = random.randint(1,100) #you wont need this either
   diff = 0
   diff = user - computer
   if diff < -10:
      result = ("Too Low")
   elif diff > 10:
      result = ("Too High")
   elif diff < 0:
      result = ("Getting warmer, but still low")
   elif diff > 0:
      result = ("Getting warmer, but still high")
   else:
      guesses = str(guesses)
      result = ('Good job, you guessed correctly in,',guesses,'guesses!')
   return result

你的缩进有两个问题,但是,如果我能正确理解逻辑,你可以做一些类似于下面的事情,以保持用户的猜测,直到得到一个匹配

import random

def results(val):
    guesses = 0
    while True:
        user = int(input("Guess the number: "))
        guesses = guesses + 1
        diff = user - computer
        if diff < -10:
            print("Too Low")
        elif diff > 10:
            print("Too High")
        elif diff < 0:
            print("Getting warmer, but still low")
        elif diff > 0:
            print("Getting warmer, but still high")
        else:
            print('Good job, you guessed correctly in {} guesses!'.format(guesses))
            break
    return guesses

def main():
    computer = random.randint(1, 100)
    number_of_guesses = results(computer)

>>> results()
Guess the number: 2
Too Low
Guess the number: 10
Too Low
Guess the number: 50
Too High
Guess the number: 40
Too High
Guess the number: 30
Getting warmer, but still high
Guess the number: 25
Getting warmer, but still low
Guess the number: 26
Getting warmer, but still low
Guess the number: 28
Getting warmer, but still low
Guess the number: 29
Good job, you guessed correctly in 9 guesses!
9

相关问题 更多 >