Понятие о языке программирования. Синтаксис и семантика языка



бет1/13
Дата13.04.2023
өлшемі337,91 Kb.
#82322
түріАнализ
  1   2   3   4   5   6   7   8   9   ...   13

1)Понятие о языке программирования. Синтаксис и семантика языка.
Язык программирования (ЯП) — это формальная знаковая система, предназначенная для описания команд (инструкций) и данных, которые могут быть обработаны электронно-вычислительной машиной (ЭВМ). Языки программирования являются формальными, или искусственными языками. Они обеспечивают взаимодействие пользователя и ЭВМ. Формальный язык определен формальной грамматикой. По А.Н. Хомскому1, формальные языки классифицируются в соответствии с типами грамматик, которыми они задаются. Языки программирования определяются контекстно-свободными грамматиками при условии, что символами алфавита являются токены (объекты, создающиеся из лексем1 2 в процессе лексического анализа), образованные по правилам регулярной грамматики. Естественные языки (ЕЯ) определяются грамматиками общего вида и в этом смысле отличаются от ЯП, хотя языки программирования высокого уровня внешне похожи на ЕЯ, например английский язык [3]. Как и все языки, ЯП имеют собственный алфавит, синтаксис и семантику. Алфавит — это конечный набор символов для конкретного языка программирования. Синтаксис определяет правила образования токенов и правила формирования последовательностей токенов. Семантика — это формальное содержание (смысл) последовательности токенов. Если в формальных языках построенная фраза грамматически правильна, то это означает, что семантически она тоже правильна.

3)Анализ сфер применения наиболее распространенных языков программирования


На данный момент существует около 10 тысяч разнообразных языков. Некоторые созданы с целью повеселить, другие же выполняют определенные действия в определенных ситуациях, а третьи решили захватить всё и всех и делают максимально большой спектр вещей.
Начнем с наиболее простой для входа сферы – веб-программирования. За счет того, что сфера проста, то и обилие языков, подходящих для этой сферы – очень большое.
Со стопроцентной уверенностью можно сказать, что здесь вам нужно изучить: HTML, CSS и JavaScript. HTML и CSS – позволят вам указать разметку вашего сайта. За счет них будет сказано что и где должно находиться, а также какие стили нужно добавить.
Если внешняя часть (Front-end), тогда вам стоит углубляться в изучение библиотек по типу React JS, Var JS, Angular и даже jQuery
Если интересует сервер (Back-end), то выбор здесь побольше. По сути вы можете использовать любой язык, что подходит для работы на сервере. Таковых языков много: от всем известного PHP и до Ruby, C++, C# и так далее.
Если хотите быстро начать и не хотите сложных вещей при изучении, то выбирайте PHP. Если интересует красивый синтаксис и относительно простой формат изучения – тогда Python. Если хотите создавать что-то очень крупное, к примеру, веб систему для банка, то можно выбирать Java, C++ или, если уж на то пошло, язык Go. В то же время, если нравиться язык JavaScript, то можно и на нем все писать, используя технологию Node JS.

5)Классификация и специфика применения языка программирования Python.


Python — язык программирования общего назначения, который используют во многих областях IT-индустрии. Его основные свойства:
Понятность кода. Синтаксическая особенность Python — выделение блоков кода отступами, что значительно упрощает зрительное восприятие программ, написанных на этом языке.
Интерпретируемость. Программы, написанные на языке программирования Python, не переводятся в машинный код, а сразу выполняются программой-интерпретатором. Это позволяет запускать код на любой платформе с установленным заранее интерпретатором.
Объектно ориентированность. Python — это язык, созданный согласно парадигме объектно ориентированного программирования (ООП). В ней основными являются понятия объекта и класса. Классы — это специальные типы данных, объекты — экземпляры классов. То есть любое значение является объектом конкретного класса. В Python вы можете не только использовать уже существующие классы, но и создавать свои собственные.
Динамическая типизация. В отличие от C-подобных языков программирования, в Python переменные связываются с типом в момент присваивания в них конкретных значений.

7)Неизменяемые объекты передаются по значению. Это значит, что при изменении значения переменной будет создан новый объект. К этому типу относятся:


числовые данные (int, float, complex)
символьные строки (str)
кортежи (tuple)
При инициализации переменной неизменяемого типа создается объект (например, целое число), этот объект имеет некоторый идентификатор. вы не можете изменить сам объект, т.е. когда вы присвоите переменной новое значение, интерпретатор создаст новый объект (если до этого этот объект был создан, то переменная просто получит ссылку), а первоначальный объект удалится из памяти сбощиком мусора, если ссылок на него больше нет.
Изменяемые объекты передаются по ссылке. Это значит, что при изменении значения переменной объект будет изменен. К этому типу относятся:
списки (list)
множества (set)
словари (dict)
Для присваивания значений переменным в Python служит оператор "=".
Выражение, стоящее справа от оператора присваивания, вычисляется, и полученное значение присваивается переменной, стоящей слева от оператора присваивания. При этом предыдущее значение, хранящееся в переменной, стирается и заменяется на новое. Если такой переменной не существует, то она создается и в нее записывается значение.
Создание переменных и объектов в Python происходит с помощью оператора присваивания.

9)Проверка и преобразование типов данных. Удаление переменной.


Типы данных в Python позволяют классифицировать данные, определить значения, которые можно присвоить, и операции, которые можно выполнить с этими данными. В программировании бывает необходимо конвертировать один тип данных в другой, чтобы получить доступ к другим функциям: например, склеить числовые значения со строками или представить целые числа в виде десятичных.В Python существует два числовых типа данных: целые числа и числа с плавающей точкой. Для преобразования целых чисел в числа с плавающей точкой и наоборот Python предоставляет специальные встроенные методы.
Метод float() преобразовывает целые числа в числа с плавающей точкой.
Встроенная функция int() предназначена для преобразования чисел с плавающей точкой в целые числа.
Чтобы конвертировать число в строку, используйте метод str(). Поместите число или переменную в круглые скобки.
Строки можно преобразовать в числа с помощью методов int() и float()
Чтобы преобразовать данные в кортеж или список, используйте методы tuple() и list() соответственно
чтобы проверить, состоит ли строка из одних цифр, можно использовать метод isdigit Метод isalpha позволяет проверить, состоит ли строка из одних букв
Метод isalnum позволяет проверить, состоит ли строка из букв или цифр
Иногда, в зависимости от результата, библиотека или функция может выводить разные типы объектов. Например, если объект один, возвращается строка, если несколько, то возвращается кортеж.
Нам же надо построить ход программы по-разному, в зависимости от того, была ли возвращена строка или кортеж.
В этом может помочь функция type

11)Функции input и print. Параметры функции print.


За ввод в программу данных с клавиатуры в Python отвечает функция input. Когда вызывается эта функция, программа останавливает свое выполнение и ждет, когда пользователь введет текст. После этого, когда он нажмет Enter, функция input() заберет введенный текст и передаст его программе, которая уже будет обрабатывать его согласно своим алгоритмам. Функция input() передает введенные данные в программу. Их можно присвоить переменной
Функция print может выводить не только значения переменных, но и значения любых выражений. Например, допустима запись print(2 + 2 ** 2). Также при помощи функции print можно выводить значение не одного, а нескольких выражений
Параметры:
objects — объект/объекты которые необходимо вывести;
sep — разделитель между объектами. В качестве своего значения можно передавать строку или None (по умолчанию пробел " ");
end — символ в конце строки (по умолчанию перенос строки \n);
file — file-like объект [поток] (по умолчанию sys.stdout);
flush — принудительный сброс потока


13)Операторы для работы с числовыми объектами. Форматы чисел.
В языке программирования Python существуют следующие типы операторов:
Арифметические операторы
Операторы сравнения (реляционные)
Операторы присваивания
Логические операторы
Арифметические операторы:
+ Сложение - Суммирует значения слева и справа от оператора
- Вычитание - Вычитает правый операнд из левого 1
* Умножение - Перемножает операнды
/ Деление - Делит левый операнд на правый
% Деление по модулю - Делит левый операнд на правый и возвращает остаток.
** Возведение в степень - возводит левый операнд в степень правого
// Целочисленное деление - Деление в котором возвращается только целая часть результата.
Операторы сравнения
== Проверяет равны ли оба операнда.
!= Проверяет равны ли оба операнда. Если нет, то условие становится истинным.
<> Проверяет равны ли оба операнда. Если нет, то условие становится истинным.
> Проверяет больше ли значение левого операнда, чем значение правого. Если да, то условие становится истинным.
< Проверяет меньше ли значение левого операнда, чем значение правого. Если да, то условие становится истинным.
>= Проверяет больше или равно значение левого операнда, чем значение правого. Если да, то условие становится истинным.
<= Проверяет меньше или равно значение левого операнда, чем значение правого. Если да, то условие становится истинным.
Операторы присваиваения
=Присваивает значение правого операнда левому.
-=Отнимает значение правого операнда от левого и присваивает результат левому операнду.
*=Умножает правый операнд с левым и присваивает результат левому операнду.
/=Делит левый операнд на правый и присваивает результат левому операнду
%=Делит по модулю операнды и присваивает результат левому.
**=Возводит в левый операнд в степень правого и присваивает результат левому операнду.
//=Производит целочисленное деление левого операнда на правый и присваивает результат левому операнду.
Логичесике оперторы
and Логический оператор "И". Условие будет истинным если оба операнда истина.
Or Логический оператор "ИЛИ". Если хотя бы один из операндов истинный, то и все выражение будет истинным.
Not Логический оператор "НЕ". Изменяет логическое значение операнда на противоположное.
https://pythonworld.ru/tipy-dannyx-v-python/chisla-int-float-complex.html
?????????????????????????????????????????????????????7


15)Строки. Литералы строк. Специальные символы. Форматирование строк. Функции и методы для работы со строками. Регулярные выражения.
В Python используется такое понятие, как последовательности, т.е. упорядоченный или неупорядоченный набор символов, над которыми предусмотрено выполнение определенных операций. Наиболее распространенные последовательности в Python — это строки и кортежи (неизменяемые последовательности) и списки (изменяемые последовательности). По сути, последовательности — это те же массивы, которые широко используются в большинстве языков программирования. Вообще в Python предусмотрено шесть типов последовательностей [5]: это строки (string), юникод-строки (unicode), списки (list), кортежи (tuple), буферы (buffer) и x-range объекты.
Строка в общем понимании — это набор символов. При этом строку нельзя изменять, а возможно только создать новую строку из части предыдущей строки. Литералы строк в Python — это представление упорядоченного набора символов, содержащего в себе текстовую информацию о чем-либо. Литералы строк могут быть записаны в апострофах или кавычках, в тройных кавычках или с помощью специальных символов. Апострофы и кавычки выполняют одну и ту же функцию, и интерпретатор Python воспринимает заключенный между ними текст как строку

Для того чтобы вывести символ, можно применить этот способ. Обычно апострофы и одинарные кавычки используются для экранирования одной строки. Чтобы вывести текст в несколько строк, употребляются тройные апострофы или кавычки. Последний способ используется для написания комментариев в «теле» программы, а также при создании документации. Знак «\» чаще всего применяется при необходимости вывода специальных символов, а также при представлении текста в заданной форме (табл. 2.5).
Конкатенация — это сложение строк. При сложении строк формируется новая строка. Для этого используется обычный символ сложения:
>print ('hello1 +' world')
hello world
>print('hello' + 'beautiful' +' world')
hello beautiful world
Как видно из примера, можно складывать несколько строк одновременно.
Иногда возникает необходимость повторять строки. Для этого используется символ умножения «*».
Пример Необходимо вывести фразу «Много много много очень очень много данных». Введем следующий код:
> print('много '*3, 'очень '*2, 'много ', 'данных')
Результат выполнения: много много много очень очень много данных
Иногда требуется вывести отдельный символ из строки. Для этого используется схема доступа по индексу.
Пример Вывести третий символ слова Python: »
> sl='Python'
> print (si [2])
Результат: t
Как и в большинстве языков программирования, нумерация начинается с «О»
Функции и методы для работы со строками
Метод в Python — это функция, которая применяется к созданному объекту. Если мы не создаем объект, а применяем его непосредственно к литералу, то это функция. Если переменная создана, то его преобразование осуществляется посредством метода.
Наиболее известные методы и функции представлены ниже,
st. replace (шаблон, замена) — заменяет шаблон в строке на замену.
Пример Необходимо заменить в строке «Python это язык программирования» все буквы «о» на «а».
Введем следующий код: print(st)
p r i n t (s t . r e p l a c e ( 'o ',' a 1))
Результат:
Python это язык программирования
Python эта язык праграммиравания

Метод st.split (разделитель) позволяет разделять строки на подстроки по разделителю


Метод s t . join ( [подстрока1, подстрока2,...]) является обратным предыдущему методу и собирает соответствующие подстроки в строку с разделителем st.
Ниже приводится список функций и методов работы со строками:
• isdigit() — проверка того, что строка состоит из цифр;
• isalpha() — то же, только из букв;
• isalpnum() — проверка состава из букв и цифр;
• islower() — проверка того, что все символы строки в нижнем регистре;
• isupper() — проверка того, что все символы строки в верхнем регистре;
• istitle() — проверка того, что строка начинается с прописного символа;
• isspace() — проверка того, что строка содержит специальные символы.
.
Форматирование строк
Форматирование строк является одним из мощных инструментов представления текстовой информации. Все другие типы могут быть приведены к строке посредством оператора s t r () .
Существует два подхода: стандартный и с использованием шаблонов [10].
Стандартный подход предполагает использование стандартного оператора «%». «Операция форматирования заменяет в строке форматирования все записи, начинающиеся с процента и оканчивающиеся буквой, на данные, указанные справа от операции, по очереди. Эта операция позволяет выводить текст с включениями чисел, строк и других данных в поля определенной ширины, выровненные по левому или правому краю. Для чисел строка форматирования дает возможность указывать количество цифр после запятой» [8]. Другими словами, оператор «%» используется, когда в строку нужно добавить некоторые элементы строки, которые принимают определенные значения в процессе выполнения программы.

В простейших случаях программисты используют знак «%». В последних разработках принято применять .format () .
. Регулярные выражения
Регулярные выражения (regular expression) — это специальные шаблоны, которые позволяют искать заданный текст в строках, заменять его, удалять, форматировать, т.е. осуществлять манипуляцию с элементами строк.
По сути регулярные выражения представляют собой обычные строки, которые могут содержать в себе обычные символы (буквы и цифры) и специальные символы (*:Л,?, [], {} и т.п.).
Для работы с регулярными выражениями Python содержит в себе специальный модуль ге, который можно подключить так же, как и модуль math, рассмотренный ранее:
im portre
При работе с регулярными выражениями используется правило конкатенации. Если А и В есть регулярные выражения, то и АВ есть также регулярное выражение.
Для работы с регулярными выражениями наиболее часто применяются следующие функции и методы модуля
ге. re.match (шаблон, строка). Проверяет, соответствует ли начало строки «строка» регулярному выражению «шаблон». Например, выражению 'test' соответствует строка 'testГ, но не соответствует строка 'ltest'
re .search (шаблон, строка). Сканирует всю строку до полного совпадения с шаблоном.
Следующая функция re.compile (шаблон). Создает объект — шаблон для дальнейшего использования, что ускоряет процесс выполнения программы.
re.finditer (шаблон, строка). Выводит итератор и действует аналогично предыдущей функции:
Использование специального символа «$» в шаблоне в конце шаблона указывает, что строка должна оканчиваться на шаблон. «Л» в начале шаблона указывает, что строка должна начинаться с шаблона. Если данный оператор стоит не в начале выражения, то он будет оператором отрицания.

17)Операции над списками: доступ к элементу по индексу, извлечение среза, конкатенация, повторение, проверка вхождения. Перебор элементов списка.


Для доступа к элементу списка по индексу достаточно указать имя списка и в квадратных скобках — значение индекса. Отметим, что индексация элементов списка начинается с нуля.
Пример Вывести третий элемент списка.
Код: s= [ ' s ' , ' р ', ' i ', ' s ' , ' o ' , ' k ']
pr int (s [2])
Результат: i
Извлечение среза осуществляется так же, как и для строк, которые были рассмотрены ранее
Справка. Если в строке кода указать «#», то все символы после него интерпретатор воспринимает как комментарий и они не обрабатываются. Считается хорошим тоном оставлять комментарии. При этом они очень сильно помогают программисту, если программа содержит довольно много строк кода (сотни или тысячи).
Операция конкатенации или сложения списков аналогична операции со строками.

В первом случае создается список, содержащий шесть элементов, во втором — три элемента, где в алгоритме был использован цикл for, а также функция 1еп(), которая возвращает длину списка, т.е. число его элементов.
Повторение списков аналогично операции со строками.
Пример
Повторить список [1, 2, 3] 2 раза.
Код:
print([1,2,3] *2)
Результат: [1, 2, 3, 1, 2, 3, 1, 2, 3]
Для проверки вхождения элемента в список используется несколько функций. Так, для определения количества вхождений элемента в список используется функция count().
Для определения первого вхождения используется функция index (s, [start, [end]]).
В данном примере индекс первого вхождения числа 4 соответствует четырем начиная с 0, т.е. 4 находится на пятой позиции. 6 — это индекс вхождения числа 1 начиная с шестой позиции и заканчивая восьмой. В случае если элемента нет в списке, интерпретатор выдает Value Error. Поэтому, для проверки наличия лучше использовать функцию count() или создать обработчик ошибок с помощью конструкции try... except. Перебор элементов списка можно осуществлять с помощью циклов for или while, подробнее о которых будет рассказано в соответствующей теме. Также можно обратиться непосредственно к элементу списка, указав соответствующий индекс.


19)Методы списков: добавление и удаление элементов, поиск элемента, сортировка, преобразование списка в строку. Многомерные списки.
Методы списков
Ниже представлены основные методы списков.
s.append (х) — добавляет элемент списка s со значением х.
s.extend (х) — расширяет список s, добавляя к нему список х.
Код:
s= [1,2,3]
s.append(4)
p rin t (s)
s.extend(s)
p rin t (s)
Результат:
[1, 2, 3, 4]
[1, 2, 3, 4, 1, 2, 3, 4]
s.insert (i, х) — заменяет (вставляет) на i-ю позицию элемент х.
s.remove (х) — удаляет элемент х, который был обнаружен в списке первым. Если такого элемента не существует, то выводится ошибка Value Error.
s.clear() — список очищается.
s.pop (И ) — удаляет i-й элемент, по умолчанию удаляет последний элемент списка.
s.sort ([key=function]) — сортирует элементы списка в соответствии с заданной функцией (по умолчанию сортировка осуществляется по возрастанию). Если в скобках указать
s . s o rt (rev erse= l), то сортировка будет осуществляться по убыванию (по умолчанию reverse=0).
s.reverse() — список разворачивается.
Для преобразования списка в строку можно использовать метод join(), который был подробно рассмотрен в теме «Работа со строками».
Многомерные списки
Работа с многомерными списками ничем не отличается от обычных списков, только при обращении к ним можно указать еще одно или несколько измерений.
Пример
Код:
s= [1,2,3,'Python',5, [2,'a']]
print(s [1],' ', s [5] [1])
Результат: 2 a
Над многомерными списками также можно осуществлять операции и применять методы, описанные выше


21)Словари. Создание словаря. Операции над словарями. Перебор элементов словаря. Методы для работы со словарями. Множества.
Словарь, или Dictionary — отображение между ключами (keys) и значениями (values), при котором ключу однозначно соответствует значение. В других языках программирования словари могут называться другими именами: хэши, ассоциативные массивы. В словаре не может быть двух одинаковых ключей, тогда как на значения таких ограничений не накладывается [8].
Его синтаксис следующий:
словарь: {ключ1: значение1, ключ2: значение2, . . ., ключN: значениемN,}
Создание словаря
Словарь чаще всего создается с помощью литерала или функции d ie t () . Конструкция аналогична конструкции при создании строк, списков или кортежей.
Пример.
Создание словаря.
Код: d= { 1 :'G oogle', 2 : 'M a il', 3 : 'Yandex', 4 : 'Yahoo'}
p rin t (d [1])
dl=dict(g='Google', m='Mail', y='Yandex', yl='Yahoo')
print(dl ['у'])
d2=dict ( [ (1, 'Google'), (2, 'Mail'), (3, 'Yandex' ) , (4, 'Yahoo')]) print(d2 [2]) d3=dict.fromkeys(['Google','Mail','Yandex','Yahoo'], [1,2,3,4])
print(d2 [4])
Результат:
Google
Yandex
Mail
Yahoo
Как видно из примера, задать словарь с помощью d ie t () можно двумя способами, а также это можно сделать посредством метода f romkeys () . Доступ к элементу словаря осуществляется путем указания после имени словаря в квадратных скобках ключа элемента, что аналогично индексу для элемента списка или кортежа.
Операции над словарями
При работе со словарями нельзя осуществить сложение словарей, как со списками или кортежами, однако можно объединить словари посредством метода update().
Такж е можно очистить словарь посредством метода c l e a r () .
Для преобразования двумерного списка в словарь можно также использовать d i e t () .
Аналогичным образом словарь можно создать из кортежа. Также можно сделать новый словарь, созданный посредством копирования исходного словаря методом сору () из модуля сору
Можно удалить соответствующий элемент словаря, используя встроенный оператор del.
При переборе элементов словаря также используется инструкция for.
Пример
Код: d= { 1 :'G o o g le ', 2 : 'M a i l ', 3 : 'Y an d ex ', 4 : 'Yahoo'}
fo r i in d: p r i n t ( i , 'э т о ', d [i ])
Результат:
1 э т о G oogle
2 э т о M ail
3 это Yandex
4 э т о Yahoo
. Методы для работы со словарями
Методы clear(), сору(), fromkeys() и update() были рассмотрены в предыдущих параграфах. Приведем другие методы, которые позволяют организовать работу со словарями.
get (ключ, [default]) — возвращает значение ключа (default (по умолчанию) выдает None).
items() — возвращает пару «ключ — значение».
keys() — возвращает только ключ.
pop (ключ, [default]) — удаляет и возвращает ключ, по умолчанию вызывает исключение.
values() — выводит значения в словаре. Используя данные предыдущего примера, интерпретатор выведет:
d ic t_ v a lu e s ( [ 'Иванов', 'П етров', 'С идоров', 'Ж уков']) setdefault (ключ, [default]) — возвращает значение ключа в словаре, или None по умолчанию
setdefault (ключ, [default]) — возвращает значение ключа в словаре, или None по умолчанию
МНОЖЕСТВА
Множество — это совокупность неповторяющихся элементов, расположенных в случайном порядке. При этом они могут быть как числовыми, так и символьными. По сути, множество является аналогом множества, используемого в математике. Множество также заключается в фигурные скобки, что иногда приводит к путанице между обозначением множества и словарем. Множество может быть и пустым.
Пример
{1,3,4}
{'М и р ', ' З д р а в с т в у й ', 'п р ек р асн ы й ', ','}

23)Сравнение множеств. Методы для работы с множествами.




Достарыңызбен бөлісу:
  1   2   3   4   5   6   7   8   9   ...   13




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет