Я новичок в Python, и моя будущая лаборатория требует, чтобы я написал код для испытания на столкновение объектов (кругов) на плоскости. Для двух кругов я предлагаю пользователю вводить значения для координат x и y, а также радиусы обоих. В настоящее время я настроен так, что если пользователь пренебрегает вводом значения для любого из трех входов, он возвращает сообщение об ошибке с использованием цикла while. Это прекрасно работает.Два условия для вложенного цикла while в Python?
Однако я также хочу настроить его так, чтобы радиус не мог быть меньше или равен нулю. Я использовал вложенный цикл while. Это мой код:
while c_1_x=="" or c_1_y=="" or c_1_r=="":
print "Error: please enter a value for each field. If the value is 0, type 0."
c_1_x=raw_input("Enter the x coordinate of CIRCLE ONE center:")
c_1_y=raw_input("Enter the y coordinate of CIRCLE ONE center:")
c_1_r=raw_input("Enter the radius of CIRCLE ONE:")
while int(c_1_r<=0):
print "Error: radius of circle must be greater than zero."
c_1_r=raw_input("Enter the radius of CIRCLE ONE:")
После того, как внешний цикл был удовлетворен, я хочу, чтобы он анализировал внутренний цикл. Если значение радиуса < = 0, я хочу, чтобы оно возвращало сообщение об ошибке. Однако, когда я запускаю его, он переходит к следующему шагу даже после ввода значений (в частности, значение < = 0 для радиуса). Я не хочу, чтобы он перешел к следующему шагу, пока не будут выполнены критерии BOTH. Как я могу это сделать?
спасибо! Я ценю это!
Изменить скобки 'в то время как Int (c_1_r) <= 0:'! – schwobaseggl
Спасибо за ваш ответ! Хотя я предпочитаю метод Martijn, это делало то, что я хотел! –