import random
random_number = random.randint(1, 15)
guess = int(input("What do you think my number is? "))
tries = 1
while guess != random_number:
tries = tries + 1
retry = int(input("You got it wrong you're welcome to try again: "))
if retry == random_number:
print(f"You got it right in {tries} tries ")
break
if guess == random_number:
print("You got it right on your first try are you a god?")因此,在这篇文章中,我考虑了前面告诉我的Python的一些命名约定(尽管我在这里没有使用函数,因为我仍然在尝试如何在变量上实现它们)。我也花了时间学习如何导入,尽管我对.randint()的使用几乎没有触及表面,这对我来说是个很大的挑战。我也很难弄清楚如何阻止while循环在while循环的每次运行中重复第8行。我认为它一直在重复,因为从技术上来说,我猜想!= random_number,所以我在其中添加了一个中断,因为我认为,一旦猜对了,添加一个中断将阻止while循环打印出第一个字符串(尽管这可能不是它工作的原因,但如果您有一个答案,我很想了解它为什么工作),我也意识到如果我使用一个函数而不是猜测变量,整个过程可能会更简单,但至少我现在知道了。
编辑:我读过一些人们一直在说的话,我真的很感激他们的帮助和崩溃,尤其是为什么休息有效。
发布于 2023-03-02 07:42:03
您需要break语句的原因是,变量guess从未在用户第一次输入之后被修改。如果将用户的猜测分配给guess变量,则不需要break。
import random
random_number = random.randint(1, 15)
guess = int(input("What do you think my number is? "))
tries = 1
while guess != random_number:
tries = tries + 1
guess = int(input("You got it wrong you're welcome to try again: "))
if guess == random_number:
print(f"You got it right in {tries} tries ")
if guess == random_number:
print("You got it right on your first try are you a god?")现在,循环条件将停止循环。但是,if循环之后的while语句将始终打印消息,因为此时guess == random_number始终为真。我们需要改变if条件。由于消息与用户在第一次尝试时的猜测有关,所以让我们使用tries变量。
import random
random_number = random.randint(1, 15)
guess = int(input("What do you think my number is? "))
tries = 1
while guess != random_number:
tries = tries + 1
guess = int(input("You got it wrong you're welcome to try again: "))
if guess == random_number:
print(f"You got it right in {tries} tries ")
if tries == 1:
print("You got it right on your first try are you a god?")关于print(f"You got it right in {tries} tries "):这将只运行一次,因为导致它运行的条件将立即终止循环。让我们把它移出循环。只有当用户在第一次尝试时猜测错误时才运行这一行,因此tries != 1。这与if循环后面的while条件正好相反,因此我们可以在这里使用else分支。
import random
random_number = random.randint(1, 15)
guess = int(input("What do you think my number is? "))
tries = 1
while guess != random_number:
tries = tries + 1
guess = int(input("You got it wrong you're welcome to try again: "))
if tries == 1:
print("You got it right on your first try are you a god?")
else:
print(f"You got it right in {tries} tries ")现在,这个程序有了一个很好的逐步结构:
对于最后的编辑,tries = tries + 1也可以编写如下:tries += 1。
发布于 2023-03-02 08:39:05
很难处理好输入:
猜测=int(输入(“您认为我的号码是什么?”)
尝试这几次,看看如果输入一些不是数字的东西会发生什么:int()转换会抛出一个ValueError,而且由于我们没有捕捉到它,这会杀死整个程序。
我们可以通过创建一个读取整数的函数来改进这一点,并要求用户重试是否提供了其他内容:
def int_input(prompt):
while True:
try:
return int(input(prompt))
except ValueError:
print("An integer value is required")现在我们可以写
guess = int_input("What do you think my number is? ")https://codereview.stackexchange.com/questions/283674
复制相似问题