#Day1of100
Первый день, в принципе, знал, но изучил интересные сервисы: Replit, Coding Rooms, Thonny и прочее. Так что двигаемся дальше!
Хорошо объяснили как гуглить ошибки, сам курс отлично построен. Пришлось переключиться с PyCharm на Replit, но в курсе обещали, что скоро к нему вернемся. Так как программы пишем простые, то я не думаю, что это критично.
Разобрались со следующими механизмами:
– вывод данных (print())
– перенос строки (\n) – конкатенация строк (+)
– ввод данных (input)
– переменные и их названия
Из плюсов отмечу хорошие логические задачки, объяснение всех аспектов и разбор задач поэтапно для всех, кто не понимает почему-то.
А свой проект прикладываю сюда:
https://pastebin.com/tZciWmKR
Первый день, в принципе, знал, но изучил интересные сервисы: Replit, Coding Rooms, Thonny и прочее. Так что двигаемся дальше!
Хорошо объяснили как гуглить ошибки, сам курс отлично построен. Пришлось переключиться с PyCharm на Replit, но в курсе обещали, что скоро к нему вернемся. Так как программы пишем простые, то я не думаю, что это критично.
Разобрались со следующими механизмами:
– вывод данных (print())
– перенос строки (\n) – конкатенация строк (+)
– ввод данных (input)
– переменные и их названия
Из плюсов отмечу хорошие логические задачки, объяснение всех аспектов и разбор задач поэтапно для всех, кто не понимает почему-то.
А свой проект прикладываю сюда:
https://pastebin.com/tZciWmKR
#Day2of100
С небольшим опозданием, но приступил ко второму дню. Посвящен он типам данных.
Выучил, что такое:
– подстрока, а также то, как по индексу вызывать определенные символ (print("Hello"[0]))
– узнал, что написание чисел 100000 и 100_000 не имеет значения для Python, но легче для восприятия
– узнал, что в большинстве IDE сочетание клавиш «CMD» + «/» комментирует строку
– функция type() показывает тип введенных в скобочках данных
– как переводить данные в разные типы (str, int, float)
– математические операции (+, -, *, /, **, ()) и их приоритеты (те же, что в математике)
– когда делишь числа, то результат всегда float, а в случае, если нужен int, то делим с округлением до «пола» – //
– функция round округляет числа по математическим правилам (2.6 = 3), а если через запятую указать число, то столько знаков после запятой он оставит
– сокращение повторяющихся математических функций (+=, -= и т.п.)
Первый курс, где показали ф-строки (f-strings). До этого это была часть продвинутого курса.
Добавляя f в начало строки, все данные внутри кавычек автоматически становятся строкой. Ниже пример кода с синтаксисом:
score = 0
height = 1.8
isWinning = True
print(f"your score is {score}, your height is {height} and you are winning is {isWinning}")
И, по традиции, выкладываю проект сюда. Чуть усложнил, добавил вывод количества оставленных чаевых:
https://pastebin.com/qp71qN9k
С небольшим опозданием, но приступил ко второму дню. Посвящен он типам данных.
Выучил, что такое:
– подстрока, а также то, как по индексу вызывать определенные символ (print("Hello"[0]))
– узнал, что написание чисел 100000 и 100_000 не имеет значения для Python, но легче для восприятия
– узнал, что в большинстве IDE сочетание клавиш «CMD» + «/» комментирует строку
– функция type() показывает тип введенных в скобочках данных
– как переводить данные в разные типы (str, int, float)
– математические операции (+, -, *, /, **, ()) и их приоритеты (те же, что в математике)
– когда делишь числа, то результат всегда float, а в случае, если нужен int, то делим с округлением до «пола» – //
– функция round округляет числа по математическим правилам (2.6 = 3), а если через запятую указать число, то столько знаков после запятой он оставит
– сокращение повторяющихся математических функций (+=, -= и т.п.)
Первый курс, где показали ф-строки (f-strings). До этого это была часть продвинутого курса.
Добавляя f в начало строки, все данные внутри кавычек автоматически становятся строкой. Ниже пример кода с синтаксисом:
score = 0
height = 1.8
isWinning = True
print(f"your score is {score}, your height is {height} and you are winning is {isWinning}")
И, по традиции, выкладываю проект сюда. Чуть усложнил, добавил вывод количества оставленных чаевых:
https://pastebin.com/qp71qN9k
#Day3of100
Итак, третий день посвящен потоку управления и логическим операциям.
В основном было снова объяснено все, что я до этого знал, но почему бы и не повторить. Повторение if, elif, else и прочее. Крайне радует, что очень много опыта с f-строками.
Следующий день обещает быть поинтереснее. Сделанный проект вышлю попозже
Итак, третий день посвящен потоку управления и логическим операциям.
В основном было снова объяснено все, что я до этого знал, но почему бы и не повторить. Повторение if, elif, else и прочее. Крайне радует, что очень много опыта с f-строками.
Следующий день обещает быть поинтереснее. Сделанный проект вышлю попозже
Итак, как и обещал, сделанный проект по третьему дню. Пока не могу корректно настроить проверку на «ошибки дурака», как выражался мой преподаватель в университете, поэтому просьба вводить именно те варианты, что указаны. Без пробелов, лишних символов и прочее. Обещаю, что когда разберусь как сделать проверку – обновлю программу!
UPD: пофиксил, теперь ок)
https://replit.com/@lexcodedev/spider-man-vs-burning-house
UPD: пофиксил, теперь ок)
https://replit.com/@lexcodedev/spider-man-vs-burning-house
replit
Spider-Man vs Burning House by AD - Python Repl
Простая текстовая игра на if-else
#Day4of100
На четвертый день проходили рандомизацию в Python. До этого на курсах так рано не начинали работать с модулями, так что опыт интересный. Так вот, основные моменты:
– рассказали, что такое модули и как они работают. Пока в учебе не понадобятся, но приятно знать как их создавать.
– чтобы выбрать рандомное целое число из диапазона, синтаксис следующий: your_value = random.randint(1, 10). Следует отметить, что в диапазон (от 1 до 10 в примере) входит и единица, и десятка. P.S. Не забываем сначала импортировать модуль random
– чтобы выбрать рандомное число с плавающей точкой, то синтаксис следующий: your_float_value = random.random(). Тут отмечу, что при вызове включена только левая граница, т.е. рандомом выведется число от 0,000000 до 0,999999, не включая единицу.
– часто есть задача для вызова рандомного числа не в диапазоне [0, 1), а, допустим, в диапазоне [0, 5). В таком случае, синтаксис будет следующим: следующий: your_float_value = random.random() * 5. Итого мы получим число от 0,000000 до 4,999999.
И, совершенно неожиданно, начали проходить списки. Во всех курсах это тема раскрывается гораздо позднее, а тут уже на четвертый день. Хорошо, вот что мы прошли:
– если у тебя много данных и ты не хочешь присваивать переменные для каждого значения, то следует использовать списки. Хороший пример в уроке со штатами США: ты можешь сделать переменную каждого штата, а можешь просто перечислить их все в списке.
– списки хороши еще тем, что в них есть строгий порядок.
– чуть не забыл: синтаксис списка весьма просто – my_list = [item1, item2]. Чтобы вызвать определенный элемент списка, выводим его но строгой нумерации, начиная с 0. Так, при вызове print=(my_list[0]) на экране появится ‘item1’. Работает также и отрицательный вызов my_list[-1]
– чтобы изменить определенный элемент списка, мы просто присваиваем ему значение как для обычной переменной. К примеру, чтобы в нашем списке изменить item1 на item0, мы просто делаем следующее: item[0] = item0. В итоге, списк будет таким: my_list = [item0, item2].
– команда .append добавит элемент в конец списка. Синтаксис следующий: my_list.append(item3). А если мы хотим добавить сразу несколько элементов, то мы можем объединить их в словарь и использовать команду .extend. my_list.extend([item4, item5])
– команда .split разделяет целую строку на отдельные компоненты по указанному разделителю. К примеру, если у нас есть строка str_inp = ’Привет, дружище, как твои дела?’, то при команде op = str_inp.split(«,») и вызове этого op мы получим следующий словарь: [‘Привет’, ‘дружище’, ‘как твои дела?’]
– функция len() определяет кол-во элементов в списке.
– если в списке, допустим, 50 элементов и мы вызовем print(my_list[len(my_list)]), то получим ошибку index out of range. Это из-за того, что мы вызываем пятый элемент по счету (а функция len() показывает именно количество элементов) в списке, который начинается с 0. То есть мы вызываем 5 элемент из списка с элементами 0,1,2,3,4. Его там просто нет. Именно поэтому необходимо делать следующее: print(my_list[len(my_list)] - 1)
– также разобрали nested list, когда в списке находятся несколько списков. Ниже пример:
fruits = ["Strawberries", "Nectarines", "Apples", "Grapes", "Peaches", "Cherries", "Pears"]
vegetables = ["Spinach", "Kale", "Tomatoes", "Celery", "Potatoes"]
dirty_dozen = [fruits, vegetables]
При вызове команды print(dirty_dozen[1][1]) мы получим "Kale", так как этот элемент является вторым во втором списке (запоминаем, что индекс начинается с нуля).
Пока что это самый интересный день из всех, что были на этом обучении. Очень надеюсь, что дальше будет еще лучше!
И напоследок, моя игра в «Камень, Ножницы, Бумага» с компьютером. Пробуйте!)
https://replit.com/@lexcodedev/Rock-Paper-Scissors-by-AD
На четвертый день проходили рандомизацию в Python. До этого на курсах так рано не начинали работать с модулями, так что опыт интересный. Так вот, основные моменты:
– рассказали, что такое модули и как они работают. Пока в учебе не понадобятся, но приятно знать как их создавать.
– чтобы выбрать рандомное целое число из диапазона, синтаксис следующий: your_value = random.randint(1, 10). Следует отметить, что в диапазон (от 1 до 10 в примере) входит и единица, и десятка. P.S. Не забываем сначала импортировать модуль random
– чтобы выбрать рандомное число с плавающей точкой, то синтаксис следующий: your_float_value = random.random(). Тут отмечу, что при вызове включена только левая граница, т.е. рандомом выведется число от 0,000000 до 0,999999, не включая единицу.
– часто есть задача для вызова рандомного числа не в диапазоне [0, 1), а, допустим, в диапазоне [0, 5). В таком случае, синтаксис будет следующим: следующий: your_float_value = random.random() * 5. Итого мы получим число от 0,000000 до 4,999999.
И, совершенно неожиданно, начали проходить списки. Во всех курсах это тема раскрывается гораздо позднее, а тут уже на четвертый день. Хорошо, вот что мы прошли:
– если у тебя много данных и ты не хочешь присваивать переменные для каждого значения, то следует использовать списки. Хороший пример в уроке со штатами США: ты можешь сделать переменную каждого штата, а можешь просто перечислить их все в списке.
– списки хороши еще тем, что в них есть строгий порядок.
– чуть не забыл: синтаксис списка весьма просто – my_list = [item1, item2]. Чтобы вызвать определенный элемент списка, выводим его но строгой нумерации, начиная с 0. Так, при вызове print=(my_list[0]) на экране появится ‘item1’. Работает также и отрицательный вызов my_list[-1]
– чтобы изменить определенный элемент списка, мы просто присваиваем ему значение как для обычной переменной. К примеру, чтобы в нашем списке изменить item1 на item0, мы просто делаем следующее: item[0] = item0. В итоге, списк будет таким: my_list = [item0, item2].
– команда .append добавит элемент в конец списка. Синтаксис следующий: my_list.append(item3). А если мы хотим добавить сразу несколько элементов, то мы можем объединить их в словарь и использовать команду .extend. my_list.extend([item4, item5])
– команда .split разделяет целую строку на отдельные компоненты по указанному разделителю. К примеру, если у нас есть строка str_inp = ’Привет, дружище, как твои дела?’, то при команде op = str_inp.split(«,») и вызове этого op мы получим следующий словарь: [‘Привет’, ‘дружище’, ‘как твои дела?’]
– функция len() определяет кол-во элементов в списке.
– если в списке, допустим, 50 элементов и мы вызовем print(my_list[len(my_list)]), то получим ошибку index out of range. Это из-за того, что мы вызываем пятый элемент по счету (а функция len() показывает именно количество элементов) в списке, который начинается с 0. То есть мы вызываем 5 элемент из списка с элементами 0,1,2,3,4. Его там просто нет. Именно поэтому необходимо делать следующее: print(my_list[len(my_list)] - 1)
– также разобрали nested list, когда в списке находятся несколько списков. Ниже пример:
fruits = ["Strawberries", "Nectarines", "Apples", "Grapes", "Peaches", "Cherries", "Pears"]
vegetables = ["Spinach", "Kale", "Tomatoes", "Celery", "Potatoes"]
dirty_dozen = [fruits, vegetables]
При вызове команды print(dirty_dozen[1][1]) мы получим "Kale", так как этот элемент является вторым во втором списке (запоминаем, что индекс начинается с нуля).
Пока что это самый интересный день из всех, что были на этом обучении. Очень надеюсь, что дальше будет еще лучше!
И напоследок, моя игра в «Камень, Ножницы, Бумага» с компьютером. Пробуйте!)
https://replit.com/@lexcodedev/Rock-Paper-Scissors-by-AD
replit
Rock, Paper, Scissors by AD
Простая программка по игре "Камень – Ножницы – Бумага"
#Day5of100
Сегодня проходили циклы. Ну что ж, пишу чему научился/вспомнил:
– функция sum считает сумму чисел, входящих в указанный список
– функция max выделяет максимальное число из списк. min делает наоборот
– функция shuffle перемешивает все значения в списке
– функция choice в модуле random выбирает из списка случайное число
Собственно, больше ничего нового. Да, это прям простой расслабляющий урок. Думаю, это потому, что я хорошо разбирался в циклах до этого. Посмотрим, что будет на шестой день.
Чуть не забыл! Если вдруг вам нужно сгенерировать пароль и настолько лень искать что-то в интернете, то вот мой:
https://replit.com/@lexcodedev/Password-Generator-by-AD
Сегодня проходили циклы. Ну что ж, пишу чему научился/вспомнил:
– функция sum считает сумму чисел, входящих в указанный список
– функция max выделяет максимальное число из списк. min делает наоборот
– функция shuffle перемешивает все значения в списке
– функция choice в модуле random выбирает из списка случайное число
Собственно, больше ничего нового. Да, это прям простой расслабляющий урок. Думаю, это потому, что я хорошо разбирался в циклах до этого. Посмотрим, что будет на шестой день.
Чуть не забыл! Если вдруг вам нужно сгенерировать пароль и настолько лень искать что-то в интернете, то вот мой:
https://replit.com/@lexcodedev/Password-Generator-by-AD
replit
Password Generator by AD
Простой генератор паролей с заданным числом символов, букв и цифр.
#Day6of100
Сегодня рассматривали while-циклы, работу функций и их вызовы, отступы. Тренировки были с Reeborg’s World (https://reeborg.ca/reeborg.html), где необходимо было программировать шаги робота.
– основное отличие в написании функций и переменных – наличие скобок. Помимо описания def, разумеется
– если я правильно понял, то функции – это те же модули, только работающие в одной программе и не занимающие много места. А основное отличие от переменных – наличие внутри себя кода, а не значения
– чтобы вызвать значение функции не нужен print()
– много информации об отступах, их важности
– в основном, циклы for используются для того, чтобы взаимодействовать с каждым объектом в цикле, тогда как while не важны элементы в цикле, а именно само условие. Надеюсь, понятно написал
– с while намного легче уйти в бесконечный цикл
Крайне советую даже не особо знакомым с программированием людям пройти тренировки по ссылке выше. Финальным заданием сегодня стал лабиринт (Maze), где абсолютно рандомно выставляется положение робота, а также преграды. Код написал, получилось очень интересно!)
Сегодня рассматривали while-циклы, работу функций и их вызовы, отступы. Тренировки были с Reeborg’s World (https://reeborg.ca/reeborg.html), где необходимо было программировать шаги робота.
– основное отличие в написании функций и переменных – наличие скобок. Помимо описания def, разумеется
– если я правильно понял, то функции – это те же модули, только работающие в одной программе и не занимающие много места. А основное отличие от переменных – наличие внутри себя кода, а не значения
– чтобы вызвать значение функции не нужен print()
– много информации об отступах, их важности
– в основном, циклы for используются для того, чтобы взаимодействовать с каждым объектом в цикле, тогда как while не важны элементы в цикле, а именно само условие. Надеюсь, понятно написал
– с while намного легче уйти в бесконечный цикл
Крайне советую даже не особо знакомым с программированием людям пройти тренировки по ссылке выше. Финальным заданием сегодня стал лабиринт (Maze), где абсолютно рандомно выставляется положение робота, а также преграды. Код написал, получилось очень интересно!)
reeborg.ca
Reeborg's World
Free Interactive Programming Tutorials
#Day7of100
За этот день не было изучено ничего нового – он был полностью посвящен проекту. В нем присутствует все, что мы изучали на прошлых уроках. Проект «Виселица» – вашему вниманию по ссылке ниже!
https://replit.com/@lexcodedev/Hangman-by-AD
За этот день не было изучено ничего нового – он был полностью посвящен проекту. В нем присутствует все, что мы изучали на прошлых уроках. Проект «Виселица» – вашему вниманию по ссылке ниже!
https://replit.com/@lexcodedev/Hangman-by-AD
replit
Hangman by AD
Игра "Виселица" с минималистичным дизайном. Наслаждайтесь!
#Day8of100
Сегодня день посвящен функциям. Наконец, разобрался в том, почему при объявлении функции ставятся скобки. Ну, по порядку как всегда.
– надпись в скобках при объявлении функции называется параметром, а значение параметра – аргументом. Параметр – имя передаваемых данных, а аргумент – фактическое значение данных. Это важная штука, поэтому покажу на примере:
def greet_with(name, location):
print(f"Привет {name}")
print(f"Какая погода в городе {location}?")
greet_with("Алексей", "Тула")
Итак, в куске кода выше name и location являются параметрами, а «Алексей» и «Тула» – аргументами
– в функцию можно добавить 2 и больше параметров, перечислив их через запятую. Выше пример
– в функциях с несколькими параметрами используются аргументы с ключевыми словами. Ниже покажу, как я это понял:
def my_func(a, b, c):
#сначала a
#потом b
#затем c
При значениях a=1, b=2, c=3 функция будет иметь следующий вид:
def my_func(a, b, c):
#сначала 1
#потом 2
#затем 3
Но при изменении значений, все может измениться. К примеру, при значениях a=3, b=1, c=2 порядок меняется:
def my_func(a, b, c):
#сначала 3
#потом 1
#затем 2
Чтобы этого не допустить, при вызове функции к парамтерам дописываются аргументы. После этого изменение значений уже не важно. При вызове функции
my_func(c=1, a=2, b=3)
мы получим
#сначала 2
#потом 3
#затем 1
– то, что описано выше, делает код с меньшим количеством ошибок, но также менее читаемым
В конце сделали программу «Шифр Цезаря». Я доработал ее с возможностью также использовать русский язык, что дает больший простор для вычислений. Пробуйте!
https://replit.com/@lexcodedev/Caesar-Cipher-by-AD
Сегодня день посвящен функциям. Наконец, разобрался в том, почему при объявлении функции ставятся скобки. Ну, по порядку как всегда.
– надпись в скобках при объявлении функции называется параметром, а значение параметра – аргументом. Параметр – имя передаваемых данных, а аргумент – фактическое значение данных. Это важная штука, поэтому покажу на примере:
def greet_with(name, location):
print(f"Привет {name}")
print(f"Какая погода в городе {location}?")
greet_with("Алексей", "Тула")
Итак, в куске кода выше name и location являются параметрами, а «Алексей» и «Тула» – аргументами
– в функцию можно добавить 2 и больше параметров, перечислив их через запятую. Выше пример
– в функциях с несколькими параметрами используются аргументы с ключевыми словами. Ниже покажу, как я это понял:
def my_func(a, b, c):
#сначала a
#потом b
#затем c
При значениях a=1, b=2, c=3 функция будет иметь следующий вид:
def my_func(a, b, c):
#сначала 1
#потом 2
#затем 3
Но при изменении значений, все может измениться. К примеру, при значениях a=3, b=1, c=2 порядок меняется:
def my_func(a, b, c):
#сначала 3
#потом 1
#затем 2
Чтобы этого не допустить, при вызове функции к парамтерам дописываются аргументы. После этого изменение значений уже не важно. При вызове функции
my_func(c=1, a=2, b=3)
мы получим
#сначала 2
#потом 3
#затем 1
– то, что описано выше, делает код с меньшим количеством ошибок, но также менее читаемым
В конце сделали программу «Шифр Цезаря». Я доработал ее с возможностью также использовать русский язык, что дает больший простор для вычислений. Пробуйте!
https://replit.com/@lexcodedev/Caesar-Cipher-by-AD
replit
Caesar Cipher by AD
Программа, позволяющая кодировать и декодировать сообщения в шифре Цезаря на русском и английском языке. Пробуйте!)
#Day9of100
После большого затишья, сегодняшнее занятие посвящено словарям и вложенности. Итак, что мы выучили сегодня:
– в каждом словаре есть 2 части: ключ и значение. Первый всегда пишется слева, а второй справа. Проще всего аналогию провести с реальным словарем: есть слово и его описание. Так вот, слово – это ключ, а описание – значение.
– записывается словарь как {ключ: значение}. Если будет несколько ключей и значение, то они отделяются запятой
– немного про оформление. Каждая строка в словаре отделяется отступом и должна заканчиваться запятой. Последняя фигурная скобка должна быть на отдельной строке. Это делается для того, чтобы удобнее было добавлять в словарь новые значения при необходимости. Ниже пример словаря
dictionary_example = {
key1: value1,
key2: value2,
key3: value3,
}
– чтобы получить значение из нашего словаря делаем все аналогично спискам. Код
print(dictionary_example[key2])
выведет нам
value2
– для добавления новых строк нам нужен следующий синтаксис:
dictionary_example[key4] = value4
– чтобы удалить все данные в словаре, уже имеющемуся словарю мы присваиваем значение {} – пустого словаря
– для корректировки значения необходимо сделать следующие команды:
dictionary_example[key1] = value111
– что касается прохода по словарю, то цикл for даст следующий результат:
for element in dictionary_example:
print(element)
мы получим
key1
key2
key3
То есть он пройдет только по ключам. В случае, если нам надо пройти по значениям, то пишем следующее:
for element in dictionary_example:
print(dictionary_example[element])
– так же, как значения, в словарь можно вложить списки или другие словари, приписанные к определенному ключу. Помимо этого можно вложить список в список
А насчет проекта – вот он, слепой аукцион. Надеюсь, понравится:
https://replit.com/@lexcodedev/Blind-Auction-by-AD?v=1
P.S. Первый запуск долгий из-за платформы. Надеюсь, в будущем это пофиксят.
После большого затишья, сегодняшнее занятие посвящено словарям и вложенности. Итак, что мы выучили сегодня:
– в каждом словаре есть 2 части: ключ и значение. Первый всегда пишется слева, а второй справа. Проще всего аналогию провести с реальным словарем: есть слово и его описание. Так вот, слово – это ключ, а описание – значение.
– записывается словарь как {ключ: значение}. Если будет несколько ключей и значение, то они отделяются запятой
– немного про оформление. Каждая строка в словаре отделяется отступом и должна заканчиваться запятой. Последняя фигурная скобка должна быть на отдельной строке. Это делается для того, чтобы удобнее было добавлять в словарь новые значения при необходимости. Ниже пример словаря
dictionary_example = {
key1: value1,
key2: value2,
key3: value3,
}
– чтобы получить значение из нашего словаря делаем все аналогично спискам. Код
print(dictionary_example[key2])
выведет нам
value2
– для добавления новых строк нам нужен следующий синтаксис:
dictionary_example[key4] = value4
– чтобы удалить все данные в словаре, уже имеющемуся словарю мы присваиваем значение {} – пустого словаря
– для корректировки значения необходимо сделать следующие команды:
dictionary_example[key1] = value111
– что касается прохода по словарю, то цикл for даст следующий результат:
for element in dictionary_example:
print(element)
мы получим
key1
key2
key3
То есть он пройдет только по ключам. В случае, если нам надо пройти по значениям, то пишем следующее:
for element in dictionary_example:
print(dictionary_example[element])
– так же, как значения, в словарь можно вложить списки или другие словари, приписанные к определенному ключу. Помимо этого можно вложить список в список
А насчет проекта – вот он, слепой аукцион. Надеюсь, понравится:
https://replit.com/@lexcodedev/Blind-Auction-by-AD?v=1
P.S. Первый запуск долгий из-за платформы. Надеюсь, в будущем это пофиксят.
replit
Blind Auction by AD
Слепой аукцион на русском языке!
👍1
#Day10of100
Сегодня было относительно просто. Полностью разобрался, как работать с функциями, теперь проблем быть не должно) И, как всегда, немного полезной информации из урока:
– для повторения:
def my_function() используется в основном для того, чтобы автоматизировать все повторяющееся, что есть в коде
def my_function(something) используется для того, чтобы в этой повторяющейся функции использовать что-то (something) из передаваемого в параметр функции аргумента
– return возвращает результат функции. Если в функции стоит return, то код после него не выполняется и функция является завершенной
– функции с return называют функциями с выводом
– для того, чтобы при вызове функции мы видели, чему она посвящена, после объявления функции нужно поставить нужный текст с тройные кавычки:
def my_function():
"""Тут текст, который будет выводиться в подсказке"""
На самом деле, на этом все. В основном урок был посвящен практике работы с функциями и это круто, потому что даже я смог разобраться)
Помимо этого, написали еще один калькулятор, которые теперь сохраняет результат и более оптимизированный в коде. Велком!
https://replit.com/@lexcodedev/Calculator-by-AD
Сегодня было относительно просто. Полностью разобрался, как работать с функциями, теперь проблем быть не должно) И, как всегда, немного полезной информации из урока:
– для повторения:
def my_function() используется в основном для того, чтобы автоматизировать все повторяющееся, что есть в коде
def my_function(something) используется для того, чтобы в этой повторяющейся функции использовать что-то (something) из передаваемого в параметр функции аргумента
– return возвращает результат функции. Если в функции стоит return, то код после него не выполняется и функция является завершенной
– функции с return называют функциями с выводом
– для того, чтобы при вызове функции мы видели, чему она посвящена, после объявления функции нужно поставить нужный текст с тройные кавычки:
def my_function():
"""Тут текст, который будет выводиться в подсказке"""
На самом деле, на этом все. В основном урок был посвящен практике работы с функциями и это круто, потому что даже я смог разобраться)
Помимо этого, написали еще один калькулятор, которые теперь сохраняет результат и более оптимизированный в коде. Велком!
https://replit.com/@lexcodedev/Calculator-by-AD
replit
Calculator by AD - Python Repl
Простой калькулятор для практики функций и чуточку рекурсии
#Day11of100
Сегодня ничего нового не было – день был посвящен одному проекту.
Горд тем, что все удалось прописать самому, полностью без подсказок. Выписал, что нужно сделать и разработал структуру. После этого просмотрел уроки и просто некоторые моменты улучшил.
Так вот, проект – БлекДжек. Можете посмотреть!)
https://replit.com/@lexcodedev/BlackJack-by-AD
P.S. Наконец-то программы теперь работают без загрузки кучи модулей, как раньше! Ура!
Секрет в следующих строках (они очищают консоль, после воода определенных данных:
def cls():
os.system('cls' if os.name=='nt' else 'clear')
cls()
Сегодня ничего нового не было – день был посвящен одному проекту.
Горд тем, что все удалось прописать самому, полностью без подсказок. Выписал, что нужно сделать и разработал структуру. После этого просмотрел уроки и просто некоторые моменты улучшил.
Так вот, проект – БлекДжек. Можете посмотреть!)
https://replit.com/@lexcodedev/BlackJack-by-AD
P.S. Наконец-то программы теперь работают без загрузки кучи модулей, как раньше! Ура!
Секрет в следующих строках (они очищают консоль, после воода определенных данных:
def cls():
os.system('cls' if os.name=='nt' else 'clear')
cls()
replit
BlackJack by AD - Python Repl
Run Python code live in your browser. Write and run code in 50+ languages online with Replit, a powerful IDE, compiler, & interpreter.
#Day12of100
Сегодня изучали локальные и глобальные переменные для функций. В конце написал программу, угадывающую число пользователя. Итак, по пунктам:
– локальные переменные (Local Scope) присутствуют ВНУТРИ функции и имею ценность только для этой функции. В случае, если мы обращаемся к переменной ЗА пределами функции – произойдет ошибка, так как до этого мы функцию не обозначали
– глобальные переменные (Global Scope) задаются вне функции. Эти переменные могут быть вызваны как в программе, так и во внутренних функциях.
– для того, чтобы обратиться к глобальной переменной в функции, где уже содержится переменная с тем же названием, то необходимо прописать в функции «global my_function»
– для того, чтобы указать переменную как постоянную (const), эти глобальные переменные необходимо писать заглавными буквами с разделениями в виде _. Это принято, чтобы не забывать о неизменяемых переменных
Итоговый проект – Угадай число. Как раз полное использование локальных и глобальных переменных проверилось (пока сложновато). Но я сделал 😎! Попробуйте поиграйте)
https://replit.com/@lexcodedev/Guess-The-Number-by-AD?v=1
Сегодня изучали локальные и глобальные переменные для функций. В конце написал программу, угадывающую число пользователя. Итак, по пунктам:
– локальные переменные (Local Scope) присутствуют ВНУТРИ функции и имею ценность только для этой функции. В случае, если мы обращаемся к переменной ЗА пределами функции – произойдет ошибка, так как до этого мы функцию не обозначали
– глобальные переменные (Global Scope) задаются вне функции. Эти переменные могут быть вызваны как в программе, так и во внутренних функциях.
– для того, чтобы обратиться к глобальной переменной в функции, где уже содержится переменная с тем же названием, то необходимо прописать в функции «global my_function»
– для того, чтобы указать переменную как постоянную (const), эти глобальные переменные необходимо писать заглавными буквами с разделениями в виде _. Это принято, чтобы не забывать о неизменяемых переменных
Итоговый проект – Угадай число. Как раз полное использование локальных и глобальных переменных проверилось (пока сложновато). Но я сделал 😎! Попробуйте поиграйте)
https://replit.com/@lexcodedev/Guess-The-Number-by-AD?v=1
replit
Guess The Number by AD - Python Repl
Угадайте число, случайно заданное компьютером!
#Day13of100
Максимально простой день. Разбирали как справляться с простейшими багами. Единственное полезное – снова использовал Thonny как дебаггер. Очень удобная вещь, чтобы смотреть как именно выполняется код.
Программы не писали сегодня, так что даже не приложу ссылки. В 14-й день будет сделан большой проект и первая часть курса (Beginner) будет закончена! Начнется Intermediate и уже ООП в ход пойдет, вернусь в PyCharm. Так что жду)
Максимально простой день. Разбирали как справляться с простейшими багами. Единственное полезное – снова использовал Thonny как дебаггер. Очень удобная вещь, чтобы смотреть как именно выполняется код.
Программы не писали сегодня, так что даже не приложу ссылки. В 14-й день будет сделан большой проект и первая часть курса (Beginner) будет закончена! Начнется Intermediate и уже ООП в ход пойдет, вернусь в PyCharm. Так что жду)
#Day14of100
Ну, вот программа и сделана. Была проще, чем я думал. Та же программа с угадыванием числа далась тяжелее)
Вашему вниманию игра «Больше или меньше»! Испытайте себя в знании популярных аккаунтов в Instagram (компания Meta запрещена на территории РФ) и сравните, у кого больше подписчиков! Кевин Харт или Карди Би? Билли Айлиш или Дуэйн Джонсон? Удачи!
А я закончил часть Beginner и перехожу на Intermediate)
P.S. Игра на английском, потому что много входных данных именно на английском языке. Изменение заняло бы больше времени, чем написание игры
P.S.S. Данные актуальны на 2021 год
https://replit.com/@lexcodedev/Higher-Lower-Game-by-AD?v=1
Ну, вот программа и сделана. Была проще, чем я думал. Та же программа с угадыванием числа далась тяжелее)
Вашему вниманию игра «Больше или меньше»! Испытайте себя в знании популярных аккаунтов в Instagram (компания Meta запрещена на территории РФ) и сравните, у кого больше подписчиков! Кевин Харт или Карди Би? Билли Айлиш или Дуэйн Джонсон? Удачи!
А я закончил часть Beginner и перехожу на Intermediate)
P.S. Игра на английском, потому что много входных данных именно на английском языке. Изменение заняло бы больше времени, чем написание игры
P.S.S. Данные актуальны на 2021 год
https://replit.com/@lexcodedev/Higher-Lower-Game-by-AD?v=1
replit
Higher Lower Game by AD - Python Repl
У кого больше подписчиков в Instagram? Проверьте свои знаний в этой игре!
👍1
#Day15of100
Сегодня разобрали установку PyCharm (ура!) и некоторые его фишки. Опишу их ниже.
1. Автоматическая проверка правописания (английский язык). Это касается не синтаксиса кода, а именно правильности написания переменных, названия функций и прочее
2. Удобное перемещение по вкладкам, а также разделение на 2 окна по команде «Split and Move Right (Down)»
3. Встроенная проверка на стилистику PEP-8
4. Можно посмотреть полную историю изменения кода (Show History)
5. Возможность посмотреть структуру кода
6. Возможность переименовать функцию или переменную один раз без надобности идти по всему коду и менять название
7. Удобное добавление todo (чек-лист того, что нужно сделать).
Проект на сегодня – кофемашина ☕. У нас есть аппарат, продающий кофе. У него есть определенные ресурсы (вода, молоко, кофе) и можно заказать 3 вида кофе: эспрессо, латте и капучино. Все это, разумеется, стоит денег. Деньгами являются монеты, номиналом 1 цент, 1 никель (5 центов), 1 дайм (10 центов) и 1 квотер (25 центов, еще называется четвертак). Задача кофемашины выдать сдачу, кофе и отминусовать затраченные ресурсы и записать кол-во денег, которые сейчас находятся в ней. Попробуйте!
https://replit.com/@lexcodedev/Coffee-Machine-by-AD?v=1
Сегодня разобрали установку PyCharm (ура!) и некоторые его фишки. Опишу их ниже.
1. Автоматическая проверка правописания (английский язык). Это касается не синтаксиса кода, а именно правильности написания переменных, названия функций и прочее
2. Удобное перемещение по вкладкам, а также разделение на 2 окна по команде «Split and Move Right (Down)»
3. Встроенная проверка на стилистику PEP-8
4. Можно посмотреть полную историю изменения кода (Show History)
5. Возможность посмотреть структуру кода
6. Возможность переименовать функцию или переменную один раз без надобности идти по всему коду и менять название
7. Удобное добавление todo (чек-лист того, что нужно сделать).
Проект на сегодня – кофемашина ☕. У нас есть аппарат, продающий кофе. У него есть определенные ресурсы (вода, молоко, кофе) и можно заказать 3 вида кофе: эспрессо, латте и капучино. Все это, разумеется, стоит денег. Деньгами являются монеты, номиналом 1 цент, 1 никель (5 центов), 1 дайм (10 центов) и 1 квотер (25 центов, еще называется четвертак). Задача кофемашины выдать сдачу, кофе и отминусовать затраченные ресурсы и записать кол-во денег, которые сейчас находятся в ней. Попробуйте!
https://replit.com/@lexcodedev/Coffee-Machine-by-AD?v=1
replit
Coffee Machine by AD - Python Repl
Программа, которая симулирует работу кофе-машины с подсчетом ингредиентов, профита и прочее
#Day16of100
Началось кое-что необычное – ООП. Признаюсь, с ООП я знаком, т.к. в универе это было отдельным предметом. Другое дело, что я совершенно не помню, что мы там делали, потому что в этот момент уже ходил на работу) Так что учим заново.
Что такое в принципе Объектно Ориентированное Программирование (ООП)? Если грубо говоря, то это дробление кода на отдельные модули, которые будут выполняться отдельно, но при этом будут частью одного кода. Также эти модули могут быть отдельными сущностями, которые могут быть использованы в других программах.
Как использовать ООП? Причина, по которой ООП так называется, заключается в том, что оно пытается смоделировать реальный объект. В обучении сделали пример официанта. С ним связаны 2 вещи: то, что у него есть и то, что он делает. К примеру, у него есть: возможность держать тарелку (is_holding_plate = True) и за какие столы он отвечает (tables_responsible = [4, 5, 6]). А что он делает? Правильно: принимает заказы (def take_order(table.order)) и берет деньги (def take_payment(amount)). В итоге, наш объект состоит из двух вещей: что у него есть и что он делает. То, что есть у официанта называется «атрибутами». То, что он делает – «методы». Как видно из примеров в коде, атрибуты – это переменные, а методы – функции. Название другое потому, что эти переменные и функции относятся ТОЛЬКО к этому объекту и не влияют на код глобально. Также стоит понимать, что модули могут быть размножены. К примеру, это не абстрактные официант, а, например, 2 официанта: Генри и Бетти. Это разные объекты, но методы и атрибуты у них одни и те же. Поэтому, стоит определиться, что Генри и Бетти – это «объекты», а официант – это «класс».
Также классы называют «blueprint», по аналогии с чертежем или планом. В коде мы можем использовать объект, которые сделан из чертежа, а не сам чертеж.
Обычно в коде это выглядит так:
car = CarBlueprint()
где car – это объект, а CarBlueprint (пишется вместе, с большой буквы каждое слово) – класс.
Для того, чтобы понимать как добавлять аргументы (переменные) и методы (функции) к объектам, я приведу пример с построением похождения черепахи, добавив комментарии к каждой строке:
from turtle import Turtle, Screen # Из предустановленного модуля turtle мы импортируем классы Turtle и Screen
timmy = Turtle() # Делаем объект под названием timmy класса Turtle, который мы импортировали ранее
print(timmy)
timmy.shape("turtle") # Меняем форму со стрелки на черепаху
timmy.color("green") # Меняем ее цвет на зеленый
timmy.forward(100) # Заставляем сдвинуться вперед на 100 пунктов
my_screen = Screen() # Делаем объект для холста, который будет использован
my_screen.canvheight # Здесь мы задаем атрибут к объекту под названием canvheight
my_screen.exitonclick() # А тут мы уже задаем метод для объекта – выход по клику
Но для работы нам не всегда нужна черепаха. Для того, чтобы найти необходимый для тебя модуль, можно использовать сайт pypi.org (Python Package Index).
Сложное было занятие, много всего. Мы научились работать с ООП, а на следующем уроке будем создавать свои классы и настраивать их.
Финальным проектом на сегодня была переделка вчерашней кофемашины на ООП. Код стал значительно меньше, но и сложнее. Ссылочка, как всегда, ниже.
https://replit.com/@lexcodedev/Coffee-Machine-OOP-by-AD?v=1
Началось кое-что необычное – ООП. Признаюсь, с ООП я знаком, т.к. в универе это было отдельным предметом. Другое дело, что я совершенно не помню, что мы там делали, потому что в этот момент уже ходил на работу) Так что учим заново.
Что такое в принципе Объектно Ориентированное Программирование (ООП)? Если грубо говоря, то это дробление кода на отдельные модули, которые будут выполняться отдельно, но при этом будут частью одного кода. Также эти модули могут быть отдельными сущностями, которые могут быть использованы в других программах.
Как использовать ООП? Причина, по которой ООП так называется, заключается в том, что оно пытается смоделировать реальный объект. В обучении сделали пример официанта. С ним связаны 2 вещи: то, что у него есть и то, что он делает. К примеру, у него есть: возможность держать тарелку (is_holding_plate = True) и за какие столы он отвечает (tables_responsible = [4, 5, 6]). А что он делает? Правильно: принимает заказы (def take_order(table.order)) и берет деньги (def take_payment(amount)). В итоге, наш объект состоит из двух вещей: что у него есть и что он делает. То, что есть у официанта называется «атрибутами». То, что он делает – «методы». Как видно из примеров в коде, атрибуты – это переменные, а методы – функции. Название другое потому, что эти переменные и функции относятся ТОЛЬКО к этому объекту и не влияют на код глобально. Также стоит понимать, что модули могут быть размножены. К примеру, это не абстрактные официант, а, например, 2 официанта: Генри и Бетти. Это разные объекты, но методы и атрибуты у них одни и те же. Поэтому, стоит определиться, что Генри и Бетти – это «объекты», а официант – это «класс».
Также классы называют «blueprint», по аналогии с чертежем или планом. В коде мы можем использовать объект, которые сделан из чертежа, а не сам чертеж.
Обычно в коде это выглядит так:
car = CarBlueprint()
где car – это объект, а CarBlueprint (пишется вместе, с большой буквы каждое слово) – класс.
Для того, чтобы понимать как добавлять аргументы (переменные) и методы (функции) к объектам, я приведу пример с построением похождения черепахи, добавив комментарии к каждой строке:
from turtle import Turtle, Screen # Из предустановленного модуля turtle мы импортируем классы Turtle и Screen
timmy = Turtle() # Делаем объект под названием timmy класса Turtle, который мы импортировали ранее
print(timmy)
timmy.shape("turtle") # Меняем форму со стрелки на черепаху
timmy.color("green") # Меняем ее цвет на зеленый
timmy.forward(100) # Заставляем сдвинуться вперед на 100 пунктов
my_screen = Screen() # Делаем объект для холста, который будет использован
my_screen.canvheight # Здесь мы задаем атрибут к объекту под названием canvheight
my_screen.exitonclick() # А тут мы уже задаем метод для объекта – выход по клику
Но для работы нам не всегда нужна черепаха. Для того, чтобы найти необходимый для тебя модуль, можно использовать сайт pypi.org (Python Package Index).
Сложное было занятие, много всего. Мы научились работать с ООП, а на следующем уроке будем создавать свои классы и настраивать их.
Финальным проектом на сегодня была переделка вчерашней кофемашины на ООП. Код стал значительно меньше, но и сложнее. Ссылочка, как всегда, ниже.
https://replit.com/@lexcodedev/Coffee-Machine-OOP-by-AD?v=1