Сообщество Engee

День 1 Летней школы Julia 2025

Автор
avatar-nkapyrinnkapyrin
Соавторы
avatar-igarajaigaraja
Notebook

Здравствуйте, уважаемые читатели!

Мы с вами узнаем о том, как пользоваться командой строкой, которая является
одним из основных инструментов разработки на языке Julia.

Далее мы познакомимся с переменными, числовыми типами и работой с ними.
Затем мы коснёмся темы строк и символов.

Узнаем, как управлять потоком программы, используя условные выражения и циклы.

А закончим день знакомством с кортежами и функциями.

Командная строка

Начнём наше знакомство с языком Julia, с командной строки.
Она имеет 4 режима

  • основной режим выполнения команд Julia
  • режим оболочки
  • режим документации
  • режим менеджера пакетов

Рассмотрим работу в режиме выполнения команд Julia.

В качестве примера будем задавать разными способами число Эйлера.

Будем отыскивать её через второй замечательный предел и ряд Маклорена.

Для этого нам понадобится функция факториала.
Заметьте, что когда мы пишем название функции, мы можем написать лишь её часть и
нажать клавишу ТАБ для автодополнения.

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

Раз уж нам попался гиперболический синус, то давайте им воспользуемся и получим число е.

Чтобы воспользоваться последним значением нашего вывода, можно использовать переменную ans.

Но давайте попробуем получить наше число через второй замечательный предел.

Для этого введём переменную x, которая пример большое значение 10 в 50 степени.

Теперь мы можем использовать эту переменную в новых командах.

Давайте же рассмотрим получение числа Эйлера через ряд Маклорена.
Удобство Julia состоит в том, что многие математические функции могут быть
удобно перенесены в код.

И наш ряд можно прочитать как "Сумма 1 делить на факториал к для к от 0 до 50"

Посмотрим на встроенное в библиотеку значение числа е. Для этого ставится обратный слеш
и пишем слово Эйлер, ставим таб и получаем число е.

Чтобы воспользоваться историей наших предыдущих вычислений - нажмём на клавишу вверх.

дойдём до ряда Маклорена и сравним на приближенное равенство наш результат со встроенной константой.

Чтобы очистить экран командной строки - нажмите ctrl L

In [ ]:
factorial

sin

sinh(1) + cosh(1)

2 * ans

x = big(10e50)

123 + 456

(1 + 1/x)^x 

sum(1/factorial(big(k)) for k in 0:50)



sum(1/factorial(big(k)) for k in 0:50)  

Теперь рассмотрим режим работы с оболочкой. Этот режим специфичен для каждой платформы, поэтому мы с вами рассмотрим работу с оболочкой в engee.

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

При помощи ls - можно посмотреть список файлов в текущей директории.
Давайте, при помощи команды mkdir создадим временную папку.
И, используя команду cd - change directory, перейдём в неё.

В ней, при помощи команды touch создадим файл hello.jl

И, используя текстовый редактор можем записать код на Julia, который поприветствует нас.

Теперь перейдём обратно в командную строку и посмотрим содержимое файла при
помощи команды cat.

Вернувшись в режим Julia, при помощи клавиши backspace, напишем include и имя нашего файла.

режим shell в Julia это очень удобная, но вспомогательная система.

Но иногда бывают ситуации, когда нужно выполнить именно команды оболочки.
Для этого напишем слово bash и, перейдя в оболочку bash, создадим папки с Названием от папка_1 до папка_5.

вернёмся в режим shell, прописав exit без круглых скобок

перейдём в папку_1 и создадим в ней файлы A.txt и B.txt.

Скопируем A.txt на один уровень папок выше. Для это используем команду cp - copy.

А две точки указывают на директорию на один уровень выше.

Как видим, файл А.txt остался в нашей директории.

Если же мы хотим переместить файл, то используйте команду mv - move.
Файл B.txt переместился из нашей директории.

Мы всё ещё находимся внутри папки_1. Чтобы посмотреть файлы директории выше, также применяются две точки.

Посмотрев файлы в ней, давайте перейдём в неё.

С помощью команды rm - remove удалим в ней файл А.txt.

Но если мы захотим удалить папку, то нужно прописать -r, означающей слово рекурсивно.

И папка и все файлы в ней удалятся. Поэтому проявляйте осторожность, когда пользуйтесь этой командой.

ls

mkdir Temp

cd Temp

touch hello.jl

cat hello.jl

include 

mkdir папка_{1..5}

cd папка_1

touch A.txt B.txt

cp A.txt ..

mv B.txt .. 

ls ..

cd .. 

rm A.txt

rm -r папка_1

Рассмотрим ещё 2 варианта режима командной строки:

Получение справки осуществляется при помощи знака вопроса и прописывания
интересующего вас предмета. Это может как функция, ключевое слово, тип или даже модуль.

Иногда справка может быть расширенной. Тогда для того чтобы получить расширенную справку
можно воспользоваться двойным знаком вопроса. В редакторе скриптов расширенную справку можно получить, используя выражение собака doc

? sqrt

? range

?? range

Последним режимом использования командной строки является режим работы с пакетами.

Julia обладает очень большим набором библиотек в различных областях человеческой деятельности - от математики и физики до биологии, химии и экономики. И многих и многих других.

Чтобы перейти в режим работы с пакетами - пропишем закрывающую квадратную скобку.

давайте установим пакет Линейной алгебры и работы с Датами.

Для этого пропишем add LinearAlgebra, Dates.

Также можно посмотреть статус установленных пакетов, состояния пакета, зависимости пакетов

add LinearAlgebra, Dates

status

st LinearAlgebra

why ImageBase

rm

Это были только основы работы с командной строкой, подробнее о взаимодействии с ней можно посмотреть в соответствующем разделе документации.

А теперь перейдём к основам языка.