Уроки по Python, часть 4, строки, списки, словари





















































Приветствую всех! Вы еще не забыли, что здесь происходит? Если нет, то давайте окунемся в замечательный мир Python! Тема сегодняшнего урока — списки, словари и строки. Перед началом чтения советую повторить материалы третьего урока, особенно про цикл for, т.к. мы будем широко его применять.







Не дай помереть с голоду, опубликуй свою статью.







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







#Я работаю в интерпретаторе, чтобы наглядно показать тип переменной



>>> stroka = 'Привет!'


>>> type(stroka) #Type - полезная функция, которая определяет тип переменной.


<type 'str'>


>>> ch = 4


>>> type(ch)


<type 'int'>


>>> ch = str(4)


>>> type(ch)


<type 'str'>


>>>




Конечно же, имя переменной для строки может быть любым.







Есть интересные возможности у строк. Покажу их в этом примере, комментарии поясняют.







#Я опять в интерпретаторе 



good = 'Все хорошо!'


>>> len(good) #Определяем длину строки


20


>>> good[1] #У каждой буквы есть индекс в строке. Отсчет начинается с нуля!


'с'


>>> good[5]


'о'


>>> time = 'morning'


>>> time[0:7] #Мы произвели срез строки; отобразятся элементы с 0 по 7 индекс


'morning'


>>> '+' * 3 #Мы продублировали строку 3 раза


'+++'


#Также можно склеить одну строку с другой, что мы уже видели в прошлых уроках (b + c)








Еще раз повторюсь — индексы букв начинаются с нуля (0). Также строки — неизменяемый тип данных! У вас не получится заменить одну букву другой используя индексы. Впрочем, если интересно, можете попробовать.







Я вас просил вспомнить про цикл for. Почему? Потому что символы в строке можно перебрать посредством этого цикла!







rt='rule'



for i in rt:


print(i)


#Вывод этого цикла:


r


u


l


e




Задание: попробуйте вывести отдельно каждый элемент строки, не используя цикл for. Решение вы можете опубликовать в обсуждении уроков.







Списки
Если честно, то больше всего из элементов питона я люблю списки! Они гибкие, простые, удобные… Я уверен, они вам тоже понравятся.







Списки могут содержать числа, строки и даже… еще один список (т.е. вложенные списки уже получаются)! Списки заключаются в квадратные скобки [ ]. Небольшой пример:











c=['apple', 56, 'yast'] #Список из строк и чисел


print(c[2]) #Угадайте, что отобразится в терминале (yast)


[[6, 5, 2], ['ubuntu 12.04', 67]] #Вложенный список










Длина списка определяется len(имя).







А теперь перед вами раскроется вся магия списков!







c=['uh', 'bh', 'tfedc']



c[1]='haha' #Мы изменили 1 элемент в списке на haha


c[0:2]=[45, 'gg'] #Мы заменили целый срез в списке


c.append(3) #Мы добавили 3 в конец списка (функция append всегда добавляет в конец списка)


#Также список может содержать переменную как элемент. При запросе вывода списка, элемент-переменная отобразит значение переменной








Цикл for тоже применяется со списками. Он перебирает каждый элемент







Вам понравилось? Нет? Значит понравится!







Словари
В Python (читается как «пайтон»!) есть еще одни мощные инструменты — словари. Давайте вспомним обычный словарь. Элементы в нем располагаются так: ключ (слово) — значение и т.д. Питон-словари от этого принципа не отличаются.







#Пример словаря



eng={'frog':'лягушка', 'seven':'7'}


#Найдем значение у ключа frog


print(eng['frog']) #Мы получим "лягушка"


#Изменим значение у seven


eng[seven]='семь'


#Удалим все про лягушку


del(eng['frog'])








Вы можете создать пустой словарь вот такой конструкцией: переменная{}, чтобы потом в него что-нибудь добавлять. Кстати, словарь может содержать и другие типы данных, не только строки. Цикл for тоже работает со словарями, но гибкости — 0.



Tip: если вы в интерпретаторе выведите ранее сделанный словарь, то увидите, что порядок изменился.







Домашнее задание:
1. Повторите строки



2. Напишите программу, которая спрашивает пользователя числа и добавляет их в конец списка, пока количество всех элементов меньше 5. Затем с помощью цикла for выведите все числа, предварительно прибавив к первому числу 1, ко второму 2, к третьему 3 и т.д.



3. Напишите простой русско-английский словарь, который отображает перевод введенного пользователем слова. Если такого слова нет, то его надо добавить в словарь.







Выполнение домашнего задания выкладывайте здесь. И… до новых встреч!







НОВЫЙ УРОК