from random import randint
random_number = randint(1, 10)
guesses_left = 3
# Start of the game
while guesses_left != 0:
def guess():
guess = int(input("What is your guess?"))
if guess > 10:
print ("Insert value between 1 and 10")
guesses_left += 1
guess()
if guess == random_number:
print ("You win")
break
guesses_left -= 1
else:
print ("You lose")
我正在制作这个游戏,其中形成随机数字并且用户猜测随机数以赢得游戏。但是,我想实现一个安全性,即如果猜测超过10,那么它将打印“输入值从1到10”(参见代码)并且还在猜测中添加1。我把它变成了一个函数,这样打印消息就会一直显示,直到用户将所有的猜测从1到10完成。我在该函数中遇到错误:(
另外,如何在没有功能的情况下继续显示打印信息?我知道如何使用while循环,但是有更好的方法吗?
答案 0 :(得分:0)
您根本不需要此功能,因为您不会多次调用它。
考虑问题的好方法是程序以不知道玩家猜测是什么的状态开始。您可以将其表示为0.然后,while循环检查猜测是否为> = 1 AND< = 20。从第一次开始,它不会,循环会要求1到10之间的猜测。
答案 1 :(得分:0)
from random import randint
random_number = 10 # randint(1, 10)
guesses_left = 3
# Start of the game
while guesses_left != 0:
guess = int(input("Guess a number between 1 and 10: "))
if guess > 10:
print "(error: insert a value between 1 and 10)"
guesses_left = guesses_left - 1 #add if you want to dock them a guess for not following instructions :)
else:
if guess is random_number:
print ("You win!")
break
else:
print "Nope!"
guesses_left = guesses_left - 1
if guesses_left is 0:
print "Wah Wah. You lose."
我的代码可能比它需要的更冗长,但它可以解决问题。编写脚本的方式存在一些问题。
答案 2 :(得分:0)
这里有几点说明:
1)删除while循环之外的guess函数的定义。
2)观察缩进。它在Python中很有意义
3)我将guess函数与主代码合并,它仍然非常易读
4)如果不减少,你可以避免将guesses_left增加1
5)我真的希望你学习编程,而不是让我们为你完成你的作业。 Python可以非常强大,请继续了解它。
from random import randint
random_number = randint(1, 10)
guesses_left = 3
# Start of the game
win=False
while guesses_left>0:
guess=int(input("What is your guess?"))
if guess==random_number:
win=True
break
elif guess>10:
print("Insert value between 1 and 10")
continue
else:
guesses_left -= 1
if win:
print("You win")
else:
print("You lose")