Как вывести список кортежей (координат)?
Напишите программу, в которой пользователь вводит координаты x, y с клавиатуры, создается соответствующий экземпляр и он сохраняется в списке. Количество вводимых объектов N=5. Затем, вывести их атрибуты в консоль.
Вопрос, как вывести список кортежей (координат), можно ли без цикла это сделать, как вывод обычного списка. У меня получается что выводятся просто объекты без значений print(s) - <main.Point object at 0x000002AF6273AFA0>...
class Point:
def __init__(self,x=0,y=0):
self.x,self.y = x,y
def getCoords(self):
return self.x, self.y
n = int(input("Введите кол-во экземпляров."))
s = []
for i in range(n):
x = list(map(int,input('Введите координаты точки: \n').split()))
point = Point(x[0],x[1])
s.append(point)
for i in range(len(s)):
print(s[i].getCoords())
Ответы (2 шт):
для того, чтобы можно было вывести список объектов в удобоворимой форме, необходимо у класса Point определить метод __repr__ или __str__
подробней о них можно прочитать тут https://docs.python.org/3/reference/datamodel.html#object.repr
вместо:
for i in range(len(s)):
print(s[i].getCoords())
попробуйте:
print([i.getCoords() for i in s])
ввод-вывод:
Введите кол-во экземпляров.2
Введите координаты точки:
5 10
Введите координаты точки:
6 15
[(5, 10), (6, 15)]