Programmer's Road
33 subscribers
48 photos
4 files
2 links
Привет! Я Макар, моя цель - стать программистом, тут я буду писать про свои успехи. Надеюсь каждый найдёт для себя что-то полезное.
Download Telegram
Разница между аргументами и параметрами

Параметры - это данные, которые подаются функции во время её объявление.

Аргументы - данные, которые подаются функции во время её вызова.
👍4😢3🤔1🤡1
Термины при изучении пользовательских функций

Функция - фрагмент кода для решения задач.

Встроенные функции - функции, созданные сразу, заранее(int(), str()...).

Пользовательские функции - функции, которые создаются вручную для решения различных задач(через def)).

Объявление функции - создание функции.

Вызов функции - Использование функции после её объявления.

Параметры - это переменные, которые подаются функции во время её объявление.

Аргументы - любые типы данных, которые подаются функции во время её вызова.

Параметрические переменные - параметры.

Формальные параметры - аргументы.

Фактические параметры - параметры.

Локальные переменные - переменные, созданные в теле функции с областью видимости только в функции, в которой переменная объявлена. Параметрическая переменная - локальная переменная.

Глобальные переменные -переменные, объявленные вне функции с областью видимости всей программы. Говорят, что лучше не использовать глобальные переменные.
👍8
Всем привет! Попробуйте проанализировать код и ответить на опрос ниже. Таблицу ASCII прикрепил.
🤔4👍2😱2
Что выведет программа с кодом выше?🤔⬆️
Anonymous Quiz
10%
False
0%
2
10%
P
0%
y
10%
True
0%
121
15%
3
15%
...Error:...
0%
40
40%
Пустой вывод
👍3🕊2🤨2
Всем привет!❄️ Поздравляю вас с Новым годом!
Желаю побыстрее приобрести всего, чего не хватало в прошлом году! Заниматься любимым делом, здоровья и счастья! Новый год - это лучшее время для начинания чего-то нового и интересного, если начать заниматься чем-то, до чего никак не доходили руки, но очень хотелось, то пора начинать и на следующий год будет большой результат не будет чувства сожаления!
👏8🎄21👍1🔥1
Какое число я загадал?

Сколько вопросов с ответом 'больше' или 'меньше' нужно задать, чтобы гарантированно ответить правильно?

Например, возьмём числа от 1 до 200, для ответа нужно найти двоичный логарифм максимального числа в диапазоне, у нас максимальное число - 200. Двоичный логарифм 200 - 8

Простое объяснение

Двоичный логарифм числа - это степень, в которую нужно умножить 2, чтобы получить первое число большее или равное большему в диапазоне.

Как это работает?

Пусть, собеседник загадал число 154, 200 делим на 2, получаем 100, собеседник отвечает 'больше', значит число в диапазоне от 100 до 200(всего 100 чисел), 100 делим на 2, будет 50, 100 + 50 = 150, собеседник отвечает 'больше', значит число находится в диапазоне от 150 до 200(всего 50 чисел), 50 разделить на 2 = 25, 150 + 25 = 175, человек говорит 'меньше', это означает, что число в диапазоне от 150 до 175(всего 25 чисел), 25 делим на 2 = 12(округляя в меньшую сторону), 150 + 12 = 162, человек говорит меньше, значит число в диапазоне от 150 до 162, 12 / 2 = 6, от 150 до 156 6 чисел, слышим 'меньше', 6 / 2 = 3, после числа 153, слышим 'больше', значит загадано 154 или 155, 3/2 = 1(округляя в меньшую сторону), 153 + 1 = 154, 154 оказывается загаданным числом.
👍82🤔2
hangman.py
23.1 KB
Всем привет!
Хочу поделиться своим новым проектом, Hangnam(490 строк), выбор языка, выбор сложностей, изображение состояния, 300+ слов на рус и англ в словарях для угадывания, много бонусов и не меньше всего интересного.
👍8👏2🤓1
Про return в функциях

Функции могут возвращать различные значения с помощью return(строки, числа, списки, True, False), причём при возвращении первого значения функция прекращает свою работу, но как вернуть несколько значений. Можно использовать return, который возвращает несколько значений(Пример: return 1, 2, 3, 4), можно возвращать сколько угодно значений, но для каждое возвращаемое значение должно где-то храниться(Пример: num1, num2, num3 = get_numbers().
👍6🤔3👏2
Модуль random

Данный модуль используется для генерации 'случайных' чисел.

randint() - этот метод возвращает сгенерированное число в заданном диапазоне(включая последнее число). Можно использовать для разных интерактивных программ, например, если программа должна рандомно выбрать оператор для двух операндов(+, -, *, /....)

randrange() - этот метод возвращает сгенерированное число и работает как range(), то есть можно передавать шаг, левую границу и правую границу(которая не будет включена).

choice() этот метод возвращает одно случайное значение из заданного списка.
👍7
Методы модуля random возвращают не случайные

По идее, методы модуля random направлены на возвращение случайных чисел. Да, это действительно так, если не вникаться в подробности. На самом деле, в этом модуле, числа высчитываются по специальной формуле. Но для вычисления числа по формуле, нужно знать начальное значение.
Системное время - это время, которое считается до маленьких единиц времени. Для начального значения, модуль random берёт цифры этого значеия.
🔥4👍3🤓2
hangman.py
30.7 KB
Всем привет!
Это файл c улучшенной версией hangman, я вылавливал ошибки и баги в игре и вот описание игры, на самом деле, в проекте я закомментировал описание игры, но оно на англ.
Краткое игры(без описания кода), так как с прикреплённым файлом большое описание не получится.
Это игра hangman('Палач' или 'Виселица'), пользователь может выбрать язык игры(рус или англ) и режим игры(лёгкий, нормальный или сложный), игроку загадывается слово из отдельных кортежей. Слова достаточно интересные, так как я пытался добавлять не все подряд, а интересные. Даётся длина загаданного слова(количество букв) и человек выбирает букву, если выбранная буква есть в слове - открываются все данные буквы в слове, иначе - отнимается попытка, каждую попытку картинка виселицы всё больше прорисовывается.
Присутствует 2 бонуса:
1 Бонус - открывается первая и последняя буква(для лёгкого режима)
2 Бонус - показывается категория данного слова(для лёгкого и нормального режима)
👍51
Модуль random (2 часть)

shuffle() - принимает список в виде аргумента и 'случайно' перемешивает его элементы.

uniform() - принимает в качестве аргументов начало диапазона, конец диапазона и выводит 'рандомное' вещественное число.

sample() - принимает в качестве аргументов список и количество 'случайных' элементов из списка и выводит заданное количество 'случайных' элементов из списка.
👍5
Списочные выражения

Списочные выражение или генератор списков - это быстрый и компактный способ создания списка с различными элементами. Для такого способа, в квадратных скобках нужно поместить выражение, результат которого поместится в список и цикл for, цикл может быть вложенным(последовательность может быть в range, в строке и так далее).
👍7👏2
Словари

Словарь - это структура данных, которая хранит в себе ссылки(ключи) на объекты. Словарь содержит ссылку на значение и само значение, то есть с помощью словаря мы можем обращаться ко многим значениям c помощью их индивидуальных ссылок, словарь создаётся с помощью фигурных скобок или dict().
👍9💊1
Задача Иосифа Флавия

Армия, в которой состоял Иосиф состояла из 41 человека, они решили скрыться в пещере, но армия римлян нашла их, вся армия Иосифа предпочла путь самоубийством, чтобы не сдаваться в плен, вся армия села вкруг, первый человек убивал второго, третий четвёртого, пятый шестого и так далее, Иосиф заранее рассчитав сел на 19 место и остался последним живым.

Да, такая задача легко решается при помощи программы с любыми произвольными входными данными(количество людей в кругу, какой человек по счёту выбывает(например: выбывает каждый четвёртый в кругу из девяти человек, выбывает 4, потом 8, потом 3 и так далее)), но как Иосиф так быстро узнал своё место, ведь в те года, наверно у него не было компьютера...🤔
👍73🤔2🔥1💩1🤗1
Представление значений bool с помощью других типов данных.

С помощью чисел: 0 и -0 - False, все остальные числа - True.
С помощью строк: пустая строка - False, любая другая строка - True.
С помощью списков и словарей: пустой список/словарь - False, иначе - True.

Есть встроенная функция bool(), которая принимает 1 необязательный аргумент, она преобразовывает объект в булев тип данных. Если её вызвать без аргументов, то она вернёт False.

Таким образом, мы можем сокращать данные операции:

If len('Python') > 0: = If 'Python':
if num % 2 != 0: = if num % 2:
И так далее...
👍7🔥6👏41🤮1💘1