Центр приложений Ubuntu (англ. Ubuntu Software Center ) - свободное программное обеспечение для поиска, установки и удаления пакетов в системе Ubuntu Linux . в последних версиях возможна покупка журналов о Linux и Ubuntu , также можно приобретать платные игры и софт . Приложение разработано на языке Python + Vala с использованием библиотек GTK+ и является графической оболочкой для Advanced Packaging Tool .
Blender - свободный, профессиональный пакет для создания трёхмерной компьютерной графики, включающий в себя средства моделирования, анимации, рендеринга, постобработки видео, а также создания интерактивных игр. В настоящее время пользуется наибольшей популярностью среди бесплатных 3D редакторов в связи с его быстрым и стабильным развитием, которому способствует профессиональная команда разработчиков.Вот несколько страниц с документацией:Python используется как средство создания инструментов и прототипов, системы логики в играх, как средство импорта/экспорта файлов (например COLLADA), автоматизации задач.
В качестве скриптового языка в проекте используется Python. Всю красоту, которую мы сделали во Flash, нужно подключить в игре, наполнить данными, обработать и транслировать пользовательский ввод в реальные действия в игре. Все это как раз и делается в Python.Более полный список игр, которые используют Python, можно найти в Википедии и документации к Python .
Я расскажу о том, как мы используем Python в Яндекс.Диске, какие применяем библиотеки и фреймворки, какие задачи решаем и с какими проблемами сталкиваемся. Также затрону тему логирования и обработки асинхронных операций.В одном из видео на канале Яндекса, сотрудники рассказали о своих любимых языках.
Подборка подготовлена с учетом личного опыта практикующих программистов. Здесь книги, которые подойдут как для новичков, так и для владеющих определенной базой разработчиков. Правда тем, кто совсем ноль в знании языка, советуем сначала пройтись по WikiBooks , вникнуть в азы , а потом выбирать из списка.
Наиболее частый ответ на вопрос: «что почитать про Python?». Отличная книга, практически полное руководство по языку (и частично стандартной библиотеке). Из минусов - много воды, и последнее издание вышло 2 года назад (уже почти 3) и поэтому не включает последние изменения. Но для начинающих книга все еще актуальна.
Переход от изучения к практике. Учимся применять полученные знания для написания будущих программ.
Введение в Python для начинающих. Книга последовательно раскрывает особенности языка. Объемные темы, такие как рекурсия и объектно-ориентированное программирование для облегчения усвоения разбиты на небольшие шаги. На сайте книги встроены интерактивные модули, где можно запустить свой код.
Краткое руководство с большим количеством примеров кода и использованием стандартной библиотеки. Эта книга охарактеризована многими обозревателями, как отличное введение в Python.
Введение
В связи с наблюдаемым в настоящее время стремительным развитием персональной вычислительной техники, происходит постепенное изменение требований, предъявляемых к языкам программирования. Все большую роль начинают играть интерпретируемые языки, поскольку возрастающая мощь персональных компьютеров начинает обеспечивать достаточную скорость выполнения интерпретируемых программ. А единственным существенным преимуществом компилируемых языков программирования является создаваемый ими высокоскоростной код. Когда скорость выполнения программы не является критичной величиной, наиболее правильным выбором будет интерпретируемый язык, как более простой и гибкий инструмент программирования.
В связи с этим, определенный интерес представляет рассмотрение сравнительно
нового языка программирования Python (пайтон), который был создан его автором Гвидо
ван Россумом (Guido van Rossum) в начале 90-х годов.
Общие сведения о Python. Достоинства и недостатки
Python является интерпретируемым, изначально объектно-ориентированным языком программирования. Он чрезвычайно прост и содержит небольшое число ключевых слов, вместе с тем очень гибок и выразителен. Это язык более высокого уровня нежели Pascal, C++ и, естественно C, что достигается, в основном, за счет встроенных высокоуровневых структур данных (списки, словари, тьюплы).
Достоинства языка.
Несомненным достоинством является то, что интерпретатор Python
реализован практически на всех платформах и операционных системах. Первым
таким языком был C, однако его типы данных на разных машинах могли занимать разное
количество памяти и это служило некоторым препятствием при написании действительно
переносимой программы. Python же таким недостатком не обладает.
Следующая немаловажная черта - расширяемость языка, этому придается большое значение и, как пишет сам автор, язык был задуман именно как расширяемый. Это означает, что имеется возможность совершенствования языка всеми всеми заинтересованными программистами. Интерпретатор написан на С и исходный код доступен для любых манипуляций. В случае необходимости, можно вставить его в свою программу и использовать как встроенную оболочку. Или же, написав на C свои дополнения к Python и скомпилировав программу, получить "расширенный" интерпретатор с новыми возможностями.
Следующее достоинство - наличие большого числа подключаемых к программе модулей, обеспечивающих различные дополнительные возможности. Такие модули пишутся на С и на самом Python и могут быть разработаны всеми достаточно квалифицированными программистами. В качестве примера можно привести следующие модули:
Обзор особенностей
1. Python, в отличие от многих языков (Pascal,
C++, Java, и т.д.), не требует описания переменных. Они создаются в месте
их инициализации, т.е. при первом присваивании переменной какого-либо значения.
Значит, тип переменной определяется типом присваиваемого значения. В этом
отношении Python напоминает Basic.
Тип переменной не является неизменным. Любое присваивание для нее корректно
и это приводит лишь к тому, что типом переменной становится тип нового
присваиваемого значения.
2. В таких языках как Pascal, C, C++ организация списков представляла некоторые трудности. Для их реализации приходилось хорошо изучать принципы работы с указателями и динамической памятью. И даже имея хорошую квалификацию, программист, каждый раз заново реализуя механизмы создания, работы и уничтожения списков, мог легко допустить трудноуловимые ошибки. Ввиду этого были созданы некоторые средства для работы со списками. Например, в Delphi Pascal имеется класс TList, реализующий списки; для С++ разработана библиотека STL (Standard Template Library), содержащая такие структуры как векторы, списки, множества, словари, стеки и очереди. Однако, такие средства имеются не во всех языках и их реализациях.
Одной из отличительных черт Python является наличие таких встроенных в сам язык структур как тьюплы (tuple), списки (list) и словари (dictionary), которые иногда называют картами (map). Рассмотрим их поподробней.
3. Python в отличие от Pascal, C, C++ не поддерживает работу с указателями, динамической памятью и адресную арифметику. В этом он похож на Java. Как известно, указатели служат источником трудноуловимых ошибок и работа с ними относится больше к программированию на низком уровне. Для обеспечения большей надежности и простоты они небыли включены в Python.
4. Одним из особенностей Python является то, как происходит присваивание одной переменной другой, т.е. когда по обе стороны от оператора "= " стоят переменные.
Следуя Тимоти Бадду (), будем называть семантикой указателей случай, когда присваивание приводит лишь к присваиванию ссылки (указателя), т.е. новая переменная становится лишь другим именем, обозначающим тот же участок памяти, что и старая переменная. При этом изменение значения, обозначаемого новой переменной, приведет к изменению значения старой, т.к. они, фактически, означают одно и то же.
Когда же присваивание приводит к созданию нового объекта (здесь объект - в смысле участка памяти для хранения значения какого-либо типа) и копированию в него содержимого присваиваемой переменной, этот случай назовем семантикой копирования . Таким образом, если при копировании действует семантика копирования, то переменные по обе стороны от знака "=" будут означать два независимых объекта с одинаковым содержанием. И здесь последующее изменение одной переменной никак не скажется на другой.
Присваивание в Python происходит следующим образом: если присваеваемый
объект является экземпляром таких типов как числа или строки, то действует
семантика копирования, если же в правой части стоит экземпляр класса,
список, словарь или тьюпл, то действует семантика указателей. Пример:
a = 2; b = a; b = 3
print " семантика копирования: a=", a, "b=", b
a = ; b = a; b = 3
print " семантика указателей: a=", a, "b=", b
Результат
:
семантика копирования: a= 2 b= 3
семантика указателей: a= b=
Для тех из вас, кто хочет знать в чем тут дело, я приведу другой взгляд на присваивание в Python. Если в таких языках как Basic, Pascal, C/C++ мы имели дело с переменными-"емкостями", и хранимыми в них константами (числовыми, символьными, строковыми - не суть важно), а операция присваивания означала "занесение" константы в присваиваемую переменную, то в Python мы уже должны работать с переменными-"именами" и именуемыми ими объектами. (Замечаете некоторую аналогию с языком Prolog?) Что же такое объект в Python? Это все то, чему можно дать имя: числа, строки, списки, словари, экземпляры классов (которые в Object Pascal и называются объектами), сами классы (!), функции, модули и т.д. Так вот, при присваивании переменной некоторого объекта, переменная становится его "именем", причем таких "имен" объект может иметь сколько угодно и все они никак не зависят друг от друга.
Теперь, объекты делятся на модифицируемые (мутируемые) и неизменные. Мутируемые - те, которые могут изменить свое "внутреннее содержание", например, списки, словари, экземпляры классов. А неизменные - такие как числа, тьюплы, строки (да, строки тоже; можно переменной присвоить новую строку, полученную из старой, но саму старую строку модифицировать не получится).
Так вот, если мы пишем
a = ; b = a; b = 3
,
Python это интерпретирует так:
И последнее, что стоит сказать насчет этого: хотя нет возможности изменения структуры тьюпла, но содержащиеся в нем мутируемые компоненты по-прежнему доступны для модификации:
T = (1, 2, , "string") t = 6 # так нельзя del t # тоже ошибка t = 0 # допустимо, теперь третья компонента - список t = "S" # ошибка: строки не мутируемы
5. Весьма оригинальным является то, как
в Python группируются операторы. В Pascal для этого служат операторные
скобки begin-end
, в C, C++, Java - фигурные скобки {}, в Basic применяются
закрывающие окончания конструкций языка (NEXT, WEND, END IF, END SUB).
В языке Python все гораздо проще: выделение блока операторов осуществляется
путем сдвига выделяемой группы на один или более пробелов или символов
табуляции вправо относительно заголовка конструкции к которой и будет относиться
данный блок. Например:
Описание языка. Управляющие конструкции
Обработка исключительных ситуаций
try:
<оператор1> [ except [<исключение> [, <переменная>] ]: <оператор2>] [ else <оператор3>] |
Выполняется <оператор1>, если при этом возникла исключительная ситуация
<исключение>, то выполняется <оператор2>. Если <исключение> имеет
значение, то оно присваивается <переменной>.
В случае успешного завершения <оператора1>, выполняется <оператор3>. |
try:
<оператор1> finally: <оператор2> |
Выполняется <оператор1>. Если не возникло исключений, то выполняется <оператор2>. Иначе выполняется <оператор2> и немедленно инициируется исключительная ситуация. |
raise <исключение> [<значение>] | Инициирует исключительную ситуацию <исключение> с параметром <значение>. |
Исключения - это просто строки (string). Пример:
My_ex = ‘bad index’ try: if bad: raise my_ex, bad except my_ex, value: print ‘ Error ’, value
Объявление функций
Объявление классов
Class cMyClass:
def __init__(self, val):
self.value = val
#
def printVal (self):
print ‘ value = ’, self.value
#
# end cMyClass
obj = cMyClass (3.14)
obj.printVal ()
obj.value = " string now "
obj.printVal ()
Результат:
value = 3.14
value = string now
Операторы для всех типов последовательностей (списки, тьюплы, строки)
Операторы для списков (list)
s[i] = x | i-тый элемент s заменяется на x. |
s = t | часть элементов s от i до j-1 заменяется на t (t может быть также списком). |
del s | удаляет часть s (также как и s = ). |
s.append (x) | добавляет элемент x к концу s. |
s.count (x) | возвращает количество элементов s равных x. |
s.index (x) | возвращает наименьший i, такой, что s[i]==x. |
s.insert (i,j) | часть s, начиная с i-го элемента, сдвигается вправо, и s[i] присваивается x. |
s.remove (x) | то же, что и del s[ s.index(x) ] - удаляет первый элемент s, равный x. |
s.reverse () | записывает строку в обратном порядке |
s.sort () | сортирует список по возрастанию. |
Операторы для словарей (dictionary)
Файловые объекты
Создаются встроенной функцией open()
(ее описание смотрите ниже).
Например: f = open (‘mydan.dat’,‘r’)
.
Методы:
Другие элементы языка и встроенные функции
= | присваивание. |
print [ < c1 > [, < c2 >]* [, ] ] | выводит значения < c1 >, < c2 > в стандартный вывод. Ставит пробел между аргументами. Если запятая в конце перечня аргументов отсутствует, то осуществляет переход на новую строку. |
abs (x) | возвращает абсолютное значение x. |
apply (f, <аргументы>) | вызывает функцию (или метод) f с < аргументами >. |
chr (i) | возвращает односимвольную строку с ASCII кодом i. |
cmp (x, y) | возвращает отрицательное, ноль, или положительное значение, если, соответственно, x <, ==, или > чем y. |
divmod (a, b) | возвращает тьюпл (a/b, a%b), где a/b - это a div b (целая часть результата деления), a%b - это a mod b (остаток от деления). |
eval (s)
|
возвращает объект, заданный в s как строка (string). S может содержать любую структуру языка. S также может быть кодовым объектом, например: x = 1 ; incr_x = eval ("x+1") . |
float (x) | возвращает вещественное значение равное числу x. |
hex (x) | возвращает строку, содержащую шестнадцатеричное представление числа x. |
input (<строка>) | выводит <строку>, считывает и возвращает значение со стандартного ввода. |
int (x) | возвращает целое значение числа x. |
len (s) | возвращает длину (количество элементов) объекта. |
long (x) | возвращает значение типа длинного целого числа x. |
max (s) , min (s) | возвращают наибольший и наименьший из элементов последовательности s (т.е. s - строка, список или тьюпл). |
oct (x) | возвращает строку, содержащую представление числа x. |
open (<имя файла>, <режим>=‘r’) | возвращает файловый объект, открытый для чтения. <режим> = ‘w’ - открытие для записи. |
ord (c) | возвращает ASCII код символа (строки длины 1) c. |
pow (x, y) | возвращает значение x в степени y. |
range (<начало>, <конец>, <шаг>) | возвращает список целых чисел, больших либо равных <начало> и меньших чем <конец>, сгенерированных с заданным <шагом>. |
raw_input ( [ <текст> ] ) | выводит <текст> на стандартный вывод и считывает строку (string) со стандартного ввода. |
round (x, n=0) | возвращает вещественное x, округленное до n-го разряда после запятой. |
str (<объект>) | возвращает строковое представление <объекта>. |
type (<объект>) | возвращает тип объекта.
Например: if type(x) == type(‘’): print ‘ это строка ’ |
xrange (<начало>, <конец>, <шаг>) | аналогичен range, но лишь имитирует список, не создавая его. Используется в цикле for. |
Cпециальные функции для работы со списками
filter (<функция>, <список>) | возвращает список из тех элементов <спиcка>, для которых <функция> принимает значение "истина". |
map (<функция>, <список>) | применяет <функцию> к каждому элементу <списка> и возвращает список результатов. |
reduce (f,
<список>,
[, <начальное значение> ] ) |
возвращает значение полученное "редуцированием" <списка> функцией
f. Это значит, что имеется некая внутренняя переменная p, которая инициализируется
<начальным значением>, затем, для каждого элемента <списка>, вызывается
функция f с двумя параметрами: p и элементом <списка>. Возвращаемый
f результат присваивается p. После перебора всего <списка> reduce возвращает
p.
С помощью данной функции можно, к примеру, вычислить сумму элементов списка: def func (red, el): return red+el sum = reduce (func, , 0) # теперь sum == 15 |
lambda [<список параметров>] : <выражение> | "анонимная" функция, не имеющая своего имени и записываемая в месте своего вызова. Принимает параметры, заданные в <списке параметров>, и возвращает значение <выражения>. Используется для filter, reduce, map. Например: >>>print filter (lambda x: x>3, ) >>>print map (lambda x: x*2, ) >>>p=reduce (lambda r, x: r*x, , 1) >>>print p 24 |
Импортирование модулей
Стандартный модуль math
Переменные: pi
, e
.
Функции
(аналогичны функциям языка C):
acos(x) | cosh(x) | ldexp(x,y) | sqrt(x) |
asin(x) | exp(x) | log(x) | tan(x) |
atan(x) | fabs(x) | sinh(x) | frexp(x) |
atan2(x,y) | floor(x) | pow(x,y) | modf(x) |
ceil(x) | fmod(x,y) | sin(x) | |
cos(x) | log10(x) | tanh(x) |
Модуль string
Функции:
Заключение
Благодаря простоте и гибкости языка Python, его можно рекомендовать
пользователям (математикам, физикам, экономистам и т.д.) не являющимся
программистами, но использующими вычислительную технику и программирование
в своей работе.
Программы на Python разрабатываются в среднем в полтора-два (а
порой и в два-три) раза быстрее нежели на компилируемых языках (С, С++,
Pascal). Поэтому, язык может представлять не малый интерес и для профессиональных
программистов, разрабатывающих приложения, не критичные к скорости выполнения,
а также программы, использующие сложные структуры данных. В частности,
Python хорошо зарекомендовал себя при разработке программ работы с графами,
генерации деревьев.
Литература
Последнее обновление: 24.01.2018
Python представляет популярный высокоуровневый язык программирования, который предназначен для создания приложений различных типов. Это и веб-приложения, и игры, и настольные программы, и работа с базами данных. Довольно большое распространение питон получил в области машинного обучения и исследований искусственного интеллекта.
Впервые язык Python был анонсирован в 1991 году голландским разработчиком Гвидо Ван Россумом. С тех пор данный язык проделал большой путь развития. В 2000 году была издана версия 2.0, а в 2008 году - версия 3.0. Несмотря на вроде такие большие промежутки между версиями постоянно выходят подверсии. Так, текущей актуальной версией на момент написания данного материала является 3.7 . Более подробную информацию о всех релизах, версиях и изменения языка, а также собственно интерпретаторы и необходимые утилиты для работы и прочую полезную информацию можно найти на официальном сайте https://www.python.org/ .
Основные особенности языка программирования Python:
Python - очень простой язык программирования, он имеет лаконичный и в то же время довольно простой и понятный синтаксис. Соответственно его легко изучать, и собственно это одна из причин, по которой он является одним из самых популярных языков программирования именно для обучения. В частности, в 2014 году он был признан самым популярным языком программирования для обучения в США.
Python также популярен не только в сфере обучения, но в написании конкретных программ в том числе коммерческого характера. В немалой степени поэтому для этого языка написано множество библиотек, которые мы можем использовать.
Кроме того, у данного языка программирования очень большое коммьюнити, в интернете можно найти по данному языку множество полезных материалов, примеров, получить квалифицированную помощь специалистов.
Для создания программ на Python нам потребуется интерпретатор. Для его установки перейдем на сайт https://www.python.org/ и на главной станице в секции Downloads найдем ссылку на загрузку последней версии языка (на данный момент это 3.7.2):
Перейдем по ссылке к странице с описанием последней версии языка. Ближе к низу на ней можно найти список дистрибутивов для разных операционных систем. Выберем нужный нам пакет и загрузим его. Например, в моем случае это ОС Windows 64-х разрядная, поэтому я выбираю ссылку на пакет Windows x86-64 executable installer . После загрузки дистрибутива установим его.
Соответственно для MacOS можно выбрать пункт macOS 64-bit installer .
На ОС Windows при запуске инсталлятора запускает окно мастера установки:
Здесь мы можем задать путь, по которому будет устанавливаться интерпретатор. Оставим его по умолчанию, то есть C:\Users\[имя_пользователя]\AppData\Local\Programs\Python\Python36\ .
Кроме того, в самом низу отметим флажок "Add Python 3.6 to PATH", чтобы добавить путь к интерпретатору в переменные среды.
После установки в меню Пуск на ОС Windows мы сможем найти иконки для доступа к разным утилитам питона:
Здесь утилита Python 3.7 (64-bit) представляет интерпретатор, в котором мы можем запустить скрипт. В файловой системе сам файл интерпретатора можно найти по пути, по которому производилась установка. На Windows по умолчанию это путь C:\Users\[имя_пользователя]\AppData\Local\Programs\Python\Python37 , а сам интерпретатор представляет файл python.exe . На ОС Linux установка производится по пути /usr/local/bin/python3.7 .
Когда-то давным давно, на одном закрытом форуме я пытался проводить обучение Пайтону. В общем дело там заглохло. Мне стало жалко написанных уроков, и я решил их выложить для широкой общественности. Пока самый первый, самый простой. Дальше идет интереснее, но может быть это будет не интересно. В общем, этот пост будет пробным шаром, если понравится, буду выкладывать дальше.
Python для начинающих. Глава первая. «О чем это мы»
На всякий случай, немного скучного «evangelism». Кому он надоел, можно пропустить несколько абзацев.
Python (читается как «Пайтон» а не «питон») - скриптовый язык, разработанный Гвидо ван Россумом в качестве простого языка, легкого в изучении новичку.
В наше время Пайтон – широко распространенный язык, который используется во многих областях:
- Разработка прикладного ПО (например linux-утилиты yum, pirut, system-config-*, IM-клиент Gajim и многие другие)
- Разработка web-приложений (мощнейший Application-сервер Zope и разработанная на его основе CMS Plone, на основе которой работает например сайт ЦРУ, и масса фреймворков для быстрой разработки приложений Plones, Django, TurboGears и многие другие)
- Использование в качестве встраиваемого скриптового языка во многих играх, и не только (в офисном пакете OpenOffice.org, 3d редакторе Blender, СУБД Postgre)
- Использование в научных рассчетах (с пакетами SciPy и numPy для расчетов и PyPlot для рисования графиков Пайтон становится практически сравним с пакетами типа MatLab)
И это конечно далеко не полный список проектов, использующих этот замечательный язык.
1. Сам интерпретатор, его можно взять тут (http://python.org/download/).
2. Среда разработки. Она для начала необязательна, да и идущий в дистрибутиве IDLE подойдет новичку, но для серъезных проектов нужно что-то посерьезней.
Для Windows я использую замечательный легковесный PyScripter (http://tinyurl.com/5jc63t), для Linux – Komodo IDE.
Хотя для первого урока достаточно будет просто интерактивной оболочки самого Пайтона.
Просто запустите python.exe. Приглашение ввода не заставит себя долго ждать, оно выглядит так:
Также можно записывать программы в файлы с расширением py, в вашем любимом текстовом редакторе, который не добавляет к тексту своих символов разметки (нет Word не подойдет). Также желательно чтобы этот редактор умел делать «умные табуляторы» и не заменял пробелы знаком табуляции.
Для запуска файлов на исполнение по ним можно щелкать 2 раза. Если консольное окно закрывается слишком быстро, вставьте в конце программы следующую строку:
Тогда интерпретатор будет в конце программы ждать нажатия enter.
Или ассоциируйте py-файлы в Far с Пайтоном и открывайте нажимая enter.
Наконец можно воспользоваться одной из многих удобных IDE для Пайтона, которые предоставляют и возможности отладки и подсветку синтаксиса и многие другие «удобства».
Немного теории.
Для начала, Пайтон – язык со строгой динамической типизацией. Что это означает?
Есть языки со строгой типизацией (pascal, java, c и т.п.), у которых тип переменной определяется заранее и не может быть изменен, и есть языки с динамической типизацией (python, ruby, vb), в которых тип переменной трактуется в зависимости от присвоенного значения.
Языки с динамической типизацией можно разделить еще на 2 вида. Строгие, которые не допускают неявного преобразования типа (Пайтон) и нестрогие, которые выполняют неявные преобразования типа (например VB, в котором можно легко сложить строку "123" и число 456).
Разобравшись с классификацией Пайтона, попробуем немного «поиграть» с интерпретатором.
>>> a = b = 1 >>> a, b (1, 1) >>> b = 2 >>> a, b (1, 2) >>> a, b = b, a >>> a, b (2, 1)
Таким, образом мы видим что присваивание осуществляется с помощью знака =. Присвоить значение можно сразу нескольким переменным. При указании интерпретатору имени переменной в интерактивном режиме, он выводит ее значение.
Следующее, что необходимо знать – как строятся базовые алгоритмические единицы – ветвления и циклы. Для начала, необходима небольшая справка. В Пайтоне нет специального ограничителя блоков кода, их роль выполняют отступы. То есть то что написано с одинаковым отступом – является одним командным блоком. Поначалу это может показаться странным, но после легкого привыкание, понимаешь что эта «вынужденная» мера позволяет получать очень читабельный код.
Итак условия.
Условие задается с помощью оператора if, который заканчивается «:». Альтернативные условия которые будут выполняться если первая проверка «не прошла» задаются оператором elif. Наконец else задает ветку, которая будет выполнена если ни одно из условий не подошло.
Обратите внимание, что после ввода if интерпретатор с помощью приглашения «...» показывает что он ожидает продолжения ввода. Чтобы сообщить ему что мы закончили, необходимо ввести пустую строку.
(Пример с ветвлениями почему-то рвет разметку на хабре, не смотря на танцы с тегами pre и code. Простите за неудобство, я его кинул сюда pastebin.com/f66af97ba , если кто-то подскажет что не так - буду очень признателен)
Циклы.
Простейшим случаем цикла является цикл while. В качестве параметра он принимает условие и выполняется до тех пор, пока оно истино.
Вот маленький пример.
>>> x = 0 >>> while x<=10: ... print x ... x += 1 ... 0 1 2 ........... 10
Обратите внимание что поскольку и print x и x+=1 написаны с одинаковым отступом, они считаются телом цикла (помните что я говорил про блоки? ;-)).
Второй вид циклов в Пайтон – цикл for. Он аналогичен циклу foreach других языков. Его синтаксис условно таков.
For переменная in список:
команды
Переменной будут присваиваться по очереди все значения из списка (на самом деле там может быть не только список, но и любой другой итератор, но не будем пока этим забивать голову).
Вот простой пример. В роли списка будет выступать строка, которая является ничем иным как списком символов.
>>> x = "Hello, Python!" >>> for char in x: ... print char ... H e l ........... !
Таким образом мы можем разложить строку по символам.
Что же делать если нам нужен цикл, повторяющийся определенное число раз? Очень просто, на помощь придет функция range.
На входе она принимает от одного до трех параметров, на выходе возвращает список чисел, по которому мы можем «пройтись» оператором for.
Вот несколько примеров использования функции range, которые объясняют роль ее параметров.
>>> range(10) >>> range(2, 12) >>> range(2, 12, 3) >>> range(12, 2, -2)
И маленький пример с циклом.
>>> for x in range(10): ... print x ... 0 1 2 ..... 9
Ввод-вывод
Последнее, что следует знать перед тем как начать использовать Пайтон полноценно – это как осуществляется в нем ввод-вывод.
Для вывода используется команда print, которая выводит на печать все свои аргументы в удобочитаемом виде.
Для ввода с консоли используется функция raw_input(приглашение), которая выводит на экран приглашение и ожидает ввода пользователя, возвращая то что ввел пользователь в виде своего значения.
X = int(raw_input ("Введи число:")) print "Квадрат этого числа составляет ", x * x
Внимание! Несмотря на существование функции input() схожего действия, использовать ее в программах не рекомендуется, так как интерпретатор пытается выполнить вводимые с ее помощью синтаксические выражения, что является серьезной дырой в безопасности программы.
Вот и все для первого урока.
Домашнее задание.
1. Составить программу расчета гипотенузы прямоугольного треугольника. Длина катетов запрашивается у пользователя.
2. Составить программу нахождения корней квадратного уравнения в общем виде. Коэффициенты запрашиваются у пользователя.
3. Составить программу вывода таблицы умножения на число M. Таблица составляется от M * a, до M * b, где M, a, b запрашиваются у пользователя. Вывод должен осуществляется в столбик, по одному примеру на строку в следующем виде (например):
5 х 4 = 20
5 х 5 = 25
И так далее.