Урок 1

Python*

Не вижу особого смысла что то расписывать про язык, так как каждый способен прочесть на вики про него. Скажу только, что ниже идет краткое описание базовых особенностей языка, которые, на мой взгляд, помогут начать пользоваться им, писать разного рода приложения. Это ни в коем случае не полное обучение языку, а лишь отправной пункт в познании языка. После ознакомления с этим курсом, я надеюсь, основные моменты языка станут понятны, и появится желание изучать язык дальше.

Если в ходе прочтения будут возникать вопросы или недопонимания — не стоит буксовать на месте, необходимо эксперементировать с полученными знаниями, гуглить примеры, и тогда будет, вероятно, придет более глубокое понимание материала.

Если же, какая то часть ни в какую не поддается, то, вероятно, не достаточно базовых знаний в программировании (переменные, понятия функций, алгоритмов и тд) и стоит подтянуть именно эту часть.

В принципе, нечего тянуть, пора начинать. Начнечнем же с…

Типы данных

Как и любой другой язык програмирования, Python работает с данными и переменными, и используюет достаточно стандартный набор типов данных

Переменные достаточно просто объявляются <Имя переменной (регистрозависимо)> = <значение>

Основные типы — строки (в кавычках, к примеру: “Привет!”), целые числа (к примеру: 3), дробные числа (целы и дробные части отделены знаком точки, к примеру: 3.6)
Преобразование типов — str(<переменная>), int(<переменная>), float(<переменная>)

Пример:

a=str(67)

В данном примере, переменной а присваиваем значение “число 67” преобразованное в строку (в итоге будет “67”)

Основные операции — сложение +, вычитание -, деление /. умножение *, возведение в степень **, остаток от деления //, знаминатель %

Операция деления — результат всегда дробь

Со строками можно производить почти все основные операции.

удалить переменную можно del

Ввод и вывод

Вывод информации на экран при помощи print

print — В разных версиях языка по разному, но в данном случае, рассматриваем версию языка 3.6 (в данном случае код совместим с 2.7). Так вот, print — это функция, и объявляется так — print(<какй либо текст>)

Пример:

a="Text in variable a"
b=13
print ( "Some text " + a + str(b) )

Результат:

Enter some text: asd
asd

В данном примере, программа сперва выведет текст “”

Some text Text in variable a 13

Ввод данных при помощи input

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

Пример:

a=input("Enter some text: ")
print (a)

Результат:

Enter some text: asd
asd

В данном примере, программа сперва выведет текст “Enter some text:”, затем будет ждать ввода от пользователя (я в примере ввел “asd”), которое запишет в переменую а (значение будет строкой!), и в итоге выведет значение переменной a

Массивы

Массив — само по себе понятие из других языков, в питоне же принято употреблять конкретные типы, но для простоты я буду применять именно это понятие. Так вот, массив — это по сути просто набор (структура, таблица, последовательность и тд) данных в виде компонентов массива (элементов) расположенных в памяти непосредственно друг за другом (разделены запятой), что позволяет обращаться к элементам по числовому индексу (правда, в случае со словарем, индекс мы непосредственно задаем, но об этом ниже)

Примеров я приводить много не буду, все типы массивов объявляются одинаково:

<переменная> = <тип массива>

list (список) — объявляется чере квадратные скобки: [1,2,3]
основные методы (обращение к методам происходит через <объект>.<метод>) append, remove (удаление первого элемента), extend (к списку добавляет другой список), insert(i,x) (добавляет число x на позицию i ), pop(x) (удаление элемента по позиции), clear() — очистка, index(“x”) — возвращает индекс элемента, sort(key=None, reverse=False) (сортировка), reverse (реверсирует)

кареж — тот же список, только изменять нельзя. Объявляется через круглые скобки: (1,2,3)

словарь — массив с ключами, объявляется через фигурные скобки и элементы имеют вид ключ:значение. Имеет вид: {“a”:1, “b”:2, “c”:3}. Из интерсных метод get, который не упадет, если вызвать несуществующий элемент

множество — контейнер с уникальными элементами. Так же через круглые скобко, но без ключей: {1,2,3}. Стоит лишний раз обратить внимание, что элементы уникальные. Если мы попытаемся добавить уже существующий элемент — то он попросту не добавится.

Обращение к элементам массива происходит по средствам указания индекса в виде mas[x]

Длина массива — a=len(mas) (возвращается значение типа int)

Срезы — это когда мы обращаемся так mas[x:y:z] — x — начальный элемент (по умолчанию 0), y — конечный (по умолчанию конечный символ включительно), z — шаг (по умолчанию 1). Значения могут быть отрицательными, это значит, что можно задавать направление. Первый элемент всегда 0. Последний -1. Отрицательный шаг — шаг в обратном направлении. Если значение не указано — обычно берется значение по умолчанию

Пример:

print(mass[:-2:2])

Произойдет вывод символов от первого (первый элемент имеет индекс 0) до предпоследнего с шагом 2 (каждый 2 элемент)

функция range(x,y,z)— возвращает список чисел, начиная с x до y (не включительно) с шагом z. Можно указывать только Y, в этом случае начальное будет 0, шаг — 1. Пример range(10), результат будет 0,1,2,3,4,5,6,7,8,9. Но что бы заполнить переменную этим списком, необходимо проделать подобное:

a=list(range(10))

Так же со строкой можно работать как со списком, обращаясь по индексу или организовывая срезы

К слову о строках. У строк есть масса своих методов. Вот лишь малая часть, которая может пригодиться:

  • lower(): переводит строку в нижний регистр

  • upper(): переводит строку в вехний регистр

  • title(): начальные символы всех слов в строке переводятся в верхний регистр

  • capitalize(): переводит в верхний регистр первую букву только самого первого слова строки

  • lstrip(): удаляет начальные пробелы из строки

  • rstrip(): удаляет конечные пробелы из строки

  • strip(): удаляет начальные и конечные пробелы из строки

  • find(str[, start [, end]): возвращает индекс подстроки в строке. Если подстрока не найдена, возвращается число -1

  • replace(old, new[, num]): заменяет в строке одну подстроку на другую

  • split([delimeter[, num]]): разбивает строку на подстроки в зависимости от разделителя

!!!Важно знать!!!

В качестве эллемента любого списка может быть другой список
Пример:

list=[1,2,3,[4,5,6]]

print (list[0])
Вывод: 1

`print (list[3][0])«
Вывод: 4

list=[1,2,3,[1,2,3]]

print (list[list[3][0]])
Вывод: 2

Логические операторы

Булийные типы True и False. По сути обознает тоже что и дословный перевод — истинно или ложно.

Логические операции: >(больше), <(меньше), ==(равенство), !=(неравенство). Так же для всех массивов есть in, и отрицание not
Результат логической операции будет Булийное значение. Так же могут быть иные функции которые возвращают булийный результат. К примеру, в дополнение пара полезных методов строк

  • isalpha(str): возвращает True, если строка состоит только из алфавитных символов

  • islower(str): возвращает True, если строка состоит только из символов в нижнем регистре

  • isdigit(str): возвращает True, если все символы строки — цифры

  • isnumeric(str): возвращает True, если строка представляет собой число

  • startwith(str): возвращает True, если строка начинается с подстроки str

  • endwith(str): возвращает True, если строка заканчивается на подстроку str
    Пример:

a="Abc"
a.startswith("A")

Логические операции — Логическиое И. Логическое ИЛИ. Стандартно — И (and) всегда принимает True, когда все его элементы принимают True. Или (or) — достаточно одного True.

True and False = False
True and True = True
False and False = False
True or False = True
False or False = False

Условный оператор if…: elif…: else:
if — дословно — Если <что-то>
elif — сокращение от else if — в ином случае если <что-то>
else — в ином случае

Все просто:
if <логическая операция>:
<Код, выполняемый в случае Истины>
elif <логическая операция>:
<Код, в случае если в IF было фолс, но в elif — True>
else:
<Код, если ни в одном из прошлы не было True>

else и elif не обязательны

Пример:

a=3
b=3
if a==b:
	print("a=b")
elif a<b:
	print ("a<b")
else:
	print ("bla-bla")

Данный код выведит текст a=b, так как значения переменных равны и в результате логической операции в if мы получим True

Форматирование строк

В конце стоит бегло познакомиться с возможностью форматировать строки.

Стандартный вывод строки, через конкатинацию (сложение строк) выглядит так

Пример:

Name = "Petr"
age = 47
print ("Hi "+Name+"! You are "+str(age)+" years old!")

Результат:

Hi Petr! You are 47 years old!

В данном случае всего 2 переменные, а уже можно запутаться!

Что бы немного упростить работу со строками, в python присутствует форматирование. Есть два способа:

  1. Через указание типов переменных с помощью знака %
    В строке, куда надо вставить переменную, указываем тип переменной — %s — строка; %d — целочисленный тип; %f — дробь. Затем указываем %(<variable>). Данный способ удобнее в том случае, если идет работа с большой строкой, но при этом надо всегда учитывать типы переменных (хотя никто не мешает везде использовать %s и приобразовывать все в строку)
    Пример:
Name = "Petr"
age = 47
print ("Hi %s! You are %d years old!"%(Name,age))

Результат:

Hi Petr! You are 47 years old!

  1. Через метод строк format().
    Для этого в строке, куда надо вывести переменную переменную оставляем {}, затем вызываем метод format(<variable>). Кроме этого, можно указывать индексы в фигурных скобках, к каким переменным обращаться (если не делать этого, то обращение будет по порядку)

Пример:

Name = "Petr"
age = 47
print ("Hi {}! You are {} years old!".format(Name,age))

Результат:

Hi Petr! You are 47 years old!

Пример:

Name = "Petr"
age = 47
print ("Hi {1}! You are {1} years old!".format(Name,age))

Результат:

Hi 47! You are 47 years old!

Задание:

Программа, которая попреветсвует, попросит представиться, выведет имя.
В случае, если имя начинается с буквы A — Поздароваться, в противном случае написать “WTF?”

После этого программа спросит 2 числа.
Затем произведет сложение этих чисел и выведет результат на экран в формате x+y=result.

В случае, если результат меньше 5 — вывести текст что результат меньше 5
В случае, если меньше 10 — вывести текст, что результат меньше 10, но больше или равен 5
В противном случае вывести Имя задом наперед