Python 我该如何改进这一点?

Python 我该如何改进这一点?,python,Python,我目前正在自学Python,这是我的第一个程序。我正在做一些简单的项目,这样我可以提高。希望听到关于这一点的反馈 import random print("There is a number between 1 and 100 guess it and you will win a price : ") def guess(): # A simple guess game. random_number = random.randint(1, 5) flag = Tr

我目前正在自学Python,这是我的第一个程序。我正在做一些简单的项目,这样我可以提高。希望听到关于这一点的反馈

import random

print("There is a number between 1 and 100 guess it and you will win a price : ")


def guess():
    # A simple guess game.
    random_number = random.randint(1, 5)
    flag = True
    user_guess = []

    while flag:

        user_number = input("Enter the number : ")

        user_guess.append(user_number)

        if int(user_number) < random_number:
            print("You have to go higher")

        elif int(user_number) > random_number:
            print("You have to go lower ")

        else:
            flag = False
            print("Congrats you win !!! \nThe numbers of guesses before you won : ")
            print(len(user_guess))


guess()

while True:
    play_again = input("Do you like to play again ? : (y/n): ")
    if play_again == 'y':
        guess()
    else:
        print("Thank you for playing have a nice day!!! ")
        break
如果用户输入无效的非数字字符,程序将引发异常。用于避免此类情况。 每次要将用户_数与其他整数进行比较时,将其转换为整数既昂贵又无聊。将其转换一次并重新分配给用户_编号。 国旗是不必要的。正确时使用,需要时中断。 保留一个完整的列表对象只是为了计算用户输入,这有点过分了。在我的示例中使用一个整数计数并使用它。 打印值介于1和100之间,但程序会创建一个介于1和5之间的随机整数。我不确定您这样做的意图,也许是为了调试,但我认为这是一个小错误。 一个小建议,移动print如果有一个介于1和100之间的数字,猜测它,您将赢得一个价格:对于guess函数,因为函数声明自己的用途更有意义。 下面是我将如何对guess函数进行这些更改:

def guess():
    print("There is a number between 1 and 100 guess it and you will win a price : ")
    # A simple guess game.
    random_number = random.randint(1, 100)
    # flag = True obsolete
    count = 0
    while True:
        user_number = input("Enter the number : ")
        if (user_number.isdigit()):
          user_number = int(user_number)
        else:
          print("Invalid:")
          continue
        count += 1
        if user_number < random_number:
            print("You have to go higher")
        elif user_number > random_number:
            print("You have to go lower ")
        else:
            print("Congrats you win !!! \nThe numbers of guesses before you won : ")
            print(count)
            break

通过一些工作,这可能适合于代码审查,但您需要更清楚地了解您的目标,数字不应该在1到100之间吗?随机数=random.randint1,5@SilverSlash这样测试比较容易,这就是为什么它是random_number=random.randint1,5谢谢你,random_number=random.randint1,5只用于测试。