#!/usr/bin/env python
# coding: utf-8
# # Основы программирования в Python
#
# *Алла Тамбовцева, НИУ ВШЭ*
# ## Знакомство с Jupyter Notebook
# Jupyter Notebook чем-то похож на текстовый редактор: есть меню, панель инструментов и поле для работы (ячейки). Ячейки могут содержать как код, так и текст (неразмеченный и размеченный). Комментарии в ячейках с кодом должны начинаться со знака `#`.
#
# Пример ячейки с кодом:
# In[1]:
A = 3 # создаем переменную A и присваиваем ей значение 3
B = 0.2
# комментарий 1
# комментарий 2
print(A, B) # выводим на экран значения переменных A и B
# По умолчанию тип ячейки *Code*, это можно увидеть на панели под меню. Чтобы изменить тип ячейки нужно нажать на стрелочку вниз и выбрать нужный вариант. Всего вариантов четыре: *Code*, *Markdown*, *RawNBConvert* и *Heading*.
#
# * *Code*: ячейка с кодом Python
# * *Markdown*: ячейка с размеченным текстом, язык разметки Markdown
# * *RawNBConvert*: неразмеченный (сырой) текст, без курсива/полужирного шрифта
# * *Heading*: устарел, раньше использовался для заголовков, сейчас их нужно создавать в режиме *Markdown*
# Пример ячейки с неразмеченным текстом:
This is the raw text.
# Пример ячейки с размеченным текстом (язык разметки Markdown, почитать про него можно [здесь](http://jupyter-notebook.readthedocs.io/en/latest/examples/Notebook/Working%20With%20Markdown%20Cells.html) и [здесь](http://nestacms.com/docs/creating-content/markdown-cheat-sheet)) — см. ниже.
# ### Что можно делать с помощью Markdown?
# Выделять заголовки разных уровней:
#
# # Заголовок 1
# ## Заголовок 2
# ### Заголовок 3
#
# Выделять части текста с помощью *курсива* или **полужирного начертания**. Или просто зачеркивать.
#
# Добавлять списки разного вида. Ненумерованный список:
#
# * пункт 1
# * пункт 2
#
# Нумерованный список:
#
# 1. Во-первых, ...
# 2. Во-вторых, ...
#
# Для тех, кто знаком с LaTeX: можно красиво оформлять формулы, используя синтаксис, принятый в $\LaTeX{}$ (наличие установленного на компьютере LaTeX не требуется, текст компилируется в самом Jupyter Notebook):
#
# $P(A|B) = \dfrac{P(A \cap B)}{P(B)}$
# Еще можно добавлять ссылки. Либо текст ссылки и саму ссылку:
# [Jupyter](http://jupyter.org/)
# Либо просто ссылку как есть:
#
# И, конечно, можно добавлять картинки!
# Так:
#
# ![title](test.png)
# Или так (синтаксис, как в html, кто знаком):
#
# *Примечание:* часть с *alt* нужна для того, чтобы в случае, если картинки с таким названием нет, выводился какой-то альтернативный текст вместо нее. Например:
#
# ### Горячие клавиши
# В Jupyter Notebook есть свои горячие клавиши, которые позволяют добавлять или удалять ячейки, менять их тип и так далее. Чтобы работать в режиме горячих клавиш, нужно выйти из редактирования ячейки (нажать на *Esc*), а потом набрать нужную комбинацию клавиш. Чтобы вернуться в режим редактирования ячейки, можно кликнуть на нее два раза или, выбрав ее, нажать *Enter*. Все полезные комбинации клавиш можно найти в меню (*Help - Keyboard Shortcuts*) или нажав *Esc*, а потом *H* или *P*.
# Другие интересные вещи про Jupyter Notebook (и другие среды) можно почитать в обзоре — файл *Jupyter and Others.ipynb*.
# ### Если потерялись
# И наконец: как найти, куда Jupyter сохраняет ноутбуки — файлы с расширением `.ipynb`. Можно импортировать библиотеку *os* и узнать текущую рабочую папку (*current working directory*) — в ней будут лежать ноутбуки.
# In[5]:
import os
os.getcwd()