gpt4 book ai didi

python - 如果用户输入不在范围内,如何使用 while 循环?

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:19 25 4
gpt4 key购买 nike

这是一项我遇到困难的家庭作业。问题是这样的:

Implement a function dartGame() that requests the user to enter x and y coordinates (each between -10 & 10) of a dart and computes whether the dart has hit the dartboard, a circle with center(0,0) and radius 8. If so, a string ‘It is in! :-)’ is printed, else ‘It isn’t in. :-(’ is printed. Note that the equation for a circle is x2 + y2 = r2; to make certain that the dart hits the board, the formula is x2 + y2 <= 82

>>> dartGame()
Enter x: 4
Enter y: 2.5
It is in! :-)
>>> dartGame()
Enter x: 9.9
Enter y: -9.9
It isn't in. :-(
>>>

这是我尝试过的代码。我想做的是要求用户输入 x。如果x < -10 or x > 10我希望该函数不断请求输入,直到满足参数为止。一旦建立了 x 坐标,我想对 y 做同样的事情。我遇到一个问题,如果我猜到一个数字超出范围一次,我的第一个 while 循环就会无限重复。例如,如果我猜测 -13,它会重复,但如果我猜测 4.5,它仍然会重复。

def dartGame():
x = float(input("Enter x: ", ))
while x < -10 or x > 10:
float(input("Out of range. Please select a number between -10 and 10: ", ))
y = float(input("Enter y: ", ))
while y < -10 or y > 10:
float(input("Out of range. Please select a number between -10 and 10: ", ))
dartboard = x**2 + y**2
if dartboard <= 8**2:
print("It is in!")
else:
print("It isn't in. :-(")

最佳答案

在验证检查 while 循环内,您没有将新输入分别分配给 x 和 y。所以你会想要:

while x < -10 or x > 10:
x = float(input('''stuff'''))

y 也一样。换句话说,您不断地循环输入而不更新退出条件。这就是为什么它第一次起作用但之后就不起作用了。

关于python - 如果用户输入不在范围内,如何使用 while 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58316029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com