【问题标题】:Are there any suggestions to improve my code (without decorators)? [closed]有什么建议可以改进我的代码(没有装饰器)? [关闭]
【发布时间】:2019-09-16 19:39:05
【问题描述】:

代码是关于用户试图猜测 1 到 10 之间的数字

from random import randint

answer = None
random_number = randint(1, 10)

下面的代码块强制用户输入一个整数并返回它的值

def ask_int_number():
    try:
        num_guess = int(input("Pick a number from 1 to 10: ")) 
    except ValueError as err:
        num_guess = None
        print("You must enter an integer!")
        print(err)

    return num_guess

检查数字是否满足游戏条件
1- 1 到 10 之间的数字
2-如果小则太低,如果更大则太高,如果相等则正确

def check_number(guess):
    if num_guess in range(1, 11):
        if num_guess < random_number:
            print("Too low!")
            return False
        elif num_guess > random_number:
            print("Too high!")
            return False
        else:
            print("Correct!")
            return True
    elif type(num_guess) is int:
        print("Number must be between 1 and 10")

    return False

检查用户是否希望继续播放

def check_answer():
    answer = input("Play again? Y/N\n")
    answer = answer[0].lower()
    if answer not in ("y", "n"):
        print("Please answer by 'Y' or 'N'")
        return False

    return answer

运行游戏的功能

def run_game():
    while answer != "n":
        num_guess = ask_int_number()
        if not check_number(num_guess):
            continue
        answer = check_answer()
            if answer == "y":
            random_number = randint(1, 10)
run_game()

【问题讨论】:

  • 您好,我是编程新手。我正在上 Python 的第二门课程。这是一个简单的猜数字游戏(从 1 到 10),一切正常。但是,我想看看是否有关于程序结构和控制流程的任何提示或说明。谢谢。
  • 如果您的代码正在运行并且您想提高其可读性/性能——那么有一个特殊的地方称为codereview.stackexchange.com,但无论哪种方式,您都需要提供您的代码的描述没有
  • 我希望格式现在更好。我是编程新手,并且在社区中很活跃。但是,随着时间的推移,我将了解标准。谢谢大家的留言和帮助。

标签: python python-3.x


【解决方案1】:

有很多更简洁的方法可以做到这一点,但这里有一个快速的方法:

import random

num = []


def ran_gen():
    global num
    for x in range(1):
        num = random.randrange(0, 10)
    number_guess()


def number_guess():
    print('''

    Guess a number between 1-10

    ''')
    while True:
        try:
            guess = int(input(':>  '))
            if guess == num:
                print('You guessed correct!')
                exit()
            if guess != num:
                print('That\'s not the number, guess again')
        except ValueError:
            print('That is not a number')


ran_gen()

【讨论】:

  • 非常感谢。您的贡献非常有见地且很有帮助。它肯定会帮助我改进我的方法以及我如何构建我的程序。很明显,有很多我不需要使用的代码和条件。谢谢。
猜你喜欢
  • 2016-04-03
  • 2014-04-09
  • 2012-05-11
  • 1970-01-01
  • 2018-02-19
  • 2014-01-26
  • 2018-12-13
  • 1970-01-01
  • 2018-12-25
相关资源
最近更新 更多