HOW-TO: Программа на Python, Часть 1 Сравнение версий

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
fullcircle:27:python_ч_1 [2010/05/30 17:28]
fullcircle:27:python_ч_1 [2016/03/15 17:35] (текущий)
[Пример цикла For]
Строка 1: Строка 1:
-======HOW-TO:​ Программа на Python, Часть 1 ======+====== HOW-TO: Программа на Python, Часть 1 ======
 <style right> <style right>
-//​Автор — Гэг Валтерс (Greg Walters)//​ +//​Автор — Гpэг Валтерс (Greg Walters)//​ 
-</code>+</style>
  
   - [[..:​27:​python_ч_1|Программа на Python — часть 1]]   - [[..:​27:​python_ч_1|Программа на Python — часть 1]]
   - [[..:​28:​python_ч_2|Программа на Python — часть 2]]   - [[..:​28:​python_ч_2|Программа на Python — часть 2]]
 +  - [[..:​29:​python_ч_3|Программа на Python — часть 3]]
 +  - [[..:​30:​python_ч_4|Программа на Python — часть 4]]
 +  - [[..:​31:​python_ч_5|Программа на Python — часть 5]]
 +  - [[..:​32:​python_ч_6|Программа на Python — часть 6]]
 +  - [[..:​33:​python_ч_7|Программа на Python — часть 7]]
 +  - [[..:​34:​python_ч_8|Программа на Python — часть 8]]
 +  - [[..:​35:​python_ч_9|Программа на Python — часть 9]]
 +  - [[..:​36:​python_ч_10|Программа на Python — часть 10]]
 +  - [[..:​37:​python_ч_11|Программа на Python — часть 11]]
 +  - [[..:​38:​python_ч_12|Программа на Python — часть 12]]
 +  - [[..:​39:​python_ч_13|Программа на Python — часть 13]]
 +  - [[..:​40:​python_ч_14|Программа на Python — часть 14]]
  
 Из множества существующих языков программирования Python — один из самых лёгких в изучении. Он создан в конце 80-х годов XX века, но с тех пор он сильно изменился. Хотя Python входит в состав большинства дистрибутивов Linux, на него часто не обращают внимания при выборе языка для изучения. В этой статье мы рассмотрим создание консольных приложений,​ а в следующей — программирование графических интерфейсов (GUI). Давайте создадим простую программу прямо сейчас. Из множества существующих языков программирования Python — один из самых лёгких в изучении. Он создан в конце 80-х годов XX века, но с тех пор он сильно изменился. Хотя Python входит в состав большинства дистрибутивов Linux, на него часто не обращают внимания при выборе языка для изучения. В этой статье мы рассмотрим создание консольных приложений,​ а в следующей — программирование графических интерфейсов (GUI). Давайте создадим простую программу прямо сейчас.
  
-Наша первая программа+===== Наша первая программа ​=====
  
 Наберём код в текстовом редакторе (например,​ в gedit). Потом мы разберёмся,​ что делает каждая строка и пойдём дальше. Наберём код в текстовом редакторе (например,​ в gedit). Потом мы разберёмся,​ что делает каждая строка и пойдём дальше.
Строка 15: Строка 27:
 Введите эти 4 строки:​ Введите эти 4 строки:​
 <​code>​ <​code>​
-#​!/​usr/​bin/​env ​python +#​!/​usr/​bin/​env ​python3 
- +print ("Hello. I am a python program.") 
-print 'Hello. I am a python program.+name = input("What is your name?"​) 
- +print ("Hello there, " + name + "​!"​)
-name = raw_input("What is your name?"​) +
- +
-print "Hello there, " + name + "​!"​+
 </​code>​ </​code>​
 Это всё. Сохраните файл как hello.py в любом месте. Я предлагаю сохранить его в папке python_examples в домашнем каталоге. Этот пример показывает,​ как просто написать программу на Python. Для запуска программы нужно сделать её файл исполняемым. Для этого введите в терминале Это всё. Сохраните файл как hello.py в любом месте. Я предлагаю сохранить его в папке python_examples в домашнем каталоге. Этот пример показывает,​ как просто написать программу на Python. Для запуска программы нужно сделать её файл исполняемым. Для этого введите в терминале
Строка 30: Строка 39:
  
 <​code>​greg@earth:​~/​python_examples$ ./hello.py <​code>​greg@earth:​~/​python_examples$ ./hello.py
- 
 Hello. I am a python program. Hello. I am a python program.
- 
 What is your name? Ferd Burphel What is your name? Ferd Burphel
- 
 Hello there, Ferd Burphel! Hello there, Ferd Burphel!
- 
 greg@earth:​~/​python_examples$</​code>​ greg@earth:​~/​python_examples$</​code>​
  
 Вот и всё. Теперь давайте рассмотрим что делает каждая строка программы. Вот и всё. Теперь давайте рассмотрим что делает каждая строка программы.
  
-<​code>#​!/​usr/​bin/​env ​python</​code>​+<​code>#​!/​usr/​bin/​env ​python3</​code>​
  
-Эта строка сообщает системе,​ что для запуска программы необходимо использовать интерпретатор Python.+Эта строка сообщает системе,​ что для запуска программы необходимо использовать интерпретатор Python ​версии 3.
  
-<​code>​print ​'Hello. I am a python program.'</​code>​+<​code>​print ​("Hello. I am a python program.")</​code>​
  
-Эта строка просто печатает в окне терминала ​"Hello. I am a python program.".+Эта строка просто печатает в окне терминала Hello. I am a python program.
  
-<​code>​name = raw_input("What is your name? "​)</​code>​+<​code>​name = input("What is your name? "​)</​code>​
  
  
-Эта строка немного сложнее. В ней две части. Первая часть: name = и вторая часть: ​raw_input("What is your name? "). Сначала рассмотрим вторую часть. Команда ​raw_input ​печатает вопрос в терминале ("What is your name? ") и ожидает,​ пока пользователь (вы) не напечатает что-нибудь (и не нажмёт {Enter}). Теперь рассмотрим первую часть команды:​ name =. Она создаёт переменную под названием "​name"​. Что такое переменная?​ Переменную можно представить себе в виде ящика. В ящике можно хранить вещи: ботинки,​ части компьютера,​ бумаги,​ всё, что туда влезет. Ящику всё равно, что лежит внутри — оно просто лежит там. В нашем примере он хранит то, что вы напечатаете. Я напечатал Ferd Burphel. В данной программе Python просто берёт введённое значение и сохраняет его в ящике «name», чтобы использовать в программе в дальнейшем.+Эта строка немного сложнее. В ней две части. Первая часть: name = и вторая часть: ​%%input("What is your name? ")%%. Сначала рассмотрим вторую часть. Команда ​input печатает вопрос в терминале ("What is your name? ") и ожидает,​ пока пользователь (вы) не напечатает что-нибудь (и не нажмёт {Enter}). Теперь рассмотрим первую часть команды:​ name =. Она создаёт переменную под названием "​name"​. Что такое переменная?​ Переменную можно представить себе в виде ящика. В ящике можно хранить вещи: ботинки,​ части компьютера,​ бумаги,​ всё, что туда влезет. Ящику всё равно, что лежит внутри — оно просто лежит там. В нашем примере он хранит то, что вы напечатаете. Я напечатал Ferd Burphel. В данной программе Python просто берёт введённое значение и сохраняет его в ящике «name», чтобы использовать в программе в дальнейшем.
  
-<​code>​print "Hello there, " + name + "​!"</​code>​+<​code>​print ​("Hello there, " + name + "​!"​)</​code>​
  
 В этой строке мы опять используем команду print для вывода текста на экран, в данном случае для вывода «Hello there, » и того, что хранится в переменной «name» и восклицательного знака в конце. В данной строке мы соединяем три куска текста:​ «Hello there», информацию в переменной «name» и восклицательный знак. В этой строке мы опять используем команду print для вывода текста на экран, в данном случае для вывода «Hello there, » и того, что хранится в переменной «name» и восклицательного знака в конце. В данной строке мы соединяем три куска текста:​ «Hello there», информацию в переменной «name» и восклицательный знак.
Строка 60: Строка 65:
 Теперь давайте быстро обсудим то, что мы сделали,​ и перейдём к работе над следующим примером. Откройте окно терминала и наберите:​ Теперь давайте быстро обсудим то, что мы сделали,​ и перейдём к работе над следующим примером. Откройте окно терминала и наберите:​
  
-<​code>​python</​code>​+<​code>​python3</​code>​
  
 Вы должны увидеть что-то наподобие этого: Вы должны увидеть что-то наподобие этого:
  
-<​code>​greg@earth:​~/​python_examples$ ​python +<​code>​greg@earth:​~/​python_examples$ ​python3 
- +Python ​3.4.(default, Oct 14 201520:28:29
-Python ​2.5.(r252:60911, Oct 5 200819:24:49) +[GCC 4.8.4] on linux
- +
-[GCC 4.3.2] on linux2 +
 Type "​help",​ "​copyright",​ "​credits"​ or "​license"​ for more information.</​code>​ Type "​help",​ "​copyright",​ "​credits"​ or "​license"​ for more information.</​code>​
  
  
-Теперь вы находитесь в командной оболочке python. Здесь вы можете выполнять действия,​ но для начала разберёмся с тем, что у нас получилось. Первым делом вы увидите версию интерпретатора python — у меня стоит ​2.5.2. Затем вы увидите сообщение о том, что для получения справки необходимо набрать «help» в командной строке. Это я оставляю Вам в качестве домашнего задания. А пока наберите:​+Теперь вы находитесь в командной оболочке python. Здесь вы можете выполнять действия,​ но для начала разберёмся с тем, что у нас получилось. Первым делом вы увидите версию интерпретатора python — у меня стоит ​3.4.3. Затем вы увидите сообщение о том, что для получения справки необходимо набрать «help» в командной строке. Это я оставляю Вам в качестве домашнего задания. А пока наберите:​
  
-<​code>​print 2+2</​code>​+<​code>​print ​(2+2)</​code>​
  
 и нажмите Enter. вы увидите:​ и нажмите Enter. вы увидите:​
  
-<​code>​print 2+2+<​code>​print ​(2+2)
 4</​code>​ 4</​code>​
  
-Обратите внимание,​ что мы набрали слово «print» в нижнем регистре. Что произойдёт,​ если набрать «Print 2+? Интерпретатор ответит следующим образом:​+Обратите внимание,​ что мы набрали слово «print» в нижнем регистре. Что произойдёт,​ если набрать «Print ​(2+2)»? Интерпретатор ответит следующим образом:​
  
-<​code>​Print 2+2 +<​code>​Print ​(2+2) 
-      File "<​stdin>",​ line 1 +Traceback (most recent call last): 
-         ​Print 2+2+  ​File "<​stdin>",​ line 1, in <​module>​ 
 +NameError: name 'Print' is not defined</​code>​
  
-SyntaxError:​ invalid syntax</​code>​ 
  
 Это произошло потому,​ что слово «print» является зарегистрированной командой,​ а слово «Print» не является таковой. Для Python регистр очень важен. Это произошло потому,​ что слово «print» является зарегистрированной командой,​ а слово «Print» не является таковой. Для Python регистр очень важен.
Строка 95: Строка 97:
 <​code>​var = 2+2</​code>​ <​code>​var = 2+2</​code>​
  
-Вы увидите,​ что ничего не происходит,​ за исключением того, что Python отобразит приглашение «>>>​». Всё нормально. Мы поручили Python создать переменную (ящик) под названием «var» и положить в неё результат сложения «2+2». Чтобы увидеть,​ что теперь находится в переменной «var», введите:​+Вы увидите,​ что ничего не происходит,​ за исключением того, что Python отобразит приглашение ​%%«>>>​»%%. Всё нормально. Мы поручили Python создать переменную (ящик) под названием «var» и положить в неё результат сложения «2+2». Чтобы увидеть,​ что теперь находится в переменной «var», введите:​
  
-<​code>​print var</​code>​+<​code>​print ​(var)</​code>​
  
 и нажмите Enter. и нажмите Enter.
  
-<​code>​print var+<​code>​print ​(var)
 4</​code>​ 4</​code>​
  
 Теперь мы можем снова использовать переменную «var» как число 4. Например,​ так: Теперь мы можем снова использовать переменную «var» как число 4. Например,​ так:
  
-<​code>​ print var * 2+<​code>​print ​(var * 2)
 8</​code>​ 8</​code>​
  
-Если мы снова наберём «print ​var», то увидим следующее:​+Если мы снова наберём «print ​(var)», то увидим следующее:​
  
-<​code>​print var+<​code>​print ​(var)
 4</​code>​ 4</​code>​
  
Строка 120: Строка 122:
 Введите в интерпретаторе:​ Введите в интерпретаторе:​
  
-<​code>​ strng = 'The time has come  +<​code>​strng = 'The time has come for all good men to come to the aid of the party!'​ 
-for all good men to come to the aid of the party!'​ +print (strng)
- +
-print strng +
 The time has come for all good men to come to the aid of the party!</​code>​ The time has come for all good men to come to the aid of the party!</​code>​
  
Строка 130: Строка 129:
 Вы создали переменную под названием «strng», которая содержит значение «The time has come for all good men to come to the aid of the party!». С этого момента (пока мы работаем с этим экземпляром интерпретатора) переменная «strng» будет содержать то же значение,​ пока мы её не изменим. Что будет, если мы попробуем умножить эту переменную на 4? Вы создали переменную под названием «strng», которая содержит значение «The time has come for all good men to come to the aid of the party!». С этого момента (пока мы работаем с этим экземпляром интерпретатора) переменная «strng» будет содержать то же значение,​ пока мы её не изменим. Что будет, если мы попробуем умножить эту переменную на 4?
  
-<​code>​ print strng * +<​code>​print ​(strng * 2) 
- +The time has come for all good men to come to the aid of the party!The time has come for all good men to come to the aid of the party!</​code>​
-The time has come for all good men to come to +
- the aid of the party!The time has come for all good  +
-men to come to the aid of the party!The time has come for  +
-all good men to come to the aid of the party!The time has  +
-come for all good men to come to the aid of the party!</​code>​+
  
  
-Произошло не совсем то, что вы ожидали. Python напечатал значение переменной «strng» ​раза. Почему?​ Интерпретатор знал, что переменная «strng» — это строка,​ а не число. Невозможно производить математические операции над строками.+Произошло не совсем то, что вы ожидали. Python напечатал значение переменной «strng» ​раза. Почему?​ Интерпретатор знал, что переменная «strng» — это строка,​ а не число. Невозможно производить математические операции над строками.
  
 Если бы у нас была переменная под названием «s», которая содержала бы значение «4» как показано ниже: Если бы у нас была переменная под названием «s», которая содержала бы значение «4» как показано ниже:
  
 <​code>​s = '​4'​ <​code>​s = '​4'​
-print s+print (s)
 4</​code>​ 4</​code>​
  
-Кажется,​ что переменная «s» содержит число 4, но это не так. Она содержит текстовое значение «4». И если мы наберем «print s * , то получим...+Кажется,​ что переменная «s» содержит число 4, но это не так. Она содержит текстовое значение «4». И если мы наберем «print ​(s * 4)», то получим...
  
-<​code>​print s*4+<​code>​print ​(s*4)
 4444</​code>​ 4444</​code>​
  
Строка 155: Строка 149:
 Мы можем проверить это, набрав «print type(s)», чтобы увидеть,​ какой тип система присвоила данной переменной. Мы можем проверить это, набрав «print type(s)», чтобы увидеть,​ какой тип система присвоила данной переменной.
  
-<​code>​ print type(s) +<​code>​print ​(type(s)
-<type '​str'></​code>​+<class '​str'></​code>​
  
 Подтверждено. Переменная имеет тип «строка». Если мы захотим использовать её в качестве числа, то мы напечатаем следующее:​ Подтверждено. Переменная имеет тип «строка». Если мы захотим использовать её в качестве числа, то мы напечатаем следующее:​
  
-<​code>​print int(s) * 4+<​code>​print ​(int(s) * 4)
 16</​code>​ 16</​code>​
  
 Строка «s», содержащая значение «4», преобразована в число и умножена на 4, что равно 16. Строка «s», содержащая значение «4», преобразована в число и умножена на 4, что равно 16.
  
-Теперь у Вас есть основные знания о командах print и raw_input, создании переменных и разнице между строками и числами.+Теперь у Вас есть основные знания о командах print и input, создании переменных и разнице между строками и числами.
  
 Пойдём дальше. В интерпретаторе Python введите quit() для выхода в командную строку. Пойдём дальше. В интерпретаторе Python введите quit() для выхода в командную строку.
  
-Пример цикла For+===== Пример цикла For =====
  
 Теперь давайте рассмотрим пример программирования цикла. Запустите текстовый редактор и наберите следующую программу:​ Теперь давайте рассмотрим пример программирования цикла. Запустите текстовый редактор и наберите следующую программу:​
  
-<​code>#​! /​usr/​bin/​env ​python +<​code>#​!/​usr/​bin/​env ​python3
 for cntr in range(0,​10):​ for cntr in range(0,​10):​
 +    print (cntr)</​code>​
  
-print cntr</​code>​ +Не забудьте поставить символ табуляции перед строкой «print ​(cntr)». Это важно. В Python для указания на блоки кода используются не круглые «(» и фигурные «{» скобки как в других языках программирования,​ а отступы.
- +
-Не забудьте поставить символ табуляции перед строкой «print ​cntr». Это важно. В Python для указания на блоки кода используются не круглые «(» и фигурные «{» скобки как в других языках программирования,​ а отступы.+
  
 Сохраните программу под именем «for_loop.py». До её запуска давайте поговорим о том, что такое цикл «for». Сохраните программу под именем «for_loop.py». До её запуска давайте поговорим о том, что такое цикл «for».
Строка 216: Строка 208:
 Если мы изменим нашу программу таким образом:​ Если мы изменим нашу программу таким образом:​
  
-<​code>#​! /​usr/​bin/​env python +<​code>#​!/​usr/​bin/​env python
 for cntr in range(1,​11):​ for cntr in range(1,​11):​
- +    ​print (cntr) 
-print cntr +print ("All Done")</code>
- +
-print 'All Done'</codde>+
  
 Мы увидим на экране следующее:​ Мы увидим на экране следующее:​