< Return to Video

Работа со строками

  • 0:00 - 0:02
    В этом видео я хочу
  • 0:02 - 0:04
    немного разобраться
  • 0:04 - 0:05
    с понятием строк (strings).
  • 0:05 - 0:07
    А также увидеть возможности строк
  • 0:07 - 0:08
    и как мы можем их использовать.
  • 0:08 - 0:10
    Или что с ними делать.
  • 0:10 - 0:11
    Итак, что я сейчас собираюсь здесь сделать...
  • 0:11 - 0:12
    я собираюсь написать небольшую простую программу,
  • 0:12 - 0:15
    что достаточно просто продемонстрирует возможности строк.
  • 0:15 - 0:17
    Далее я собираюсь использовать интерпретатор Python
  • 0:17 - 0:18
    поработать с этими строками
  • 0:18 - 0:19
    и посмотреть, что мы можем с ними сделать.
  • 0:19 - 0:21
    Итак, позвольте мне определить строку.
  • 0:21 - 0:23
    Давайте назовем строку "а"
  • 0:23 - 0:25
    и значение "а" -
  • 0:25 - 0:27
    определим как "My first test string".
    (пер: "Моя первая тестовая строка")
  • 0:27 - 0:31
    "My first test string", -
  • 0:31 - 0:32
    вот здесь, справа.
  • 0:32 - 0:33
    Как вы знаете, строка является
  • 0:33 - 0:36
    большой последовательностью символов вот здесь, справа
  • 0:36 - 0:37
    и вы можете ее узнать
  • 0:37 - 0:38
    по наличию апострофов
  • 0:38 - 0:40
    или двойных кавычек (' или ").
  • 0:40 - 0:41
    И, чтобы сделать ясным, что строка
  • 0:41 - 0:42
    не обязательно должна быть в кавычках ("),
  • 0:42 - 0:46
    позвольте мне определить "b" , как
  • 0:46 - 0:54
    'Another test string that I have defined'
    (пер:'Другая тестовая строка, определенная мной')
  • 0:54 - 0:57
    Еще раз, вы можете создать строку
  • 0:57 - 0:59
    просто вставляя набор символов
  • 0:59 - 1:01
    заключенный в кавычки
  • 1:01 - 1:04
    которые определяют начало и конец строки.
  • 1:04 - 1:06
    Например, у вас есть что-то вроде этого:
  • 1:06 - 1:14
    Вы указываете "This is Sal's string"
    (пер: "Это строка Сэла")
  • 1:14 - 1:16
    Кстати, в этом примере,
  • 1:16 - 1:18
    апостроф в Sal's допустим-
  • 1:18 - 1:20
    хоть это и символ, определяющий строку ('), но это нормально
  • 1:20 - 1:23
    потому, что интерпритатор будет знать:
  • 1:23 - 1:25
    "Смотри, строка начинается с двойных кавычек (")
  • 1:25 - 1:26
    так что я должен искать
  • 1:26 - 1:27
    другие двойные кавычки (") для окончания строки".
  • 1:27 - 1:29
    Таким образом, он не подумает:
  • 1:29 - 1:30
    "О, этот апостроф(') - окончание строки "
  • 1:30 - 1:32
    он скажет: "Мне нужна двойные кавычки (") ".
  • 1:32 - 1:34
    Так что он поимает, что все это является просто строкой,
  • 1:34 - 1:37
    что это апостроф это просто символ строки.
  • 1:37 - 1:40
    Есть одна вещь, которую я не могу сделать:
  • 1:40 - 1:42
    Давайте попробуем определить строку "d" здесь.
  • 1:42 - 1:45
    Попытаемся таким образом
  • 1:45 - 1:46
    что бы я не мог это осуществить:
  • 1:46 - 1:50
    'This is Sal's string'
  • 1:50 - 1:52
    В этом нет никакого смысла,
  • 1:52 - 1:55
    потому что здесь, мы начинаем строку с апострофа
  • 1:55 - 1:57
    далее ее закрываем апострофом в Sal's
  • 1:57 - 1:59
    и когда мы перейдем к продолжению строки
  • 1:59 - 2:00
    то все продолжение [s string'] является просто каким-то текстом
  • 2:00 - 2:02
    что интерпритатор Python будет
  • 2:02 - 2:04
    пытаться определить как какую-то программу,
  • 2:04 - 2:05
    и он здесь выдаст ошибку.
  • 2:05 - 2:06
    Поэтому если вы хотите, чтобы программа работала
  • 2:06 - 2:07
    не делайте как указывалось выше.
  • 2:07 - 2:14
    Вы могли бы сделать что-то вроде:
  • 2:14 - 2:16
    Не 'Sal's, а например,
  • 2:16 - 2:18
    таким образом, 'My favorite...
  • 2:18 - 2:19
    Либо любыми другими путями,
  • 2:19 - 2:20
    не прибегая к определяющим символам
  • 2:20 - 2:21
    Которые были бы здесь уместны
  • 2:21 - 2:25
    например, 'My favorite word is...
    (пер: 'Мое любимое слово - это...)
  • 2:25 - 2:27
    кстати, я не знаю, какое мое любимое слово
  • 2:27 - 2:29
    Не знаю, что подставить..
  • 2:29 - 2:34
    Но, допустим, 'My favorite word is "asparagus"...
    (пер: 'Мое любимое слово - это "спаржа"...)
  • 2:34 - 2:36
    У меня даже не получается записать его!
  • 2:36 - 2:38
    Спаржа...
  • 2:38 - 2:44
    Таким образом, 'My favorite word is "aspara[g]us", what is yours?'
  • 2:44 - 2:46
    Итак, еще раз, эта строка является правильной, так как
  • 2:46 - 2:48
    Я начинаю свой строку с апострофа,
  • 2:48 - 2:49
    интерпритатор говорит:
  • 2:49 - 2:50
    "Смотри, не буду заканчивать строку
  • 2:50 - 2:52
    пока не получу в конце еще один апостроф ".
  • 2:52 - 2:55
    Так что мы не запутаем интерпритатор
  • 2:55 - 2:57
    если он увидит открытие двойных кавычек в строке,
  • 2:57 - 2:58
    Потому что он знает, что
  • 2:58 - 3:00
    Строка начинается с апострофа.
  • 3:00 - 3:02
    Позвольте мне показать вам другие примеры строк,
  • 3:02 - 3:04
    это будут интересные примеры.
  • 3:04 - 3:06
    Строки не обязательно должны иметь имена единичных символов
  • 3:06 - 3:10
    поэтому позвольте мне называть строку "math_string"
  • 3:10 - 3:19
    И давайте определим ее "3 +4 * 2"
  • 3:19 - 3:21
    Такая вот математическая строка.
  • 3:21 - 3:22
    это действительно просто строка символов.
  • 3:22 - 3:25
    Интерпритатор не будет оценивать ее,
  • 3:25 - 3:28
    он буквально только рассмотрит ее как строку символов.
  • 3:28 - 3:31
    Так что я думаю, что это очень хорошая..
  • 3:31 - 3:34
    позвольте мне создать еще одну псевдо-математическую строку
  • 3:34 - 3:35
    или позвольте мне сделать еще одно выражение.
  • 3:35 - 3:37
    Разрешите мне назвать эту строку
  • 3:37 - 3:39
    Это просто имя переменной,
  • 3:39 - 3:44
    и позвольте мне назвать ее expression_string
  • 3:44 - 3:49
    Давайте скажем, что это "а+ ...
  • 3:49 - 3:52
    а потом я как бы создам строку внутри той строки(' ')
  • 3:52 - 4:01
    ... + b + 'tiger'"
  • 4:01 - 4:03
    вот здесь, справа.
  • 4:03 - 4:04
    Так что это просто...
  • 4:04 - 4:06
    все, что находится внутри двойных кавычек
  • 4:06 - 4:08
    интерпритатор просто будет рассматривать
  • 4:08 - 4:10
    как набор символов.
  • 4:10 - 4:12
    Так, есть интересные вещи,
  • 4:12 - 4:14
    которые мы могли бы получить с этого, в конце концов.
  • 4:14 - 4:16
    Так что, хватит создавать строки,
  • 4:16 - 4:20
    позвольте мне сохранить этот файл прямо сейчас, и запустим его.
  • 4:20 - 4:21
    И вот, что он делает:
  • 4:21 - 4:23
    Сейчас, в этой среде, все эти строки определены
  • 4:23 - 4:24
    и я могу проверить это, для этого, я могу сказать
  • 4:24 - 4:26
    "а"... 'My first test string'
  • 4:26 - 4:28
    "b"... 'Another test string that I have defined'
  • 4:28 - 4:31
    "c"... "This is Sal's string"
  • 4:31 - 4:33
    "d"... 'My favorite word is...
  • 4:33 - 4:34
    "aspara...
  • 4:34 - 4:34
    "asparaus"...
  • 4:34 - 4:36
    Я не мог даже написать "asparagus" должным образом,
  • 4:36 - 4:37
    Наверное, мы должны это исправить..
  • 4:37 - 4:39
    ... "Asparaus", what is yours?'
  • 4:39 - 4:41
    Надо добавить "g" - asparaGus!
  • 4:41 - 4:43
    ... what is yours?'
  • 4:43 - 4:44
    Далее у нас..
  • 4:44 - 4:46
    это попроще, в этой строке нет правописания,
  • 4:46 - 4:48
    мы можем посмотреть, как math_string выглядит,
  • 4:48 - 4:50
    math_string, это буквально строка символов.
  • 4:50 - 4:52
    Далее у нас строка с выражением.
  • 4:52 - 4:57
    Expression_string также буквально строка символов.
  • 4:57 - 4:59
    Теперь давайте немного поработаем
  • 4:59 - 5:00
    с некоторыми из этих строк
  • 5:00 - 5:01
    и посмотрим, что мы можем с ними сделать.
  • 5:01 - 5:03
    Так, вот пара вещей:
  • 5:03 - 5:04
    мы можем сказать: "Эй, какой размер этой строки?"
  • 5:04 - 5:08
    И здесь мы можем использовать встроенную в Python функцию len()
  • 5:08 - 5:10
    который является сокращением от "length" (длина)
  • 5:10 - 5:14
    Таким образом, len() от а [ len(а)],
  • 5:14 - 5:17
    говорит: "Эй, здесь двадцать символов в строке а!"
  • 5:17 - 5:18
    Давайте посчитаем, давайте проверим...
  • 5:18 - 5:20
    1, 2, пробел (' ') также является символом,
  • 5:20 - 5:29
    (считает до двадцати)
  • 5:29 - 5:30
    Да, двадцать символов!
  • 5:30 - 5:35
    Так, каков len() из math_string?
  • 5:35 - 5:37
    len(), длина покороче.
  • 5:37 - 5:38
    В math_string пять символов.
  • 5:38 - 5:39
    Давайте их пересчитаем
  • 5:39 - 5:42
    1, 2, 3, 4, 5 - символов.
  • 5:42 - 5:44
    Эта функция имеет большое значение
  • 5:44 - 5:44
    Мы могли бы сделать это для каждой строки,
  • 5:44 - 5:46
    и я советую вам попробовать это самостоятельно;
  • 5:46 - 5:48
    хороший эксперимент, привыкайте к этому.
  • 5:48 - 5:50
    Теперь, следующее, что я хочу вам показать...
  • 5:50 - 5:52
    Как объединить две строки.
  • 5:52 - 5:53
    Похоже, очень причудливое слово,
  • 5:53 - 5:55
    но на самом деле просто означает, соединить их вместе.
  • 5:55 - 5:58
    Так, например, я сказал бы...
  • 5:58 - 6:01
    Давайте создадим новую строку, и назовем ее
  • 6:01 - 6:08
    "a▁with▁b", и я определю ее как a+b
  • 6:08 - 6:10
    Таким образом, я делаю здесь очень интересную вещь.
  • 6:10 - 6:12
    Мы прибегли к помощи оператора сложения (+) чисел
  • 6:12 - 6:16
    но я собираюсь сложить две строки.
  • 6:16 - 6:18
    Давайте посмотрим, что из этого выйдет.
  • 6:18 - 6:21
    Итак, давайте посмотрим, как будет выглядеть "a▁with▁b".
  • 6:21 - 6:23
    "a▁with▁b" это просто переменная.
  • 6:23 - 6:25
    Итак, что случилось?
  • 6:25 - 6:27
    У меня было a - "My first test string"
  • 6:27 - 6:28
    и у меня b -
  • 6:28 - 6:30
    'Another test string that I have defined'
  • 6:30 - 6:32
    Когда я набрал a+b
  • 6:32 - 6:34
    Интерпритатор взял a - "My first test string"
  • 6:34 - 6:36
    и к ее концу прибавил b!
  • 6:36 - 6:38
    Он прибавил b к a
  • 6:38 - 6:41
    в результате- просто забавное слово "put 'em together!" (пер: "объединил их вместе")
  • 6:41 - 6:43
    'Another test string that I have defined'
  • 6:43 - 6:44
    было прибавлено к а
  • 6:44 - 6:45
    Полагаю, вы могли бы на это взглянуть
  • 6:45 - 6:47
    он присоединил b к концу а.
  • 6:47 - 6:48
    Но вы могли бы пойти другим путем,
  • 6:48 - 6:51
    Вы могли бы назвать это b▁with▁a
  • 6:51 - 6:54
    Давайте определим как b+a
  • 6:54 - 6:56
    И давайте взглянем на то, что получится
  • 6:56 - 6:58
    b▁with▁a...
  • 6:58 - 6:59
    Теперь - наоборот!
  • 6:59 - 7:01
    a добавилось к концу b.
  • 7:01 - 7:03
    Таким образом, вы можете сделать очень-очень интерестную строку
  • 7:03 - 7:07
    если бы мы сложили math▁string+expression▁string
  • 7:07 - 7:09
    Я не собираюсь для этого создавать новую переменную
  • 7:09 - 7:10
    Я просто хочу посмотреть, что получится в результате, если я...
  • 7:10 - 7:16
    совмещу math▁string+expression▁string
  • 7:16 - 7:20
    Тогда я фактически получу эти две строки, сложенные в месте,
  • 7:20 - 7:23
    и поэтому эта строка была размещена в конце этой строки,
  • 7:23 - 7:24
    и вы видите это прямо здесь
  • 7:24 - 7:25
    такая странная строка получилась,
  • 7:25 - 7:26
    но это строка!
  • 7:26 - 7:27
    Все, что между этими штуками
  • 7:27 - 7:29
    все, что между двойными кавычками
  • 7:29 - 7:31
    просто рассматривается как набор символов.
  • 7:31 - 7:33
    Это всего лишь символы.
  • 7:33 - 7:35
    Теперь, есть много-много-много-много
  • 7:35 - 7:36
    других вещей, которые мы можем осуществить со строками,
  • 7:36 - 7:39
    Я не собираюсь знакомить вас со всеми из них.
  • 7:39 - 7:41
    Но строки приходят с кучей функций,
  • 7:41 - 7:43
    и если у вас есть Интегрированная Среда Разработки,
  • 7:43 - 7:44
    она будет часто подсказывать вам,
  • 7:44 - 7:45
    какие функции можно использовать.
  • 7:45 - 7:46
    Например,
  • 7:46 - 7:48
    Вы можете захотеть split() (пер: функция разделить() ),
  • 7:48 - 7:51
    Может быть, вы хотите получить список всех слов в строке.
  • 7:51 - 7:53
    Итак, например, я пишу определенный тип программы,
  • 7:53 - 7:56
    и я хочу воспользоваться этой строкой, которая находится в b
  • 7:56 - 7:58
    и я хочу сделать каждое из этих слов
  • 7:58 - 7:59
    отдельным элементом в списке.
  • 7:59 - 8:02
    Каким образом я могу это сделать, могу набрать b точка (b.)
  • 8:02 - 8:05
    и я вызову один из методов b
Title:
Работа со строками
Description:

Эксперименты со строками и определение их возможностей.

more » « less
Video Language:
English
Duration:
13:58
Dmitry Pulin edited Russian subtitles for Fun with Strings
Dmitry Pulin edited Russian subtitles for Fun with Strings
Dmitry Pulin edited Russian subtitles for Fun with Strings
evgeniy.kofanov edited Russian subtitles for Fun with Strings
evgeniy.kofanov edited Russian subtitles for Fun with Strings
evgeniy.kofanov edited Russian subtitles for Fun with Strings
evgeniy.kofanov edited Russian subtitles for Fun with Strings
evgeniy.kofanov edited Russian subtitles for Fun with Strings
Show all

Russian subtitles

Incomplete

Revisions Compare revisions