Введение в Python и работа с Jupyter Notebook¶
Рабочая тетрадь Jupyter Notebook состоит из последовательного набора ячеек, которые могут содержать код, текст, картинки (для того чтобы увидеть как вставить картинку, дважды щелкните по логотипу Физтеха выше), таблицы, формулы или даже интерактивные элементы.
Hello World!¶
Для того что бы выполнить код, написанный в ячейке, нужно выбрать ячейчу и нажать Shift+Enter
, при этом после ячейки (эта зона называется Out
) появится результат работы ячейки.
print("Hello World!") # Функция print выводит текст в `Out` ячейки
# Эта строка -- комментарий. То, что здесь написано, не будет выполняться как код.
# print("Я не печатаюсь")
Калькулятор¶
Код на Python состоит из так называемых выражений, в Out
ячейки будет показано значение последнего выражения.
2+2*2 # Шесть или восемь? Что надо сделать чтобы получить восемь?
2+2*2 # Значение этого выражение не будет выведено в `Out`
(2+1j)*(-1j) # Встроена поддержка комплексных чисел
2**1.5 # Возведение в степень
print("Деление нацело: ", 23 // 5)
print("Остаток от деления: ", 23 % 5)
# Python поодерживает длинную арифметику для целых чисел
# Иначе говоря длина целых чисел ограничена только
# размером оперативной памяти вашего компьютера
1234567890**123
abs(-1), abs(3+4j) # Модуль числа
"Двойный кавычки не отличаются от одинарных"
Объявление переменных и функций¶
some_variable = 1 # Объявляем переменную, переменым лучше давать значащие имена
print(some_variable) # Объявленная переменная доступна из любой ячейки
some_variable # Для втодополнения имени переменной можно использовать клавишу `Tab`
a = "Строка"
print(a)
Чтобы вывести данные в определенном формате, используется так называемое форматирование строк, есть несколько разных методво форматирования.
a = 3.14
print(f"a = {a}") # `f`- форматирование
b = 3.14525436356546
print(f"b = {b:.4}") # `f`- форматирование, с ограничением числа значащих цифр
my_string = "Привет"
my_number = 5
print("%s! %d" % (my_string, my_number)) # `%`-форматирование, счиатется устаревшим
# Далее будут даны ещё методы форматирования
Для ввода данных в программу можно использовать функцию input(). Она считывает одну строку. Применение этой функции в интереснов основном при написании отдельных программ, а не работе в рабочих тетрадях.
a = input()
print(a)
Функции — это такие участки кода, которые изолированы от остальный программы и выполняются только тогда, когда вызываются. Код с объявлением функции должен быть вызван раньше кода в котором вызвается функция, поэтому ячейку с функций крайне желательно располагать раньше ячейки с вызовом функции (иначе нельзя будет исполнять ячейки последовательно). В круглых скобках после названия функции пичется список параметров, return
возвращает некоторое значение.
def to_fahrenheit_degree(celsius_degree):
"""
Эта функцию принимает температуру в градусах Цельсия и переводит её в градусы Фаренгейта
Пригодится при работе с имперским оборудованием
"""
return (9/5)*celsius_degree + 32
data = [10,20,30] # Результаты измерений в градусах Цельсия сохранены в списке - одном из типов коллекций (наборов элементов) предоставляемых Python
for element in data: # Так называемы цикл for-each - в переменную element по очередно записываются элементы набора data
print(element, "градусов Цельсия это" , to_fahrenheit_degree(element), "градусов Фаренгейта")
# Больше о циклах и коллекциях будет написано в следующих разделах пмс
Обратите внимание что входным типом данных были целые числа, а выходным чилса с плавающей точкой.
Также обращу ваше внимание на текст:
"""
Эта функцию принимает температуру в градусах Цельсия и переводит её в градусы Фаренгейта
Пригодится при работе с имперским оборудованием
"""
приведенный в начале функции to_fahrenheit_degree
- это так называемый docstring
- строка содержащая документацию по функции, для обращения в данной документации используется встроенная функция help
.
help(to_fahrenheit_degree)
В хорошо оформленных библиотеках функция help
позволяет получить исчерпывающую справку об работе функции (на английском языке конечно).
help(print)
Функция может и не заканчиваться инструкцией return
, при этом функция вернет значение None
def my_print(x):
print(x + '!')
print(my_print('qwe'))
Функция может содержать необязательные аргументы, которые будут принимать значение по умолчанию, если пользователь не передал их значение.
def add(a, b, c=2): # c - необязательный аргумент
return a + b + c
print(add(1, 2))
print(add(1, 2, 3))
Подключение дополнительных библиотек¶
При написаннии программ не обойти без использования сторонних или даже ваших собсвенных библиотек с кодом. Python ищет библиотеки по определенным путям, включая директорию в которой мы сейчас расположены. Стандратная билиотека Python содрежит много полезных при написании программ функций и классов, а дистрибутив Anaconda предоставлет большое множество библиотке для научного программирования.
В качесве примера рассмотрим использование стандартной математической билиотеки.
import math # Подключение билотеки по её полному имени
math.log(math.e) # Обращение к элементам библиотеки
math.log(1000, 10) # Кто не прогуливал лекции по информатике, тот сможет объяснить почему результат оказался не равным 3.0
dir(math) # Функция dir позволяет узнать какие имена используются в библиотеке
import math as m # Можно вместо полного имени использовать псевдоним,
# наиболее популярные билиотеки имеют общепринятые псевдонимы
m.sin(m.pi) # Очень близко, но из=за конечной точности все же не ноль
from math import cos, tan # Можно импортировать одно или несколько имен
cos(3.14)
# Самый плохой вариант - импортирует все имена из билиотеки,
# при этом возмозможно перекрытие имен (смотри код далее)
from math import *
cos(pi)
pi = 4 # Согласно приказу Минобрнауки значение числа пи принять равным 4
cos(pi)
Поскольку поиск подобных ошибок затруднен использование синтаксиса from module import *
крайне не желательно.