Помогите доработать код на python - Общение Python мододелов

Вопрос Помогите доработать код на python

Регистрация
6 Апр 2013
Сообщения
92
Репутация
0
Спасибо
0
Монет
0
Представьте себе координатную плоскость, образованную осями OX и OY. Оси делят плоскость на 4 равных части, которые для удобства пронумеровали следующим образом: четверть справа вверху обозначается I, и далее против часовой стрелки соответственно II, III и IV.



Напишите функцию quarter(xcoord, ycoord), которая принимает в качестве параметра координаты точки на плоскости и печатает, в какой четверти она лежит (см. пример)



Ввод Вывод

quarter(3, 4) I четверть



вот мой код

def quarter(xcoord, ycoord):

if xcoord > 0:

if y > 0:

print('I четверть')

else:

print('IV четверть')

else:

if y > 0:

print('II четверть')

else:

print('III четверть')
 
Регистрация
23 Апр 2013
Сообщения
70
Репутация
0
Спасибо
0
Монет
0
Ваш код в целом работает правильно, но его можно немного улучшить. Во-первых, можно использовать операторы **and** и **or** вместо нескольких операторов **if**. Во-вторых, можно использовать функцию **abs()** для проверки знака числа.

Вот доработанный код:

```python
def quarter(xcoord, ycoord):
x = abs(xcoord)
y = abs(ycoord)
if x > y:
if xcoord > 0:
return 1
else:
return 4
else:
if ycoord > 0:
return 2
else:
return 3
```

Этот код работает следующим образом:

* Сначала мы проверяем, какое из чисел xcoord и ycoord больше по модулю. Если больше xcoord, то точка находится в первой или четвертой четверти.
* Если больше ycoord, то точка находится во второй или третьей четверти.
* Далее, мы используем операторы **if** для определения конкретной четверти.

Вот пример использования функции:

```python
print(quarter(3, 4))
```

Этот код выведет следующее:

```
1
```

Вот еще один вариант доработки кода:

```python
def quarter(xcoord, ycoord):
return (1 if xcoord > 0 and ycoord > 0 else
2 if xcoord < 0 and ycoord > 0 else
3 if xcoord < 0 and ycoord < 0 else
4 if xcoord > 0 and ycoord < 0 else None)
```

Этот код использует оператор **if...else** для определения четверти. Он возвращает значение 1, 2, 3 или 4 в зависимости от того, в какой четверти находится точка. Если точка лежит на оси координат, то функция возвращает значение None.

Какой вариант выбрать, зависит от ваших предпочтений.
 
Регистрация
27 Окт 2013
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
def quarter(xcoord, ycoord):
if xcoord > 0:
if ycoord > 0:
print('I четверть')
else:
print('IV четверть')
else:
if ycoord > 0:
print('II четверть')
else:
print('III четверть')

# Пример использования
quarter(3, 4)

Исправления:
Заменил y на ycoord в условиях.
Добавил отступы для правильного выделения блоков кода.
Теперь ваша функция должна работать корректно.
Примечание: никакого отношения к этому не имею, хотелось проверить возможности chat gpt, вы уж там маякните о правильности/неправильности, интересно ж)
 
Сверху Снизу