Решение задач на Python

Линейные алгоритмы

Ветвления

Циклы

Списки и кортежи

Строки

Функции

Файлы

Комментарии

Напишите класс Hand (рука), который хранит карты игрока. Класс Hand имеет методы: Взять карту в руку. Показать все карты из руки и их порядковые номера от 1 до 5 на экране. как это сделать по спомошью только ООП

Ответ на от Гость

Сделать можно как угодно. Например, так:

class Hand:
    def __init__(self, *cards):
        self.cards = list(cards)
 
    def get_card(self, n):
        return self.cards[n]
 
    def show_all(self):
        for i in range(len(self.cards)):
            print(i, '-', self.cards[i])
 
 
your_hand = Hand('A', '10', 'K', '6', '8')
 
print(your_hand.get_card(2))
 
your_hand.show_all()

Результат:

K
0 - A
1 - 10
2 - K
3 - 6
4 - 8

Введите словарь городов. В качестве значения задайте кортеж, содержащий их географических координат. Программа должна выводить список трех городов, долгота или широта которых ближайшая до введенных

Ответ на от chervachek

def threecities(x:int, y: int, sdict: dict):
    '''Основная идея: сделать из словаря, список расстояний от введенных координат
до городов, затем запомнить позиции ближайших и вернуть названия городов с соот. позициями
(с учетом того, что мы не меняем позиции в списках). Для работы программы необходимо, как
минимум, три города'''
    optimal = [] #Список расстояний
    for i in range(len(sdict)):
        optimal.append([(cities[j][0]-x)**2 for i, j in enumerate(sdict)][i] + [(cities[j][1]-y)**2 for i, j in enumerate(sdict)][i])
    #Заполнили его квадратами (корень нам не нужен)
 
    time = sorted(optimal)[0:3]
    for i in time:
        optimal[optimal.index(i)] = str(optimal.index(i))
    #Заменили подходящие позиции на номер с типом str
 
    return([j for i, j in enumerate(sdict)][[int(i) for i in optimal if type(i) is str][0]],
    [j for i, j in enumerate(sdict)][[int(i) for i in optimal if type(i) is str][1]],
    [j for i, j in enumerate(sdict)][[int(i) for i in optimal if type(i) is str][2]])
    #Сначала генерируем список нужных индексов, распознавая нужные по типу str и приводя
    #их снова к типу int, затем вызываем три нужных индекса и по ним уже возращаем нужные
    #города из списка
 
cities = {'Alpha':(0, 0), 'Omega':(3, 4), 'Delta':(6, 7), 'Lambda':(-4, 3), 'Zero':(-8, -3)}
print(threecities(0, 0, cities))
 
cities = {'A':(1.3, -5.6), 'B':(3, 4), 'C':(0.1, -1), 'D':(0.5, -0.5)}
print(threecities(0, 0, cities))