Здравствуйте, Александр!
Уточните, пожалуйста, вы пытаетесь совершить первую оплату?
Александр, первую оплату вы совершаете самостоятельно. После оплаты первого платёжа привязывается карта, с которой автоматически спишутся следующие, раз в 30 дней. Мы сможем помочь списать только следующие оплаты, если будут возникать трудности.
Если нужна помощь, пишите — во всём разберёмся вместе :)
Александр, выбранный вами курс стартует 16 августа, вероятнее всего, срок оплаты будет продлён до 15 августа :)
Дайте знать, если можем ещё чем-либо помочь:)
Александр, вероятнее всего, срок оплаты будет продлём до 15 августа, если до этого времени не будет набран поток :)
Не переживайте, если вы оплатите на следующей неделе, вы будете зачислены в поток :)
Александр, если вы оплатите курс на следующей неделе, ты вы попадете в ближайший поток :)
Так и есть, но место для вас найдётся :) Остались ли у вас ещё какие-то вопросы ?
Добрый день, Александр!
Для оплаты обучения, перейдите в свой профиль: https://praktikum.yandex.ru, выберите профессию, которую планируете изучать, далее нажмите на кнопку вверху «Купить полную программу», выберите подходящий вам способ оплаты и следуйте инструкциям системы.
Если возникнут вопросы — обязательно пишите :)
Подскажите, вы оплачиваете курс картой банка РФ или иностранного банка?
Уточните,
пожалуйста, почту из вашего аккаунта в Практикум, выбранный курс и
способ оплаты (ежемесячными платежами или полностью) — пришлём ссылку
для оплаты и запишем в группу.
При оплате ежемесячными платежами мы будем формировать новую ссылку каждый месяц и присылать также в письме.
Если вы не против, уточните, пожалуйста, страну вашего проживания — стараемся расширять географию оплаты на сайте и хотим понимать, куда двигаться :)
Александр, отправили вам ссылку в отдельном письме. После оплаты придёт кассовый чек, это значит, что всё прошло успешно и мы получили деньги. После оплаты мы включим вас в 5 поток, который стартует 16 августа.
Cумма ежемесячного платежа составит 12 825руб с учетом скидки 5% за подписку Яндекс.Плюс, мы будем присылать вам ссылку на оплату ежемесячно, всего их будет 14, как и месяцев в курсе Python-разработчик Плюс. Оплата по ссылке проводится в российских рублях.
В день старта потока вам придет важное письмо на почту и куратор примет вас на борт.
Удачи в учебе! А если будут вопросы - пишите, мы рядом.
Сейчас мы пришлем вам новую ссылку с учетом промокода SECOND :)
Александр, первую ссылку мы деактивировали, стоимость обучения для вас составит 11475руб в месяц вместо 13500руб с учетом скидки 15% (5% за Плюс + 10% по промокоду SECOND). Всего будет, как писали ранее, 14 ссылок, и итоговая стоимость курса для вас составит 160 650руб вместо обычных 189 000руб :)
Здравствуйте, Александр!
Наш специалист напишет вам утром и вы во всём разберётесь, хорошо ?:)
Грустить осталось недолго :)
Александр, наши коллеги работают по будням с 10 до 19 :)
Ожидайте, пожалуйста 🌿
Александр, добрый день,
Оплата по ссылке прошла успешно. В течение дня статус оплаты в личном кабинете поменяется:)
Мы записали вас в 5 поток, который стартует 16 августа. В личном кабинете у вас не должно быть ошибки об оплате, проверьте, пожалуйста:)
Обязательно пишите, если у вас появятся вопросы до старта:)
Здравствуйте, Александр!
Пришлите, пожалуйста, ссылку на ваш код, записанный на сайте https://pastebin.com/ и ссылку на саму задачу — посмотрим, в чём там дело :)
Подождём :) Что-то не так ?
Такое бывает :) Если понадобится наша помощь — напишите, мы тут как тут.
Давайте обратимся к теории задания :) Вот код, который можно там найти
return render(request, 'homepage/homepage.html', context)
Нашли свою ошибку ?
С синтаксисом нужно быть осторожным; то, что вы написали, по факту не совсем правильно :) В прекоде есть такая строчка
Как вернуть из view-функции функцию render? Вот так: `return render(аргументы-аргументы-аргументы)
А вы записали
аргументы-аргументы-аргументы=аргументы
Остались ли у вас ещё какие-то вопросы ?
Рады были помочь :)
Здравствуйте, Александр! Обновите, пожалуйста, сейчас страницу курса. Всё должно встать на свои места.
А
так, уже заканчиваем последние приготовления. В течение дня по
московскому времени откроется доступ к платной части, сперва мы
познакомимся, а в Slack куратор подробнее расскажет про то, что будет
дальше. Приглашение в Slack направим на почту — иногда оно попадает в
папки Спам или Рассылки, советуем поглядывать и туда.
Уточните, пожалуйста, вы указывали новую почту для приглашения в slack или ту же, что используете на другом курсе?
Там сейчас у вас только каналы для профессии Python-разработчик , а других каналов, которые были нет, правильно понимаем?
Хорошо, спасибо! Уточним вопрос у коллег и вернёмся к вам с ответом :)
С вами свяжется куратор и добавит в нужные каналы.
Дайте знать, если ещё чем-то можем вам помочь :)
Сейчас куратор напишет в новом аккаунте :)
Здравствуйте!
Также, просим проверить, что в личном кабинете Яндекс Паспорта https://passport.yandex.ru/ привязана карта, с которой необходимо совершить оплату.
Если карта не привязана, просим привязать её и сообщить нам 4 последние цифры карты.
Отправили запрос на списание, если всё пройдёт успешно, то в течение 10-15 минут денежные средства спишутся, вам на почту придёт чек о списании и статус в профиле изменится. Дайте знать, если этого не произойдёт.
Здравствуйте!
Александр, уточните, пожалуйста, ваш логин в Практикуме — alexander.borovtsoff@yandex.by? Не могли бы также уточнить, когда вы в последний раз оплачивали курс Аналитик данных?
Александр, уточните, пожалуйста, последние 4 цифры вашей карточки, привязана ли она к вашему аккаунту? Также, пожалуйста, убедитесь, что у вас на карте достаточно средств для проведения платежа — оплатить необходимо 13000 рублей.
Александр, провели платёж — уточните, пожалуйста, списались ли средства теперь? :)
Скопировать кодPYTHON# у класса может быть несколько родительских классов
class <Имя нового_класса>(<Имя класса-родителя 1>, <Имя класса-родителя 2>, ...):
<тело класса>
Скопировать кодPYTHONclass User:
def __init__(self, name, phone):
self.name = name
self.phone = phone
def show(self):
print(f'{self.name} ({self.phone})')
# объявляем класс Friend, дочерний по отношению к классу User
class Friend(User):
def show(self):
print(f'Имя: {self.name} || Телефон: {self.phone}')
# создаём объекты User и Friend
father = User('Дюма-отец', '+33 3 23 96 23 30')
son = Friend('Дюма-сын', '+33 3 23 96 23 30')
Скопировать кодPYTHON# вызываем метод show() класса User (родительского)
father.show()
# результат:
# Дюма-отец (+33 3 23 96 23 30)
# вызываем метод show() класса Friend (дочернего)
son.show()
# результат выглядит иначе, чем у объекта User:
# Имя: Дюма-сын || Телефон: +33 3 23 96 23 30
address
. Но конструктор родительского класса принимает только name
и phone
. __init__
.Скопировать кодPYTHONclass User:
def __init__(self, name, phone):
self.name = name
self.phone = phone
def show(self):
print(f'{self.name} ({self.phone})')
# наследуем класс Friend от User
class Friend(User):
# Пишем конструктор класса-наследника,
# чтобы он принимал все нужные параметры
def __init__(self, name, phone, address):
# наследуем функциональность конструктора из класса-родителя
super().__init__(name, phone)
# добавляем новую функциональность: свойство address
self.address = address
# полностью переопределяем родительский метод show()
def show(self):
print(f'Имя: {self.name} || '
f'Телефон: {self.phone} || '
f'Адрес: {self.address}')
__init__
.super()
, в неё передаются значения name
и phone
. При этом происходит вызов конструктора родительского класса и его функциональность сохраняется в классе-наследнике. super()
сохраняем значение address
в свойство self.address
. show()
мы можем напечатать адрес друга.super()
, как в примере с конструктором. super()
нет необходимости, в этом случае нужно полностью написать конструктор дочернего класса. show()
: мы перезаписали его полностью.Скопировать кодPYTHONclass Bird:
# Это конструктор, он вызывается при создании объекта
def __init__(self, name, size):
self.name = name
self.size = size
def show(self):
# Вызывается для вывода на экран всех свойств объекта
# это интерфейс класса, к нему можно обратиться из внешнего кода
print(f'{self.name} носит одежду размера "{self.size}".')
# Создание объекта
sparrow = Bird('Воробей', 'S')
# Теперь можно воспользоваться его внешним интерфейсом: методом show()
sparrow.show()
# Результат: Воробей носит одежду размера "S".
Скопировать кодPYTHONclass Bird:
def __init__(self, name, size):
# Это конструктор, он вызывается при создании объекта
self.name = name
self.size = size
def show(self):
# Вызывается для вывода на экран всех свойств объекта
print(f'{self.name} носит одежду размера {self.size}.')
class Parrot(Bird):
def __init__(self, name, size, sound):
super().__init__(name, size)
self.sound = sound
def show(self):
# Вызывается для вывода на экран всех свойств объекта
print(f'{self.name} носит одежду размера {self.size} и {self.sound}.')
# Создание объектов
sparrow = Bird('Воробей', 'S')
ara = Parrot('Попугай ара', 'XL', 'разговаривает')
nymphicus = Parrot('Попугай Корелла', 'S', 'щебечет')
# Теперь можно воспользоваться его внешним интерфейсом: методом show()
sparrow.show()
ara.show()
nymphicus.show()
# Результат:
# Воробей носит одежду размера S.
# Попугай ара носит одежду размера XL и разговаривает.
# Попугай Корелла носит одежду размера S и щебечет.
str
,
мы из документации знаем о них и можем управлять объектом. Методы
«инкапсулированы», а разработчику предоставлен интерфейс для их вызова: string.upper()
А класс Parrot инкапсулирует свойства попугая name
, size
, sound
, и его метод show()
: совершенно необязательно знать, как они работают, можно просто обратиться к ним и получить результат: ara.show()
name
или show()
— мы получим ответ (или, как минимум, не получим ошибку), потому что мы
предусмотрительно реализовали принцип полиморфизма: у всех наследников
класса Bird есть эти интерфейсы.Скопировать кодPYTHONclass Bird:
def __init__(self, name, size):
self.name = name
self.size = size
def show(self):
print(f'{self.name} носит одежду размера {self.size}.')
class Parrot(Bird):
def __init__(self, name, size, sound):
super().__init__(name, size)
self.sound = sound
def show(self):
print(f'{self.name} носит одежду размера {self.size} и {self.sound}.')
class Predator(Bird):
def __init__(self, name, size, claws_size):
super().__init__(name, size)
self.claws_size = claws_size
def show(self):
print(f'{self.name} носит одежду размера {self.size} и '
f'когти размера {self.claws_size}.')
class Egg(Predator):
def show(self):
print(f'Из яйца вылупится птичка {self.name} размера {self.size} с '
f'когтями размера {self.claws_size}.')
distance(self, other)
— это расстояние между двумя точками в километрах (параметр other
должен получить другой объект Point).City(Point, name, population)
описывает город, в конструктор передаются координаты города (объект класса Point), его название и численность населения.Mountain(Point, name, height)
описывает гору, в конструктор передаются координаты горы (объект класса Point), её название и высота в метрах.self.name
и self.population
. Затем вызовите конструктор родительского класса с аргументами «широта» и «долгота»: super().__init__(latitude, longitude)
def __init__(self, latitude, longitude, name, height):
show()
в классе Mountain.name
(у каждого человека должно быть имя) и методом answer_question()
для ответов на вопросы.ask_question(Human, question)
. При вызове этот метод должен:<имя человека, которому задаём вопрос>, <текст вопроса>
question
человеку, объекту класса Human. Имя объекта, которому адресован вопрос, передаётся при вызове метода ask_question()
.answer_question()
. Задан непредусмотренный вопрос — для него подойдет ответ по умолчанию.Скопировать кодМарина, мне грустненько, что делать? Держись, всё получится. Хочешь видео с котиками? Ира, мне грустненько, что делать? Отдохни и возвращайся с вопросами по теории. Евгений, когда каникулы? Очень интересный вопрос! Не знаю. Евгений, что не так с моим проектом? О, вопрос про проект, это я люблю. Виталя, как устроиться на работу питонистом? Очень интересный вопрос! Не знаю. Ира, как устроиться работать питонистом? Сейчас расскажу.
answer_question()
у родительского класса, напишите super().answer_question(question)
xxxxxxxxxx
# импортируем функции из библиотеки math для рассчёта расстояния
from math import radians, sin, cos, acos
class Point:
def __init__(self, latitude, longitude):
self.latitude = radians(latitude)
self.longitude = radians(longitude)
# считаем расстояние между двумя точками в км
def distance(self, other):
cos_d = sin(self.latitude) * sin(other.latitude) + cos(self.latitude) * cos(other.latitude) * cos(
self.longitude - other.longitude)
return 6371 * acos(cos_d)
class City(Point):
def __init__(self, latitude, longitude, name, population):
super().__init__(latitude, longitude)
self.name = name
self.population = population
def show(self):
print(f"Город {self.name}, население {self.population} чел.")
class Mountain(Point):
def __init__(self, latitude, longitude, name, height):
super().__init__(latitude, longitude)
self.name = name
distance()
, но расстояние всё равно посчиталось. Ведь по сути своей и город и гора — точки на карте, Point. Вот она, польза наследования.distance()
, но расстояние всё равно посчиталось. Ведь по сути своей и город и гора — точки на карте, Point. Вот она, польза наследования.