Самоучитель для начинающих: как освоить Python с нуля за 30 минут?
Введение в Python за полчаса, а также подборка книг и YouTube-каналов на несколько месяцев интенсивного, но более вдумчивого изучения. Обсудить Прочитав статью, вы познакомитесь с особенностями языка Python, основными типами данных, условными операторы, циклами и работой с файлами. В заключении приведена подборка литературы и каналов на YouTube, а также бесплатных курсов. *** Python в Ubuntu предустановлен. Чтобы узнать версию Python, откроем терминал комбинацией клавиш Для Windows нужно скачать Python с официального сайта и установить как обычную программу. Для работы нам понадобится редактор кода (IDE). Самые популярные: Для установки Atom в Ubuntu введем в терминале: Рис. 1. Страница установки Atom для Windows Для Windows скачаем Atom с официального сайта. После установки редактора кода установим для него плагин Создадим проект, в котором будем хранить код и другие файлы. Для этого перейдем во вкладку Если под рукой только смартфон, воспользуемся бесплатными онлайн-редакторами кода: Python использует отступы, чтобы обозначить начало блока кода: Python выдаст ошибку, если вы пропустите отступ: Рекомендуется использовать отступ, равный четырем пробелам. Создадим файл Напишем в У нас установлен плагин После запуска кода появится окно терминала с результатом или ошибкой. В нашем случае в терминале отобразится фраза Здесь: Также можно использовать переменную Python – язык с динамической типизацией, то есть нам не нужно заранее объявлять тип переменной, является ли она строкой, числом и так далее. О функциях поговорим в конце статьи, сейчас разберемся со строками и другими типами данных. Строка – упорядоченная последовательность символов, заключенная в одинарные или двойные кавычки: Изменение регистра первого символа к верхнему регистру с помощью метода Преобразование всех символов к верхнему и нижнему регистру методами Объединение строк (конкатенация). Строки объединяются с помощью знака сложения Повторение строки: Вычисление длины строки. Чтобы определить длину строки воспользуемся встроенной функцией Рис. 2. Доступ к элементу строки по индексу в Python Индексация начинается с Для получения элемента по индексу воспользуемся квадратными скобками В предыдущем примере по индексу мы получали один элемент строки. По срезу можно получить несколько элементов: Как формируется срез: Получим с помощью среза последний элемент: Все элементы, кроме первого: Все элементы, кроме последнего: Создание копии строки через срез: Методом В скобках метода Для удаление пробелов слева и справа применяется метод Преобразование строки в список индивидуальных символов: Целые числа (int) не имеют дробной части: Число с плавающей точкой (float) имеет дробную часть: Операции над числами: Порядок операций. Выражение в скобках будет просчитываться в первую очередь: Чтобы преобразовать число с плавающей точкой в целое воспользуемся функцией Список (англ. list) – набор упорядоченных элементов произвольных типов. Списки задаются квадратными скобками Создадим список Обратимся к второму элементу списка: Чтобы изменить элемент списка, обратимся к нему по индексу и присвоим новое значение: Для добавления элемента в конец списка воспользуемся методом Метод Число Для удаления элемента из списка, обратимся к элементу по индексу, используя команду Другой способ удаления – метод В двух предыдущих примерах мы удаляли элемент по его индексу. Теперь удалим элемент по его значению с помощью метода Чтобы упорядочить список по алфавиту используем метод Список в обратном порядке выводится методом Для определения длины списка воспользуемся функцией Рис. 3. Доступ к элементам кортежа по индексу в Python Кортеж (англ. tuple), как и список хранит элементы, только в отличие от списка, элементы кортежа не изменяются. Кортеж задается круглыми скобками Одноэлементный кортеж задается с помощью запятой после первого элемента. Без запятой получим список. Чтобы узнать какой тип данных мы получаем на выходе воспользуемся функцией Конкатенация кортежей: Повторение кортежа: Срез кортежа: Чтобы создать список из элементов кортежа применим функцию Рис. 4. Устройство словаря в Python Словарь – неупорядоченная коллекция произвольных элементов, состоящих из пар «ключ-значение». Словарь объявляется через фигурные скобки Получим по ключам соответствующие значения из словаря Чтобы добавить новую пару «ключ-значение» используем следующую запись Изменение существующего значения похоже на добавление нового значения Командой Множества – неупорядоченные последовательности не повторяющихся элементов. Множество задается чрез фигурные скобки Операции над множествами: С помощью функции Здесь: Попробуем дозаписать числа в конец файла: Здесь: Без переноса строки результат будет следующий: Для ввода данных применяется функция Рис. 5. Условный оператор if в Python Оператор Попробуем оператор Рис. 6. Цикл while в Python Напишем цикл, который 5 раз выведет на экран слово Здесь: Бесконечный цикл записывается с помощью Рис. 7. Цикл for в Python Цикл Здесь: Второй вариант записи: Функция выполняет одну конкретную задачу и имеет имя. Напишем функцию Здесь: Напишем функцию Здесь: Модуль – файл, содержащий функции, классы и данные, которые можно использовать в других программах. Здесь: Это был импорт отдельной функции. Теперь импортируем весь модуль и обратимся к функции через Комментирование кода помогает объяснить логику работы программы. Однострочный комментарий начинается с хеш-символа Многострочный комментарий заключается с обеих сторон в три кавычки: Больше шпаргалок в нашей группе ВКонтакте. Бесплатные курсы на русском и английском языках в YouTube и на образовательных ресурсах: На английском: На русском: *** Мы кратко познакомились с основными понятиями Python: команды, функции, операторы и типы данных. У этого языка низкий порог вхождения, простой синтаксис, поэтому вероятность освоить его человеку, который никогда не занимался программированием – высокая (по моей субъективной оценке – 90%). *** На Python создают прикладные приложения, пишут тесты и бэкенд веб-приложений, автоматизируют задачи в системном администрировании, используют в нейронных сетях и анализе больших данных. Язык программирования можно изучить самостоятельно, так как много платных и бесплатных онлайн-тренажеров. Фундаментальным знаниям уделяют внимание меньше. Поэтому мы (Proglib + МГУ) запускаем онлайн-курс по математике в Data Science в формате прямого эфира с преподавателем. Пять месяцев, два раза в неделю по два академических часа. Старт курса 20 февраля. Ниже лекция преподавателя МГУ по комбинаторике для начинающих с примерами: Лекция по комбинаторике для начинающих Подробнее о курсе Установка Python
Ctrl + Alt + T
и введем следующую команду:
python3 --version
Установка редактора кода
wget -qO - https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add - sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list' sudo apt-get update sudo apt-get install atom
run-python-simply
(есть и другие) для запуска Python. Два способа установки:Install
.File
→ Settings
→ Install
, введем в поле поиска run-python-simply
и установим его.Создание проекта
File
→ Add Project Folder
и выберем любую свободную папку. Онлайн-редакторы кода
1. Синтаксис
if 3 > 1: print("Три больше единицы") # Три больше единицы
if 3 > 1: print("Три больше единицы") # Ошибка: IndentationError: expected an indented block
2. Hello, World
example.py
, где example
– имя файла, .py
– расширение, которое означает, что программа написана на языке программирования Python. example.py
следующую строчку:
print('Hello, World') # Hello, World
run-python-simply
и запустить код мы можем двумя способами:Packages
→ Run Python Simply
→ Toggle F5
;F5
.Hello, World
.print()
– функция, выводящая на экран фразу Hello, World
.'Hello, World'
– строка (заключена в кавычки).word
, которой присвоим значение 'Hello, World'
:
word = 'Hello, World' print(word) # Hello, World
3. Типы данных
3.1. Строки
"Cat and dog" # пример записи строки 'Cat and giraffe'
Операции со строками
title()
:
string = 'cat' print(string.title()) # Cat
upper()
и lower()
соответственно:
string = 'cat' print(string.upper()) # CAT string = 'DOG' print(string.lower()) # dog
+
:
first_animal = 'cat' second_animal = 'dog' all_animals = first_animal + ',' + ' ' + second_animal print(all_animals) # cat, dog
animal = 'Cat' print(animal * 5) # CatCatCatCatCat
len()
(сокращённое от англ. length):
animal = 'Cat' print(len(animal)) # 3
0
. В нашем случае символ C
имеет индекс 0
, a
– 1
, t
– 2
.[]
:
animal = 'Cat' print(animal[0]) # C
animal = 'CatDog' print(animal[1:3]) # at print(animal[0:6:2]) # Cto – выводится нулевой элемент и каждый второй после него
list_name[start:stop:step]
, где start
– начало среза, stop
– конец среза, step
– шаг среза.
animal = 'CatDog' print(animal[-1]) # g
animal = 'CatDog' print(animal[1:]) # atDog
animal = 'CatDog' print(animal[0:5]) # CatDo print(animal[:5]) # CatDo print(animal[:-1]) # CatDo
animal = 'CatDog' animal_copy = animal[:] print(animal_copy) # CatDog
replace()
заменим символы в строке:
animal = 'CatDog' print(animal.replace('Cat', 'Dog')) # DogDog
replace()
указана дополнительная информация: Cat
– элемент, подлежащий замене на элемент Dog
. strip()
, только справа – rstrip()
, только слева – lstrip()
:
animal = ' CatDog ' print(animal.strip()) # CatDog print(animal.rstrip()) # CatDog – здесь остался пробел слева print(animal.lstrip()) # CatDog – здесь остался пробел справа
animal = 'CatDog ' print(list(animal)) # ['C', 'a', 't', 'D', 'o', 'g', ' ']
3.2. Числа
print(25 + 0 - 24) # 1
print(2.8 + 4.1) # 6.8999999999999995
print(2 + 3) # Сложение: 5 print(5 - 4) # Вычитание: 1 print(5 * 5) # Умножение: 25 print(4 / 2) # Деление: 2.0 print(4 ** 4) # Возведение в степень: 256
print(3*4 + 5) # 17 print(3*(4 + 5)) # 27
int()
, а для обратного преобразования – функцией float()
:
print(int(5.156)) # 5 print(float(4)) # 4.0
3.3. Списки
[]
и содержат объекты любого типа: строки, числа, другие списки и так далее. Элементы можно менять по индексу.animals
и выведем его на экран:
animals = ['cat', 'dog', 'giraffe'] print(animals) # ['cat', 'dog', 'giraffe']
animals = ['cat', 'dog', 'giraffe'] print(animals[1]) # dog
animals = ['cat', 'dog', 'giraffe'] print(animals) # ['cat', 'dog', 'giraffe'] animals[2] = 'orangutan' # меняем третий элемент print(animals) # ['cat', 'dog', 'orangutan'] animals[2] = ['orangutan'] print(animals) # ['cat', 'dog', ['orangutan']] – список внутри списка, вложенный список
append()
:
animals = ['cat', 'dog', 'giraffe'] animals.append('tyrannosaurus') print(animals) # ['cat', 'dog', 'giraffe', 'tyrannosaurus']
insert()
вставляет элемент по индексу:
animals = ['cat', 'dog', 'giraffe'] animals.insert(1, 43) print(animals) # ['cat', 43, 'dog', 'giraffe']
43
вставляется на место с индексом 1
, остальные элементы сдвигаются вправо. Первый элемент остается на прежнем месте.del
:
animals = ['cat', 'dog', 'giraffe'] del animals[2] print(animals) # ['cat', 'dog']
pop()
:
animals = ['cat', 'dog', 'giraffe'] animals.pop(2) print(animals) # ['cat', 'dog']
remove()
:
animals = ['cat', 'dog', 'giraffe'] animals.remove('dog') print(animals) # ['cat', 'giraffe']
sort()
:
animals = ['giraffe', 'cat', 'dog'] animals.sort() print(animals) # ['cat', 'dog', 'giraffe']
reverse()
:
animals = ['cat', 'dog', 'giraffe'] animals.reverse() print(animals) # [giraffe', 'dog', 'cat']
len()
:
animals = ['cat', 'dog', 'giraffe'] print(len(animals)) # 3
3.4. Кортежи
()
:
animals = ('cat', 'dog', 'giraffe') print(animals[0]) # Получение элемента кортежа с индексом 0: cat
type()
:
animals = ('cat',) print(animals) # ('cat',) print(type(animals)) # <class 'tuple'> – кортеж animals = ('cat') print(animals) # cat print(type(animals)) # <class 'str'> – строка
print(('cat',) + ('dog', 2)) # ('cat', 'dog', 2)
print(('cat', 'dog', 4) * 2) # ('cat', 'dog', 4, 'cat', 'dog', 4)
animals = ('cat', 'dog', 'giraffe') print(animals[0:1]) # ('cat',) print(animals[0:2]) # ('cat', 'dog')
list()
:
animals_tuple = ('cat', 'dog', 33) animals_list = list(animals_tuple) print(animals_list) # ['cat', 'dog', 33]
3.5. Словари
{}
: dictionary = {‘pets
‘: ‘cat
‘, ‘numbers
‘: (1, 2)
}, где pets
и numbers
– ключи, а cat
, (1, 2)
– значения. Если в списке мы получаем объект по его индексу, то в словаре по ключу. dictionary
:
dictionary = {'pets': 'cat', 'numbers': (1, 2)} print(dictionary['pets']) # cat print(dictionary['numbers']) # (1, 2) print(dictionary['numbers'][1]) # 2
словарь['новый_ключ'] = новое_значение
:
dictionary = {'pets': 'cat', 'numbers': (1, 2)} dictionary['dinosaur'] = 'tyrannosaurus', 'pterodactylus' print(dictionary) # {'pets': 'cat', 'numbers': (1, 2), 'dinosaur': ('tyrannosaurus', 'pterodactylus')}
словарь['существующий_ключ'] = новое_значение
:
dictionary = {'pets': 'cat', 'numbers': (1, 2)} dictionary['pets'] = 'dog' print(dictionary) # {'pets': 'dog', 'numbers': (1, 2)}
del
можно удалить ключ со значением:
dictionary = {'pets': 'cat', 'numbers': (1, 2)} del dictionary['pets'] print(dictionary) # {'numbers': (1, 2)}
3.6. Множества
{}
:
animals_and_numbers = {'cat', 'dog', 99, 100} print(animals_and_numbers) # {'cat', 99, 100, 'dog'}
animals_and_numbers = {'cat', 'dog', 99, 100} numbers = {555, 99} animals = {'cat', 'dog'} print(animals_and_numbers.union(numbers)) # {'cat', 99, 100, 'dog', 555} – добавляет в множество animals_and_numbers элементы множества numbers print(animals_and_numbers.intersection(numbers)) # {99} – возвращает множество, являющееся пересечением множеств animals_and_numbers и numbers print(animals_and_numbers.difference(numbers)) # {'cat', 'dog', 100} – Возвращает разность множеств animals_and_numbers и numbers print(animals_and_numbers.issuperset(animals)) # True – Возвращает True, если animals является подмножеством animals_and_numbers.
3.7. Файлы
open()
мы создаем файловый объект для работы с файлами. Создадим в папке с python-файлом текстовой файл example.txt
, напишем в нем слово test
, сохраним и закроем. Следующий код открывает и выводит на экран содержимое текстового файла example.txt
:
with open('example.txt', 'r') as file: for line in file: print(line)
example.txt
– путь к файлу и его имя. В нашем случае файл расположен в папке с выполняемой программой.r
– режим работы «только чтение».
numbers = ['0', '1', '2', '3'] with open('example.txt', 'a') as file: for number in numbers: file.write(number + 'n') 0 # в файл запишется последовательность чисел, каждое число с новой строчки 1 2 3
numbers
– список чисел.a
– режим записи «в конец текстового файла».n
– перенос на новую строчку.
numbers = ['0', '1', '2', '3'] with open('example.txt', 'a') as file: for number in numbers: file.write(number) 0123 # результат записи без переноса строки
4. Ввод данных
input()
:
input_word = input('Введите какое-нибудь слово: ') print('Слово: ' + input_word)
5. Условные инструкции
if
выполняет код в зависимости от условия. Проверим, если число три меньше пяти, то выведем на экран слово true
:
if 3 < 5: print('true') # true
if-else
. else
переводится как «в другом случае». Когда условие if
не выполняется, то идет выполнение кода после else
:
if 3 > 5: print('true') else: print('false') # false
elif
= else
+ if
– код выполняется, если предыдущее условие ложно, а текущее истинно:
number = 15 if number < 3: print('число меньше трех') elif 4 < number < 10: print('число в промежутке от 4 до 10') elif number > 10: print('число больше 10') # число больше 10
6. Цикл while
hello
:
x = 0 while x < 5: print('hello') x += 1 # получаем пять раз слово hello hello hello hello hello hello
while
– обозначение цикла.x < 5
– условие, которое записывается после while
. Каждый раз после выполнения цикла (после одной итерации) проверяется это условие. Если оно становится ложным, цикл прекращает работу.print('hello')
– вывести на экран слово hello
.x += 1
– это сокращенный способ записи x = x + 1
. То есть при каждой итерации значение x увеличивается на единицу.while True
:
while True: print('hello') hello hello hello hello hello …
7. Цикл for
for
перебирает элементы последовательности:
numbers = ['0', '1', '2', '3'] for i in range(0, len(numbers)): print(numbers[i]) # на экран выводятся числа 0, 1, 2 и 3 0 1 2 3
i
– переменная, которая принимает значение из диапазона значений range(0, len(numbers))
.range(0, len(numbers))
– последовательность чисел от 0
до значения длины списка numbers
.print(numbers[i])
– тело цикла, выводит на экран i-й элемент списка numbers
.
numbers = ['0', '1', '2', '3'] for number in numbers: print(number) # идентичный результат 0 1 2 3
8. Функции
greeting()
, которая выводит на экран приветствие:
def greeting(): # объявление функции print('hello') # тело функции greeting() # запуск функции
def
– создает объект функции и присваивает ей имя greeting
. В скобках можно указать аргументы (см. следующий пример). В нашем случае аргументов нет и скобки пустые.print('hello')
– выводит на экран слово hello
.summation()
, которая складывает два числа:
def summation (a, b): return print(a + b) summation(3, 8) # 11
a
и b
– аргументы функции.return
возвращает значение функции.9. Модули
from math import trunc print(trunc(3.9)) # 3
from math import trunc
– из встроенного в Python модуля math
импортируем функцию trunc
, которая отбрасывает дробную часть числа. модуль.имя_функции()
:
import math print(math.trunc(3.9)) # 3
10. Комментарии
#
:
a = 45 # комментарий к коду
""" a = 45 b = 99 """
Литература
Шпаргалки
YouTube-каналы и курсы
Python в «Библиотеке Программиста»
- 20 views
- 0 Comment