Это домашнее задание, с которым у меня проблемы. Вот проблема:
Реализация функции dartGame (), которая запрашивает у пользователя ввести координаты x и y (каждая в диапазоне от -10 до 10) дротика и вычисляет, попал ли дротик в дартс,круг с центром (0,0) и радиусом 8. Если это так, строка «Это в! :-) 'печатается, иначе' Не в.: печатается .-( '. Обратите внимание, что уравнение для круга: x2 + y2 = r2; чтобы убедиться, что дротик попадет на доску, формула будет x2+ y2 <= 82 </p>
>>> 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. :-(")