мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
python:week1 [18/01/2017 00:47] ybezrukovpython:week1 [25/01/2017 03:26] (текущий) – [Списки] ybezrukov
Строка 1: Строка 1:
 ====== Введение ====== ====== Введение ======
  
-Язык программирования Python (в дальнейшем будет использоваться русское название Питон. Хоть это и некорректно с точки зрения традиции транслитераци имен собственных :-P) это высокоуровневый, скриптовый, интерпретируемый, объектно-ориентированный язык с динамической типизацией. Переведем это на более человеческий язык.+Язык программирования Python (в дальнейшем будет использоваться русское название Питон. Хоть это и некорректно с точки зрения традиции транслитераци имен собственных :-P) это высокоуровневый, скриптовый, интерпретируемый, объектно-ориентированный язык с динамической сильной неявной типизацией. Переведем это на более человеческий язык.
  
 **Высокоуровневый** означает, что язык содержит определенный слой абстракций, который позволяет на обращать внимания на то железо или операционную систему на которой выполняется программа (лет 40 назад это действительно выделяло язык на фоне остальных, в наши дни большинство популярных языков - высокоуровневые). **Высокоуровневый** означает, что язык содержит определенный слой абстракций, который позволяет на обращать внимания на то железо или операционную систему на которой выполняется программа (лет 40 назад это действительно выделяло язык на фоне остальных, в наши дни большинство популярных языков - высокоуровневые).
Строка 16: Строка 16:
 **Объектно-ориентированный язык** - язык реализующий объектно-ориентированную парадигму программирования. Что такое объектно-ориентированная парадигма это цель отдельной большой лекции, возможно коснемся ее позже. **Объектно-ориентированный язык** - язык реализующий объектно-ориентированную парадигму программирования. Что такое объектно-ориентированная парадигма это цель отдельной большой лекции, возможно коснемся ее позже.
  
-Динамическая типицация в контексте языков программирования означает, что тип переменной не обязательно указывать в момент ее объявления. Тип переменной выводится в момент выполнения программы. +**Динамическая типизация** в контексте языков программирования означает, что тип переменной выводится в момент присваивания ей значения. 
 + 
 +**Сильная/слабая типизация**. Имеет очень неоднозначные и навороченные определения, мы же остановимся на следующем: языки с сильной типизацией не позволяют в выражениях смешивать переменные разных типов и не делают автоматического преобразования типов (нельзя, например, посчитать сумму числа и строки). В случае языка со слабой типизацией такие преобразования возможны. 
 + 
 +В случае **явной типизации** тип переменной требуется указывать в момент ее объявления, в случае неявной указание типа можно опустить. 
 + 
 +Вооружившись новой терминологией опишем известные языки: 
 + 
 +  * Pascal: высокоуровневый компилируемый процедурный язык с статической сильной явной типизацией. 
 +  * C: высокоуровневый компилируемый процедурный язык с статической слабой явной типизацией. 
 +  * JavaScript: высокоуровневый интерпретируемый "объектно-ориентированный" язык с динамической слабой неявной типизацией. 
 + 
 +====== Начало работы ====== 
 + 
 +Интерпретатор языка Питон дает возможность работать с ним в интерактивном режиме. Когда каждое выражение, исполняется без задержки и предоставляет результат сразу.  
 + 
 +Чтобы запустить интерпретатор, нужно прежде запустить эмулятор терминала: в системном меню выберите пункт "Система", а в нем LXTerminal. В открывшемся черном окне нужно набрать  
 + 
 +<code> python3 </code> 
 + 
 +И нажать Enter.  
 + 
 +На экране появится что-то вроде следующего: 
 + 
 +<code> 
 +$ python3 
 +Python 3.4.2 (default, Oct  8 2014, 10:45:20) 
 +[GCC 4.9.1] on linux 
 +Type "help", "copyright", "credits" or "license" for more information. 
 +>>> 
 +</code> 
 + 
 + 
 +Теперь интерпретатор готов к работе. Обратимся к нему и попросим выполнить набившую оскомину первую программу, которая печатает на экран строку. 
 + 
 +<code python>print("КУКУ!")</code> 
 + 
 +Вот так должен выглядеть результат на экране: 
 + 
 +<code> 
 +>>> print("КУКУ!"
 +КУКУ! 
 +>>> 
 +</code> 
 + 
 +Присвоим значение переменной и выполним несколько преобразований 
 +<code> 
 +>>> mvar = 10 
 +>>> mvar += 15 
 +>>> print(mvar) 
 +25 
 +>>> 
 +</code> 
 + 
 + 
 +====== Списки ====== 
 + 
 +Список в Питоне это обобщение понятия массива. Если массив в Паскале умеет хранить только элементы одного типа, то для питоньего списка такого ограничения нет.  
 + 
 +Как мы уже выяснили, тип переменной в Питоне выясняется в момент присвоения, поэтому чтобы сообщить траслятору, что наша переменная будет иметь тип списка нужно использовать квадратные скобки: 
 + 
 +<code python> 
 +mylist = [] 
 +</code> 
 + 
 +Создадим список и заполним его данными: 
 + 
 +<code python> 
 +mylist = [1, 2.5, 'ghbdtn', [1.2, 'ага']] 
 +</code> 
 + 
 +Количество элементов в списке можно определить с помощью функции len() 
 + 
 +<code python> 
 +>>> mylist_length = len(mylist) 
 +>>> print(mylist_length) 
 +
 +>>> 
 +</code> 
 + 
 +Обращение к элементу списка происходит так же как и до элемента массива в Паскале, однако, в отличие от Паскаля элементы списка всегда нумеруются с нуля: 
 + 
 +<code python> 
 +>>> print (mylist[2]) 
 +ghbdtn 
 +>>>  
 +</code> 
 + 
 +Элемент списка можно заменить: 
 + 
 +<code python> 
 +>>> print (mylist[1]) 
 +2.
 +>>> mylist[1] = 2 
 +>>> print (mylist[1]) 
 +
 +>>>  
 +</code>