Решил на днях написать учебное пособие (туториал), которое хорошо бы объясняло принципы программирования на базе простого примера-калькулятора. В качестве первого языка взял Python так как он самый лёгкий ЯП для начала (я сам на нём начанал!). Итак, поехали!

Урок 1. Переменные

Возьмём самый распространённый пример первой программы для всех начинающих программистов:

print('Hello, world!')

Что делает эта функция? Судя из её названия print она печатает на экран, заключённую в кавычках(одинарных или двойных), строку Hello, world!, что означает "Привет, мир!" в переводе с английского.

Теперь, давайте перейдём к переменным.

Выражения x = 2 и y = 3 - это переменные, которые представляют собой участки памяти, хранящие информацию: числа, строки, объекты (об этом позже). Они нам знакомы ещё с математики. Теперь подставим их в функцию вывода:

x = 2

y = 3

print(x+y)

Итого мы получим в выводе число пять.

Мы могли также подставить строку "Hello, world" в print через переменную str

(переменные в программировании принято называть по-английски, чтобы код могли читать другие, да и чтоб он нормально выглядел и был читаем. Здесь str от слова string - строка)

str = "Hello, world!"

print(str)

 

…и изменять её в процессе работы программы:

str = "Hello, world!"

print(str)

str = "Hello, me!"

print(str)

Теперь напишем какое-то осмысленное приложение. Имея некоторые навыки, мы можем написать простейший калькулятор используя функцию ввода:

x = int(input('Input the x number: '))

y = int(input('Input the y number: '))

print('Result of addition: ', x + y)

print('Result of multiplication: ', x * y)

print('Result of subtraction: ', x - y)

print('Result of division: ', x / y)

 

Функция input здесь используется для ввода данных, используя строку описания вводимых данных, а функция int для преобразования введённой строки в числовой формат (не забывайте об этом! Иначе рискуете нарваться на ошибку интерпретатора Python!) И т.д. можно продолжать список математических операций над двумя переменными, но мы остановились на самых базовых из которых возможно состоит вся математика. Компьютеры зачастую понимают только арифметику поэтому для них были разработаны математические функции на базе арифметики.

Урок 2. Условные выражения.

Для создания логики программ кроме выполнения последовательных действий применяют ещё и условия. Например, этот кусок кода:

if x > y:

    print('x is greater then y')

Напечатает строку, если переменная x будет больше y.

Также можно использовать оператор == для сравнения:

first_word = input()

second_word = input()

if first_word == second_word:

    print('These word are equal.')

else:

    print('These word are NOT equal.')

Если введённые слова будут не равны сработает дополнительный оператор else который об этом предупредит.

Замечание: В Python для выделения кода который содержат операторы и функции используется отступ клавиши Tab. Если он будет неправильно выставлен, интерпретатор может выдать ошибку! Будьте внимательны!

 

Теперь модернизируем нашу прошлую программу-калькулятор:

op = input('Enter the x operation: ')

x = input('Input the x number: ')

y = input('Input the y number: ')

if op == '+':

    print('Result of addition: ', x + y)

elif op == '-':

    print('Result of subtraction: ', x - y)

elif op == '*':

    print('Result of multiplication: ', x * y)

elif op == '/':

    print('Result of division: ', x / y)

else:

    print('Unknown operation. Use +, - , * , /.')

 

Примечание: elif (else if) здесь используется для создания цепочки условий при невыполнении которых срабатывает общее правило else.

Урок 3. Циклы и массивы (списки)

Чтобы не повторять однотипные действия в языках программирования есть такое понятие как циклы. Например, цикл:

for i in range(5):

    print('Hello, world!')

Напечатает знаменитую строку «Hello, world!» 5 раз вместо поочерёдного написания строк:

print('Hello, world!')

print('Hello, world!')

print('Hello, world!')

print('Hello, world!')

print('Hello, world!')

…которые можно заменить описанными в начале статьи двумя строчками кода.

Циклы также нередко используются для перечисления элементов массива:

numbers = ['Раз', 'два', 'три', 'четыре','пять','Вышел зайчик погулять']

for i in numbers:

    print(i)

Массив — переменная, которая хранит несколько значений. В терминологии Python называется списком и может хранить разные типы данных.

Пустой массив:

array = []

Обращение к массиву:

array[порядковый_номер_элемента]

Замечание: Порядковый номер массива(индекс) во многих языках программирования начинается с нуля, а не единицы.

Итак модернизируем наконец наш калькулятор чтобы он мог складывать что-то кроме двух чисел:

str = input()

numbers = str.split(" ") #Используем в качестве разделителя чисел пробел

result = int(numbers[0]) #Собираем результаты операций в первое число

for i in range(len(numbers)): #Получаем размер массива numbers

    if numbers[i] == '+':

        result += int(numbers[i+1]) #Прибавляем следующий после знака + элемент

    if numbers[i] == '-':

        result -= int(numbers[i+1]) #Вычитаем следующий после знака -элемент

print(result)

Ввод: 3 - 2 + 2

Вывод: 3

P.S. Этот калькулятор использует только два арифметических действия: сложения и вычитания. Вообще по-хорошему надо было делать обратную польскую запись, но это может выходить за пределы этой статьи целью которой было объяснить все базовые понятия языка на одном конкретном примере. А дальше идёт только ваша фантазия и знания нужных команд (функций или методов).

Комментарии (8)


  1. HemulGM
    01.12.2024 16:14

    Нет никакого толку знать синтаксис языка, не понимая "что" и "для чего" ты будешь использовать этот синтаксис.

    "Полному нулю" нужно знать основы программирования, а не синтаксис.


  1. DuhovichSasha
    01.12.2024 16:14

    А что ещё нужно узнать "нулю" , что чтобы написать программу, например игры в кубик рубика размера 2, 3, 4 и5, а чтобы не покуть.реальные кубики?


  1. IvarsPL
    01.12.2024 16:14

    Грош цена этим знаниям. Пока не поймешь зачем и почему, ниче не напишешь кроме Hello,World


  1. wesp1nz
    01.12.2024 16:14

    В разделе переменная пишем функции print. Не зная арифметики пишем калькулятор...


  1. Vladimir_III
    01.12.2024 16:14

    Бесполезная статья, которая объясняет синтаксис, а не основы программирования


  1. lambotik
    01.12.2024 16:14

    Что за бред. Статья не о чём. Автору самому бы неплохо прокачать знания python прежде чем посты писать. Кто вас учил забронированный нейминг для переменных использовать! Начинать изучение нужно с подготовки инструментов и основ языка.


  1. trabl
    01.12.2024 16:14

    Я на stepic бесплатно курс прошел в своё время. Для базы этого оказалось вполне достаточно. В одну статью на хабре эту базу не уместить.


  1. Sedo-KFM
    01.12.2024 16:14

    Одноклассники "Серёжи" не оценили его крутой и уникальный конспект по обучению азам Python.

    Теперь "Серёжа" заливает свои конспекты на Хабр. Круто, чо, наконец-то нормальный разбор синтаксиса, давно уже пора было его кому-нибудь расписать.

    (Сори если тут реально мысли гения, не осилил пост целиком)