Урок 1. Перші кроки Python.

Основи Python и Django. -> Історія мови. Переваги та недоліки.

Історія мови. Переваги та недоліки.

Python — високорівнева мова програмування загального призначення, орієнтована на підвищення продуктивності розробника та читання кодарограм з умовою.

Історія мови програмування Python розпочалася наприкінці 1980-х. Гвідо ван Россум задумав Python у 1980-х роках, а розпочав його створення у грудні 1989 року в центрі математики та інформатики в Нідерландах.

Мова Python була задумана як нащадок мови програмування ABC, здатний до обробки винятків та взаємодії з операційною системою Амеба.

Мета проекту Amoeba — створити систему розподілених обчислень, яка б надавала користувачеві мережу комп’ютерів як одну робочу станцію.

Мова Python була задумана як нащадок мови програмування ABC, здатний до обробки винятків та взаємодії з операційною системою Амеба.

Мета проекту Amoeba — створити систему розподілених обчислень, яка б надавала користувачеві мережу комп’ютерів як одну робочу станцію.

Гвідо Ван Россум, працюючи над розробкою мови ABC у Голландському інституті CWI, зрозумів, що хотів би створити щось нове.

Програма мовою ABC, що повертає список слів у документі:

PUT {} IN collection
FOR line IN document:
  FOR word IN split line:
    IF word not.in collection:
      INSERT word IN collection
RETURN collection

Перший робочий прототип Python був створений на домашньому Макінтоші Гвідо за кілька вихідних.

Щодо розпоширення, то робилося це за допомогою Інтернету.

Мова отримала назву «Python» не на честь виду змій, як помилково вважають багато розробників.

За часів розробки «Пітона» Гвідо любив дивитися комедійне шоу «Повітряний цирк Монті Пайтона», тому й назвав свій проект на честь Монті Пайтона.

Так як Пітон мав відмінний потенціал і вільно поширювався через Інтернет, у нього з’явилося ядро ​​послідовників - люди, які були зацікавлені у розвитку Python як програмування.

На початку свого шляху, ця мова мала вигляд невеликого інтерпретатора з малою кількістю функцій та повною відсутністю ОВП, що всіх не влаштовувало та мотивувало на подальший розвиток мови.

Вже 1991 року почали з’являтися перші засоби ОВП розробки.

Далі Гвідо вирішив шукати спонсора, який дасть змогу працювати лише над розвитком мови.

Так як на той час в інтернеті вже існувала чимала спільнота користувачів, фірма BeOpen вирішила взяти участь у просуванні Python.

Через деякий час у компанії BeOpen почалися проблеми та своє фінансування йому запропонувала компанія Digital Creations.

У цій компанії вся команда розробників Пітону отримала великі можливості, що дало плоди.

У тому ж році було випущено версію 2.1. Тепер у Пітоні з’явилися нові об’єкти з мов closures та ієрархія: функції можна було вкладати одна в одну, зберігаючи при цьому доступ до змінних навколишніх функцій.

Це сильно змінить мову, а головне значно покращить її підходи до способу програмування.

На даний момент існує версія 3.5.1, що демонструє його розвиток, адже щороку розробники роблять величезну роботу.

Все це перетворило простий інтерпретатор на дуже популярну мову програмування, яка використовується як перша в навчанні мільйонів студентів по всьому світу.

Основні етапи розвитку.

Python 1.0 з’явився у січні 1994 року.

Основними новими можливостями, включеними до цього релізу, були засоби функціонального програмування: лямбда-обчислення, map, filter та згортка списку.

Ван Россум стверджував, що “Python” придбав lambda, reduce(), filter() і map() завдяки любителю Lisp, якому їх не вистачало, і він надав патчі, що реалізують ці функції”.

Lambda

def identity(x):
    return x+1

lambda x: x+1

Map map(fun, iter)

def addition(n): 
    return n + n

# We double all numbers using map() 
numbers = (1, 2, 3, 4) 
result = map(addition, numbers)

Filter filter(function, sequence)

def fun(variable): 
    letters = ['a', 'e', 'i', 'o', 'u'] 
    if (variable in letters): 
        return True
    else: 
        return False


# sequence 
sequence = ['g', 'e', 'e', 'j', 'k', 's', 'p', 'r']

Reduce reduce(function, iterable[, initializer])

func – Функція, яку потрібно застосувати до елементів послідовності.

Повинна приймати два аргументи, де перший аргумент - акумульоване раніше значення, а другий - наступний елемент послідовності.

def reducer_func(el_prev, el):
    # el_prev - попередній елемент
    # el - поточний елемент
    return el_prev + el
from functools import reduce #python 3
print(reduce(reducer_func, [1, 2, 3]))

У версії Python 2.0 з’явилося спискове включення – функція, запозичена з функціональних мов програмування SETL та Haskell.

Парні числа від 2 до 9998 включно

[n for n in range(1, 10000) if n % 2 == 0]

Python 2.2 Python став повністю об’єктно-орієнтованою мовою. Тоді ж було додано генератори.

def my_gen():
    n = 1
    print('This is printed first')
    # Generator function contains yield statements
    yield n

    n += 1
    print('This is printed second')
    yield n

    n += 1
    print('This is printed at last')
    yield n

for item in my_gen(): print(item)

У листопаді 2014 року було оголошено, що Python 2.7 буде підтримуватися до 2020 року, і підтверджено, що релізу 2.8 не буде, оскільки передбачається, що користувачі повинні переходити на версію 3.4+ за першої ж можливості.

Python 3.0 розроблявся з тією самою філософією, що й попередні версії. Однак, оскільки в Python зібралися нові і, що стали надмірними, старі способи вирішення тих самих завдань,

в Python 3.0 був зроблений упор на видаленні конструкцій і модулів, що дублюються, дотримуючись принципу: «має існувати один і, бажано, тільки один очевидний спосіб зробити це».

Проте Python залишався «мультипарадигменною» мовою. Програміст все ще міг вибирати між об’єктно-орієнтованим, структурним, функціональним програмуванням та іншими парадигмами.

Переваги Python.

Низький поріг входження.

Логічний, лаконічний та зрозумілий.

Кросплатформовий.

Широке застосування. Використовується для розробки веб-застосунків, ігор, зручний для автоматизації, математичних обчислень, машинного навчання.

Існує реалізація під назвою Micro Python, оптимізована для запуску мікроконтролерів (можна писати інструкції, логіку взаємодії пристроїв, організовувати зв’язок, реалізовувати розумний будинок).

Сильне ком’юніті.

Потужна підтримка компаній-гігантів ІТ-індустрії. Такі компанії як Google, Facebook, Dropbox, Spotify, Quora, Netflix, на певних етапах розробки використовували саме Python.

Висока затребуваність ринку праці.

У світі Python багато якісних бібліотек, тому не потрібно винаходити велосипед, якщо треба терміново вирішити якесь комерційне завдання.

Python відрізняється суворою вимогою до написання коду (вимагає відступів), що є перевагою, т.к. мова сприяє писати код організовано та красиво.

Недоліки

import pdb; pdb.set_trace()

x = ‘2’ y = 3 z = x+y

Вступ.

Python - це високорівнева мова програмування загального призначення, орієнтована на підвищення продуктивності розробника та читання коду.

Python підтримує структурне, об’єктно-орієнтоване, функціональне, імперативне та аспектно-орієнтоване програмування.

Сфера використання.

Існує безліч областей застосування Python, але в деяких він особливо добрий.

  1. Веб-розробка

Нещодавно у веб-розробці стали дуже популярні Python-фреймворки, такі як Django і Flask. Вони полегшують процес написання мовою Python коду серверної частини програм. Це код, який запускається на сервері, а не на пристроях і браузерах користувачів (frontend-код).

Flask забезпечує простоту, гнучкість та повний контроль над проектом. Він дозволяє користувачеві самостійно вирішувати, як реалізовувати ті чи інші речі.

Django - це сервіс типу “все включено”. З коробки вже є адмін-панель, інтерфейси баз даних, ORM (об’єктно-реляційне відображення) і структура каталогів для ваших проектів.

  1. data science: машинне навчання, аналіз даних та візуалізація;

Розв’язання задач розпізнавання зображень.

Існують різні бібліотеки та фреймворки для машинного навчання на Python. Дві найпопулярніші – це scikit-learn та TensorFlow.

Побудова графіків та візуалізація.

Одна з найпопулярніших бібліотек для візуалізації – Mathplotlib.

  1. Автоматизація процесів.

Одна з найпопулярніших сфер застосування Python – це написання невеликих скриптів для автоматизації різних робочих операцій та процесів.

Як приклад можна навести систему обробки електронної пошти. Для збору статистики та аналізу даних потрібно підраховувати кількість вхідних листів, які містять певні ключові слова. Це можна робити вручну, або написати простий скрипт, який все порахує сам.

Python та ігри.

Незважаючи на те, що існує бібліотека PyGame, популярність застосування Python для створення ігор невелика.

Для серйозних проектів він не підходить.

Python 3 або Python 2

Python 3 – це більш сучасний та популярний вибір.

Завдяки своїй ясності та лаконічності python використовується багатьма вузами як перша мова при вивченні програмування.

Ще один аргумент на користь Python є його спільнотою.

Це одна з найбільш доброзичливих, активних та дружніх спільнот, до якої входять вчені, фахівці з аналізу даних, веб-розробники, системні адміністратори та фахівці з теорії даних на кожному континенті.

Неважливо, чи Python є кращою мовою для конкретного завдання; головне, що він дозволяє людям розпочати.

Стандартизація мови усуває плутанину за діапазоном мов на вибір і означає, що цією мовою є багато інформації про виконання всіх видів завдань.

Встановлення з вибором версії $ sudo apt install python3.7

$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2


$ sudo update-alternatives --config python3
Основи Python и Django. -> Робота в консолі. Команди bash.

Команди BASH

Виведення на екран

echo $змінна | рядок | "рядок $змінна"

Змінні та їх виведення в консоль.

#!/bin/bash
STR="Hello World!"
echo $STR
echo $PATH # змінна пошуку команд
echo "$PATH - змінна пошуку" # форматування рядка

Команда переправлення висновку

echo 'hello' > filename.txt
echo 'hello' >> filename.txt

Змінна PATH

echo $PATH
  • це мета де система шукає виконувані файли-команди, наприклад python

    whereis python

  • виведе всі місця, де знаходяться файли для пітона

Команда pwd.

  • Вивід поточної директорії

Зміна директорії. Команда cd

cd ~ # домашня директорія

cd / # коренева директорія

cd dirname/subdir # зміна директорії

cd .. # підняття на рівень вгору

Перегляд директорії. Команда ls.

ls # короткий список
ls -l # повний список
ls -la # включаючи приховані файли
ls -lh # c коротким розміром

Команда grep.

grep -rn 'string' # пошук файлів з рядком із зазначенням номера рядка

Об’єднання команд оператор |.

ls-la | grep 'substr' # пошук файлів і директорій, що містять підрядок

Команда mkdir (створення директорії).

mkdir dirname

Команда rm.

rm ./filename # видалення файлу
rm -R dirname # видалення директорії та її вмісту

Команда nano.

nano ./filename # редагування файлу
  • ctrl+o - запис до файлу

  • ctrl+x - вихід із редактора

Команда cat

cat filename

виведення вмісту файлу

Системна змінна $PS1

echo $PS1
PS1='>>>'
export PS1='<<<'

Команда chmode.

chmode +x ./filename # зробити файл виконуваним
chmod 777 ./filename # зміна прав на файл
chmod 667 -R dirname # зміна прав на вміст директорії

Команда chown.

chown -R user:user dirname # зміна власника та групи директорії та всього вмісту рекурсивно

Рядок, що визначає вміст файлу (якою мовою python, php, bash і т.д.).

#!/bin/bash
#!/usr/bin/env python

Мова bash

Довідник з вбудованих команд

Перенаправлення введення-виводу

>> > - перенаправляє у файл

| - з'єднує виведення однієї команди із введенням іншої

Команда source та запуск bash скриптів.

myscript # запуск команди (файлу) із системних директорій
./myscript # запуск файлу з поточної дерикторії
source ./myscript # запуск скрипту в поточній сесії терміналу (оболонки) shell у поточному процесі
. ./myscript # аналог попередньої команди

Використання точки говорить про поточну директорію (що не знаходиться в змінній PATH) без точки інтерпретатор шукатиме файл у $PATH.

Використання source дозволяє змінювати оточення оболонки, т.к. виконується не в новому процесі, як із звичайному запуску (без source).

Умова. Файл .bashrc

cd() {
    builtin cd ${1:+"$@"} # виконуємо оригінальну команду з параметрами
    if [ -f "env.sh" ] # перевіряємо існування файлу
    then
     . ./env.sh # запускаємо файл
    fi
}
Основи Python и Django. -> Введення даних за допомогою клавіатури. Перша програма з умовою.

Введення з клавіатури. Умови.

Оператор input.

Для отримання даних від користувача в консолі, що вводяться з клавіатури, використовується оператор input.

Наприклад.

 print('Enter your name:')
 x = input()
 print('Hello,' + x)

При цьому все, що вводить користувач, присвоиться змінній x.

if input

 print('Ініціалізація')
 q = 'Яка у вас вага?'
 print(q)
 print("Збір даних")
 ves = input()
 print("Аналіз даних"
 print("Ви важите" + ves + "кг.")
 ves = int (ves)
 if ves < 30:
     print("Ви худий")

 elif ves >30 and ves<60:
     print("Так тримати!")

 else:
     print("Багато однак!")
Основи Python и Django. -> Python. Типи даних.

Типи даних.

Прості типи.

  • логічні

  • Числа

  • рядки

Складні типи.

  • Списки

  • словники

  • кортежі

  • множини