Python 我该如何改进这一点?
我目前正在自学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
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只用于测试。