Python 3.x 猜谜游戏-如何让它更好?
自从我问了最后一个问题后,我有点进步了。我希望没有更多的语法问题。无论如何 我做这个练习是为了创建一个猜谜游戏,这个游戏会生成数字并要求用户输入。我可以让它工作,但我不喜欢我的代码 问题是,在我创建的函数中,我使用函数外部的变量。据我所知,就编写好代码而言,这并不好。有人能建议我怎样才能做得更好吗?我是否应该一起放弃这个功能?我想以某种形式保存它。提前谢谢Python 3.x 猜谜游戏-如何让它更好?,python-3.x,function,Python 3.x,Function,自从我问了最后一个问题后,我有点进步了。我希望没有更多的语法问题。无论如何 我做这个练习是为了创建一个猜谜游戏,这个游戏会生成数字并要求用户输入。我可以让它工作,但我不喜欢我的代码 问题是,在我创建的函数中,我使用函数外部的变量。据我所知,就编写好代码而言,这并不好。有人能建议我怎样才能做得更好吗?我是否应该一起放弃这个功能?我想以某种形式保存它。提前谢谢 import random counter = 0 def result_check(num): if guess == rng
import random
counter = 0
def result_check(num):
if guess == rng_number:
print("Bravo")
else:
print("Wrong!, The number is {0}".format(rng_number))
while True:
reply = input("Do you want to play ? Y/N: ")
rng_number = random.randint(0,9)
counter += 1
if reply == "Y":
guess = int(input("Select a digit between 0 and 9: "))
result_check(guess)
elif reply == "N":
print("You played {0} times".format(counter))
break
您的代码可以正常工作,但是有几件事我需要更改。首先,如果您想使用n显式检查函数,那么您应该将guess和rng_数传递给两个单独的参数。按照目前的方式,您将猜测传递给参数num,但num不用于检查函数。函数正在查看调用它的范围,并从中获取猜测和随机数。这是我要改变的第一件事——显式地将变量传递到函数中 尽管这么说,但对我来说,使用函数似乎很愚蠢!因为这里只有一个if…else语句,所以将它移到主代码中似乎更简单。通过这样做,您就不需要将参数传递到函数中,并且通过删除几行代码来整理代码,这总是很好的 下面是将函数中的代码移到main部分的代码。我还删除了字符串格式中不必要的0
如果您的代码可以工作并且是完整的,但是可以改进,那么应该改为进行代码审查。此站点主要用于修复损坏的代码。@Carcigenicate由于rng_编号与guess一起定义在脚本的主体中,它是一个全局变量,因此可以从任何其他地方(包括内部函数)访问它-请看一看,这比我能更好地解释它!这是有道理的,它确实看起来像功能在这里是不必要的。这个社区太棒了,谢谢你的洞察力:@crokedteeth请投票并接受,然后表达你的感激之情!我不知道“接受”这个词。想想看:
import random
counter = 0
while True:
reply = input("Do you want to play ? Y/N: ")
rng_number = random.randint(0,9)
counter += 1
if reply == "Y":
guess = int(input("Select a digit between 0 and 9: "))
if guess == rng_number:
print("Bravo")
else:
print("Wrong!, The number is {}".format(rng_number))
elif reply == "N":
print("You played {} times".format(counter))
break