【问题标题】:Program that keeps running until user types a word在用户输入单词之前一直运行的程序
【发布时间】:2019-09-30 17:03:00
【问题描述】:

生成一个介于 1 和 9(包括 1 和 9)之间的随机数。让用户猜数字,然后告诉他们猜的太低、太高还是完全正确。 (_提示:记得使用第一个练习中的用户输入课程

附加:

让游戏继续进行,直到用户输入“退出” 记录用户的猜测次数,并在游戏结束时打印出来。

我将我的程序分为三个功能

import random

# function to generate random number between 1 and 9
def generate():
    cpu_number=random.randint(1,9)
    print(cpu_number)

# function to input player guess
def player_guess():
    player_number=input('Digit a number between 1 and 9\n')

#function to keep asking the player the value unless he writes exit. Also return wrong and right guesses
def game():
    right_guesses=0
    wrong_guesses=0
    while player_guess()!= 'exit':
        if player_guess() > generate():
            print('Higher value than the value generated!')
            wrong_guesses += 1
        elif player_guess() < generate():
            print('Lower value than the value generated!')
            wrong_guesses += 1
        else:
            print('You have guessed the correct value!!!!')
            right_guesses += 1
    print('You have entered',right_guesses,'guesses and',wrong_guesses,'guesses')
    return right_guesses,wrong_guesses

print(generate())
print(player_guess())
print(game())

我的程序没有运行 if 语句。如果我输入 exit,它也不会停止

【问题讨论】:

  • player_guess()返回值。

标签: python if-statement while-loop


【解决方案1】:

player_guess 不会为game 中的循环返回任何响应。此外,每个所需输入似乎不止一次调用它。

【讨论】:

  • 你建议我应该怎么做?
【解决方案2】:
import random

# function to generate random number between 1 and 9
def generate():
    return random.randint(1,9)

# function to input player guess
def player_guess():
    return input('Digit a number between 1 and 9\n')


#function to keep asking the player the value unless he writes exit. Also return wrong and right guesses
def game():
    right_guesses=0
    wrong_guesses=0
    while True:
        guess = player_guess()
        if guess == 'exit':
            break

        if int(guess) > generate():
           print('Higher value than the value generated!')
           wrong_guesses += 1
        elif int(guess) < generate():
            print('Lower value than the value generated!')
            wrong_guesses += 1
        else:
            print('You have guessed the correct value!!!!')
            right_guesses += 1

    print('You have entered', right_guesses,'correct guesses and', wrong_guesses,'wrong guesses')
    return right_guesses, wrong_guesses

game()

【讨论】:

  • 为什么我不能说 while player_guess()!='exit' 而另一件事为什么你说guess=player guess() 两次?
  • 我有一个和你类似的代码,它运行一个无限循环
  • 唯一不同的是我在while循环之前写了guess = player_guess()
  • 但是想象一下。如果我在 de 之前在变量中存储和调用我的函数,而为什么程序运行无休止的打印?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-04
  • 1970-01-01
相关资源
最近更新 更多