пример кода на python с пояснением строк

Основы языка программирования Python за 10 минут

пример кода на python с пояснением строк

На сайте Poromenos’ Stuff была
опубликована статья, в которой, в сжатой форме,
рассказывают об основах языка Python. Я предлагаю вам перевод этой статьи. Перевод не дословный. Я постарался подробнее объяснить некоторые моменты, которые могут быть непонятны.

Если вы собрались изучать язык Python, но не можете найти подходящего руководства, то эта
статья вам очень пригодится! За короткое время, вы сможете познакомиться с
основами языка Python. Хотя эта статья часто опирается
на то, что вы уже имеете опыт программирования, но, я надеюсь, даже новичкам
этот материал будет полезен. Внимательно прочитайте каждый параграф. В связи с
сжатостью материала, некоторые темы рассмотрены поверхностно, но содержат весь
необходимый метриал.

Основные свойства

Python не требует явного объявления переменных, является регистро-зависим (переменная var не эквивалентна переменной Var или VAR — это три разные переменные) объектно-ориентированным языком.

Синтаксис

Во первых стоит отметить интересную особенность Python. Он не содержит операторных скобок (begin..end в pascal или <..>в Си), вместо этого блоки выделяются отступами: пробелами или табуляцией, а вход в блок из операторов осуществляется двоеточием. Однострочные комментарии начинаются со знака фунта «#», многострочные — начинаются и заканчиваются тремя двойными кавычками «»»»».
Чтобы присвоить значение пременной используется знак «=», а для сравнения —
«==». Для увеличения значения переменной, или добавления к строке используется оператор «+=», а для уменьшения — «-=». Все эти операции могут взаимодействовать с большинством типов, в том числе со строками. Например

Структуры данных

Вы можете использовать часть массива, задавая первый и последний индекс через двоеточие «:». В таком случае вы получите часть массива, от первого индекса до второго не включительно. Если не указан первый элемент, то отсчет начинается с начала массива, а если не указан последний — то масив считывается до последнего элемента. Отрицательные значения определяют положение элемента с конца. Например:

Строки

Строки в Python обособляются кавычками двойными «»» или одинарными «’». Внутри двойных ковычек могут присутствовать одинарные или наоборот. К примеру строка «Он сказал ‘привет’!» будет выведена на экран как «Он сказал ‘привет’!». Если нужно использовать строку из несколько строчек, то эту строку надо начинать и заканчивать тремя двойными кавычками «»»»». Вы можете подставить в шаблон строки элементы из кортежа или словаря. Знак процента «%» между строкой и кортежем, заменяет в строке символы «%s» на элемент кортежа. Словари позволяют вставлять в строку элемент под заданным индексом. Для этого надо использовать в строке конструкцию «%(индекс)s». В этом случае вместо «%(индекс)s» будет подставлено значение словаря под заданным индексом.

Операторы

Операторы while, if, for составляют операторы перемещения. Здесь нет аналога оператора select, так что придется обходиться if. В операторе for происходит сравнение переменной и списка. Чтобы получить список цифр до числа — используйте функцию range( ). Вот пример использования операторов

if rangelist[ 1 ] == 2 :
print «The second item (lists are 0-based) is 2»
elif rangelist[ 1 ] == 3 :
print «The second item (lists are 0-based) is 3»
else :
print «Dunno»

while rangelist[ 1 ] == 1 :
pass

Функции

# Следующая запись эквивалентна def f(x): return x + 1
functionvar = lambda x: x + 1
>>> print functionvar( 1 )
2

Классы

Язык Python ограничен в множественном наследовании в классах. Внутренние переменные и внутренние методы классов начинаются с двух знаков нижнего подчеркивания «__» (например «__myprivatevar»). Мы можем также присвоить значение переменной класса извне. Пример:

Исключения

Исключения в Python имеют структуру tryexcept [exceptionname]:

def somefunction():
try :
# Деление на ноль вызывает ошибку
10 / 0
except ZeroDivisionError :
# Но программа не «Выполняет недопустимую операцию»
# А обрабатывает блок исключения соответствующий ошибке «ZeroDivisionError»
print «Oops, invalid.»

Импорт

Внешние библиотеки можно подключить процедурой «import [libname]», где [libname] — название подключаемой библиотеки. Вы так же можете использовать команду «from [libname] import [funcname]», чтобы вы могли использовать функцию [funcname] из библиотеки [libname]

import random #Импортируем библиотеку «random»
from time import clock #И заодно функцию «clock» из библиотеки «time»

Работа с файловой системой

Python имеет много встроенных библиотек. В этом примере мы попробуем сохранить в бинарном файле структуру списка, прочитать ее и сохраним строку в текстовом файле. Для преобразования структуры данных мы будем использовать стандартную библиотеку «pickle»

myfile = file (r «C:\text.txt» )
>>> print myfile.read()
‘This is a sample string’
myfile.close()

Особенности

def myfunc():
# Выводит 5
print number

def anotherfunc():
# Это вызывает исключение, поскольку глобальная апеременная
# не была вызванна из функции. Python в этом случае создает
# одноименную переменную внутри этой функции и доступную
# только для операторов этой функции.
print number
number = 3

def yetanotherfunc():
global number
# И только из этой функции значение переменной изменяется.
number = 3

Эпилог

Разумеется в этой статье не описываются все возможности Python. Я надеюсь что эта статья поможет вам, если вы захотите и в дальнейшем изучать этот язык программирования.

Преимущества Python

Источник

Python с абсолютного нуля. Учимся кодить без скучных книжек

пример кода на python с пояснением строк

Содержание статьи

От редакции

Не­дав­но мы про­води­ли опрос о том, какой курс по Python был бы инте­рес­нее читате­лям. Две пер­вые строч­ки с боль­шим отры­вом в нем заняли вари­анты «для хакера» и «Python с нуля». Узнав о таком положе­нии дел, мы немед­ленно заказа­ли статью о том, как начать прог­рамми­ровать на Python. Если она будет иметь успех, то может прев­ратить­ся в целую серию. Отли­чие нашего под­хода — в том, что мы объ­ясня­ем все живым язы­ком и даем нес­кучные при­меры. В общем, обу­чение в фир­менном сти­ле «Хакера»!

И, пос­коль­ку это экспе­римент, статья дос­тупна без плат­ной под­писки.

Ес­ли у тебя на ком­пе есть сов­ремен­ный дис­три­бутив Linux, то в него уже вхо­дит Python 3, а писать пер­вые прог­раммы будет удоб­но в IDLE — прос­том редак­торе кода, который при­лага­ется к Python. В Ubuntu, что­бы уста­новить его, набери в кон­соли

В Windows при уста­нов­ке Python обя­затель­но отметь на пер­вом экра­не уста­нов­щика галоч­ку Add to Path, что­бы мож­но было запус­кать python3 из коман­дной стро­ки в любом удоб­ном мес­те.

За­пус­тив IDLE, зай­ди в Options → Configure IDLE, перей­ди на вклад­ку General и пос­тавь галоч­ку на пун­кте Open Edit Window, наж­ми ОK и переза­пус­ти IDLE. Теперь мож­но писать прог­раммы, сох­ранять их и запус­кать кла­вишей F5. Ну что, пог­нали?

Переменные

А если изна­чаль­но неиз­вес­тно, какие чис­ла надо скла­дывать? Тог­да приш­лось бы спер­ва поп­росить юзе­ра ввес­ти их в кон­соли и нажать Enter. Давай так и сде­лаем:

Внут­ри ско­бочек у input ты пишешь пояс­нение для юзе­ра, что кон­крет­но его про­сят ввес­ти. Но вот беда, по умол­чанию все, что вво­дит­ся через input, счи­тает­ся не чис­лом, а стро­кой, поэто­му, преж­де чем скла­дывать количес­тво лит­ров пива, нуж­но сна­чала пре­обра­зовать вве­ден­ные стро­ки в чис­ла с помощью фун­кции int().

Во­обще, типов перемен­ных мно­го, но суть ты уло­вил — что­бы про­изво­дить с перемен­ными какие‑то дей­ствия, нуж­но их сна­чала при­вес­ти к одно­му типу — к стро­ково­му, или к чис­ловому, или еще к какому‑нибудь. Если с этим не замора­чивать­ся, Python сло­жит не чис­ла, а стро­ки и вве­ден­ные 2 и 3 лит­ра пива в сум­ме дадут не 5, а целых 23. Хорошо бы так было в реаль­нос­ти!

Вот еще при­мер­чик, рас­счи­тыва­ющий, сколь­ко тебе еще пить пиво, исхо­дя из сред­ней про­дол­житель­нос­ти жиз­ни в Рос­сии:

Условия

В осно­ве любой прог­раммы лежат усло­вия. В зависи­мос­ти от того, выпол­няют­ся они или не выпол­няют­ся, прог­рамма может пой­ти по одно­му или дру­гому пути. Пред­ставь, ты едешь на машине и смот­ришь на часы: если уже есть десять вечера, то повора­чива­ешь домой, если нет, то мож­но заехать в гос­ти. Точ­но так же работа­ет и прог­рамма: про­веря­ет какое‑то зна­чение и сво­рачи­вает туда или сюда и выпол­няет соот­ветс­тву­ющий кусочек кода.

Бло­ки кода в Python отде­лают­ся отсту­пами. Отступ на самом деле может быть любым, нап­ример некото­рые пред­почита­ют исполь­зовать вмес­то четырех про­белов кла­вишу Tab. Глав­ное — не сме­шивать в одной прог­рамме отсту­пы раз­ного типа. Если уж начал исполь­зовать четыре про­бела, то исполь­зуй по всей прог­рамме, а то Python будет на тебя ругать­ся и уни­жать.

Еще один важ­ный момент здесь — это знак равенс­тва в усло­вии. Он пишет­ся как двой­ное «рав­но» ( == ) и этим отли­чает­ся от прис­воения — оди­нар­ного «рав­но».

Фун­кция lower(), преж­де чем срав­нивать усло­вие, дела­ет все бук­вы в стро­ке малень­кими, потому что глу­пый юзер может ввес­ти сло­во YES с горящим Caps Lock, и это надо пре­дус­мотреть заранее.

На самом деле lower( ) — не прос­то фун­кция, а метод клас­са string (стро­ка). Имен­но поэто­му он вызыва­ется через точ­ку пос­ле перемен­ной, которая содер­жит стро­ку. О клас­сах и методах мы погово­рим как‑нибудь в дру­гой раз, а пока прос­то запом­ни, что некото­рые фун­кции вызыва­ются таким обра­зом.

Источник

Строки в python 3: методы, функции, форматирование

В уроке по присвоению типа переменной в Python вы могли узнать, как определять строки: объекты, состоящие из последовательности символьных данных. Обработка строк неотъемлемая частью программирования на python. Крайне редко приложение, не использует строковые типы данных.

Из этого урока вы узнаете: Python предоставляет большую коллекцию операторов, функций и методов для работы со строками. Когда вы закончите изучение этой документации, узнаете, как получить доступ и извлечь часть строки, а также познакомитесь с методами, которые доступны для манипулирования и изменения строковых данных.

Ниже рассмотрим операторы, методы и функции, доступные для работы с текстом.

Строковые операторы

Оператор сложения строк +

+ — оператор конкатенации строк. Он возвращает строку, состоящую из других строк, как показано здесь:

Оператор умножения строк *

* — оператор создает несколько копий строки. Если s это строка, а n целое число, любое из следующих выражений возвращает строку, состоящую из n объединенных копий s :

Вот примеры умножения строк:

Значение множителя n должно быть целым положительным числом. Оно может быть нулем или отрицательным, но этом случае результатом будет пустая строка:

Оператор принадлежности подстроки in

Встроенные функции строк в python

Python предоставляет множество функций, которые встроены в интерпретатор. Вот несколько, которые работают со строками:

ФункцияОписание
chr()Преобразует целое число в символ
ord()Преобразует символ в целое число
len()Возвращает длину строки
str()Изменяет тип объекта на string

Более подробно о них ниже.

Функция ord(c) возвращает числовое значение для заданного символа.

На базовом уровне компьютеры хранят всю информацию в виде цифр. Для представления символьных данных используется схема перевода, которая содержит каждый символ с его репрезентативным номером.

ASCII прекрасен, но есть много других языков в мире, которые часто встречаются. Полный набор символов, которые потенциально могут быть представлены в коде, намного больше обычных латинских букв, цифр и символом.

Unicode — это современный стандарт, который пытается предоставить числовой код для всех возможных символов, на всех возможных языках, на каждой возможной платформе. Python 3 поддерживает Unicode, в том числе позволяет использовать символы Unicode в строках.

Функция ord() также возвращает числовые значения для символов Юникода:

Функция chr(n) возвращает символьное значение для данного целого числа.

chr() также обрабатывает символы Юникода:

Функция len(s) возвращает длину строки.

len(s) возвращает количество символов в строке s :

Функция str(obj) возвращает строковое представление объекта.

Практически любой объект в Python может быть представлен как строка. str(obj) возвращает строковое представление объекта obj :

Индексация строк

Часто в языках программирования, отдельные элементы в упорядоченном наборе данных могут быть доступны с помощью числового индекса или ключа. Этот процесс называется индексация.

Например, схематическое представление индексов строки ‘foobar’ выглядит следующим образом:

пример кода на python с пояснением строк

Отдельные символы доступны по индексу следующим образом:

пример кода на python с пояснением строк

Вот несколько примеров отрицательного индексирования:

Срезы строк

Если пропустить первый индекс, срез начинается с начала строки. Таким образом, s[:m] = s[0:m] :

Для любой строки s и любого целого n числа ( 0 ≤ n ≤ len(s) ), s[:n] + s[n:] будет s :

Пропуск обоих индексов возвращает исходную строку. Это не копия, это ссылка на исходную строку:

Если первый индекс в срезе больше или равен второму индексу, Python возвращает пустую строку. Это еще один не очевидный способ сгенерировать пустую строку, если вы его искали:

Отрицательные индексы можно использовать и со срезами. Вот пример кода Python:

Шаг для среза строки

Существует еще один вариант синтаксиса среза, о котором стоит упомянуть. Добавление дополнительного : и третьего индекса означает шаг, который указывает, сколько символов следует пропустить после извлечения каждого символа в срезе.

пример кода на python с пояснением строк

Иллюстративный код показан здесь:

Как и в случае с простым срезом, первый и второй индексы могут быть пропущены:

Вы также можете указать отрицательное значение шага, в этом случае Python идет с конца строки. Начальный/первый индекс должен быть больше конечного/второго индекса:

В приведенном выше примере, 5:0:-2 означает «начать с последнего символа и делать два шага назад, но не включая первый символ.”

Когда вы идете назад, если первый и второй индексы пропущены, значения по умолчанию применяются так: первый индекс — конец строки, а второй индекс — начало. Вот пример:

Это общая парадигма для разворота (reverse) строки:

Форматирование строки

В Python версии 3.6 был представлен новый способ форматирования строк. Эта функция официально названа литералом отформатированной строки, но обычно упоминается как f-string.

Возможности форматирования строк огромны и не будут подробно описана здесь.
Одной простой особенностью f-строк, которые вы можете начать использовать сразу, является интерполяция переменной. Вы можете указать имя переменной непосредственно в f-строковом литерале ( f’string’ ), и python заменит имя соответствующим значением.

Но это громоздко. Чтобы выполнить то же самое с помощью f-строки:

Код с использованием f-string, приведенный ниже выглядит намного чище:

Любой из трех типов кавычек в python можно использовать для f-строки:

Изменение строк

Строки — один из типов данных, которые Python считает неизменяемыми, что означает невозможность их изменять. Как вы ниже увидите, python дает возможность изменять (заменять и перезаписывать) строки.

Такой синтаксис приведет к ошибке TypeError :

На самом деле нет особой необходимости изменять строки. Обычно вы можете легко сгенерировать копию исходной строки с необходимыми изменениями. Есть минимум 2 способа сделать это в python. Вот первый:

Есть встроенный метод string.replace(x, y) :

Читайте дальше о встроенных методах строк!

Встроенные методы строк в python

В руководстве по типам переменных в python вы узнали, что Python — это объектно-ориентированный язык. Каждый элемент данных в программе python является объектом.

Вы также знакомы с функциями: самостоятельными блоками кода, которые вы можете вызывать для выполнения определенных задач.

Методы похожи на функции. Метод — специализированный тип вызываемой процедуры, тесно связанный с объектом. Как и функция, метод вызывается для выполнения отдельной задачи, но он вызывается только вместе с определенным объектом и знает о нем во время выполнения.

Синтаксис для вызова метода объекта выглядит следующим образом:

Вы узнаете намного больше об определении и вызове методов позже в статьях про объектно-ориентированное программирование. Сейчас цель усвоить часто используемые встроенные методы, которые есть в python для работы со строками.

В приведенных методах аргументы, указанные в квадратных скобках ( [] ), являются необязательными.

Изменение регистра строки

Методы этой группы выполняют преобразование регистра строки.

string.capitalize() приводит первую букву в верхний регистр, остальные в нижний.

s.capitalize() возвращает копию s с первым символом, преобразованным в верхний регистр, и остальными символами, преобразованными в нижний регистр:

Не алфавитные символы не изменяются:

string.lower() преобразует все буквенные символы в строчные.

s.lower() возвращает копию s со всеми буквенными символами, преобразованными в нижний регистр:

string.swapcase() меняет регистр буквенных символов на противоположный.

s.swapcase() возвращает копию s с заглавными буквенными символами, преобразованными в строчные и наоборот:

string.title() преобразует первые буквы всех слов в заглавные

s.title() возвращает копию, s в которой первая буква каждого слова преобразуется в верхний регистр, а остальные буквы — в нижний регистр:

Этот метод использует довольно простой алгоритм. Он не пытается различить важные и неважные слова и не обрабатывает апострофы, имена или аббревиатуры:

string.upper() преобразует все буквенные символы в заглавные.

s.upper() возвращает копию s со всеми буквенными символами в верхнем регистре:

Найти и заменить подстроку в строке

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

string.count([, [, ]]) подсчитывает количество вхождений подстроки в строку.

s.count() возвращает количество точных вхождений подстроки в s :

Количество вхождений изменится, если указать и :

string.endswith( [, [, ]]) определяет, заканчивается ли строка заданной подстрокой.

s.endswith( ) возвращает, True если s заканчивается указанным и False если нет:

string.find([, [, ]]) ищет в строке заданную подстроку.

s.find() возвращает первый индекс в s который соответствует началу строки :

string.index([, [, ]]) ищет в строке заданную подстроку.

string.rfind([, [, ]]) ищет в строке заданную подстроку, начиная с конца.

string.rindex([, [, ]]) ищет в строке заданную подстроку, начиная с конца.

Классификация строк

Методы в этой группе классифицируют строку на основе символов, которые она содержит.

string.isalnum() определяет, состоит ли строка из букв и цифр.

string.isalpha() определяет, состоит ли строка только из букв.

string.isdigit() определяет, состоит ли строка из цифр (проверка на число).

s.digit() возвращает True когда строка s не пустая и все ее символы являются цифрами, а в False если нет:

string.isidentifier() определяет, является ли строка допустимым идентификатором Python.

string.islower() определяет, являются ли буквенные символы строки строчными.

string.isprintable() определяет, состоит ли строка только из печатаемых символов.

s.isprintable() возвращает, True если строка s пустая или все буквенные символы которые она содержит можно вывести на экран. Возвращает, False если s содержит хотя бы один специальный символ. Не алфавитные символы игнорируются:

string.isspace() определяет, состоит ли строка только из пробельных символов.

Тем не менее есть несколько символов ASCII, которые считаются пробелами. И если учитывать символы Юникода, их еще больше:

‘\f’ и ‘\r’ являются escape-последовательностями для символов ASCII; ‘\u2005’ это escape-последовательность для Unicode.

string.istitle() определяет, начинаются ли слова строки с заглавной буквы.

string.isupper() определяет, являются ли буквенные символы строки заглавными.

Выравнивание строк, отступы

Методы в этой группе влияют на вывод строки.

string.center( [, ]) выравнивает строку по центру.

string.expandtabs(tabsize=8) заменяет табуляции на пробелы

s.expandtabs() заменяет каждый символ табуляции ( ‘\t’ ) пробелами. По умолчанию табуляция заменяются на 8 пробелов:

tabsize необязательный параметр, задающий количество пробелов:

string.ljust( [, ]) выравнивание по левому краю строки в поле.

string.lstrip([ ]) обрезает пробельные символы слева

s.lstrip() возвращает копию s в которой все пробельные символы с левого края удалены:

string.replace(

    , [, ]) заменяет вхождения подстроки в строке.

s.replace(

    , ) возвращает копию s где все вхождения подстроки

      , заменены на :

    string.rjust( [, ]) выравнивание по правому краю строки в поле.

    string.rstrip([ ]) обрезает пробельные символы справа

    s.rstrip() возвращает копию s без пробельных символов, удаленных с правого края:

    string.strip([ ]) удаляет символы с левого и правого края строки.

    Важно: Когда возвращаемое значение метода является другой строкой, как это часто бывает, методы можно вызывать последовательно:

    string.zfill( ) дополняет строку нулями слева.

    s.zfill( ) возвращает копию s дополненную ‘0’ слева для достижения длины строки указанной в :

    Если s содержит знак перед цифрами, он остается слева строки:

    .zfill() наиболее полезен для строковых представлений чисел, но python с удовольствием заполнит строку нулями, даже если в ней нет чисел:

    Методы преобразование строки в список

    Методы в этой группе преобразовывают строку в другой тип данных и наоборот. Эти методы возвращают или принимают итерируемые объекты — термин Python для последовательного набора объектов.

    Многие из этих методов возвращают либо список, либо кортеж. Это два похожих типа данных, которые являются прототипами примеров итераций в python. Список заключен в квадратные скобки ( [] ), а кортеж заключен в простые ( () ).

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

    string.join( ) объединяет список в строку.

    В результате получается одна строка, состоящая из списка объектов, разделенных запятыми.

    В следующем примере указывается как одно строковое значение. Когда строковое значение используется в качестве итерируемого, оно интерпретируется как список отдельных символов строки:

    Это можно исправить так:

    string.partition( ) делит строку на основе разделителя.

    s.rpartition( ) делит строку на основе разделителя, начиная с конца.

    string.rsplit(sep=None, maxsplit=-1) делит строку на список из подстрок.

    Без аргументов s.rsplit() делит s на подстроки, разделенные любой последовательностью пробелов, и возвращает список:

    Если указан, он используется в качестве разделителя:

    Это не работает, когда не указан. В этом случае последовательные пробельные символы объединяются в один разделитель, и результирующий список никогда не будет содержать пустых строк:

    string.split(sep=None, maxsplit=-1) делит строку на список из подстрок.

    string.splitlines([ ]) делит текст на список строк.

    s.splitlines() делит s на строки и возвращает их в списке. Любой из следующих символов или последовательностей символов считается границей строки:

    РазделительЗначение
    \nНовая строка
    \rВозврат каретки
    \r\nВозврат каретки + перевод строки
    \v или же \x0bТаблицы строк
    \f или же \x0cПодача формы
    \x1cРазделитель файлов
    \x1dРазделитель групп
    \x1eРазделитель записей
    \x85Следующая строка
    \u2028Новая строка (Unicode)
    \u2029Новый абзац (Unicode)

    Вот пример использования нескольких различных разделителей строк:

    Если в строке присутствуют последовательные символы границы строки, они появятся в списке результатов, как пустые строки:

    Заключение

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

    Python есть другие встроенные типы данных. В этих урока вы изучите два наиболее часто используемых:

    Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *