Строки python: Рассмотрение темы python работа со строками, строковые функции, срезы

Содержание

Строки в Питоне. Строковый тип в Питоне. Срезы в питоне

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




Строкой в Питоне называют произвольный неизменяемый набор символов, заключенный в одинарные кавычки.

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


Пример.
«Это пример строки»

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


Пример.
s=»Это пример строки»

Строку можно считать с клавиатуры стандартной функцией ввода input().


s=input()
print(s)

Результат выполнения кода:

> Это пример строки!

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


chislo=int(input())
stroka=str(chislo)
print(chislo, stroka)

Результат выполнения кода:

> 34
34 34

И хотя последнее значение похоже на число числом оно уже не является. Чтобы в этом убедиться добавьте внизу такой код:

print(chislo+stroka)

Результат выполнения кода:

TypeError: unsupported operand type(s) for +: "int" and "str"

Экранирование символов в строке

Строка заключается в одинарные или двойные кавычки, если вы хотите использовать в строке непечатаемые символы или кавычки, вам нужно их экранировать при помощи символа «\».

Пример экранирования одинарной кавычки


s="Это пример\" строки"
print(s)

Результат выполнения кода:

> Это пример" строки

Для отмены экранирования используется символ r


s = r"Это пример\" строки"
print(s)

Результат выполнения кода:
IndentationError: unexpected indent

Сложение строк

Строки легко сцеплять между собой при помощи оператора конкатенации (сложения).


s1="Это пример строки"
s2=", который используется в нашем примере."
s=s1+s2
print(s)

Результат выполнения кода:
> Это пример строки, который используется в нашем примере.


Умножение строки в Питоне

Помимо сложения строки, их можно умножать!!!


s1="Строки!"
print(s1*3)


Результат выполнения кода:

> Строки!Строки!Строки!


Срезы в строке

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

Для того чтобы обратиться к конкретному символу нужно знать его индекс (номер по списку).


Пример.
stroka=»Это пример строки»
  • stroka[0] — символ «Э»
  • stroka[1] — символ «т»
  • stroka[2] — символ «о»

Можно использовать и отрицательный индекс символа, при этом отсчёт пойдёт от конца строки.


Пример.
stroka="Это пример строки"
print(stroka[-2])

Результат выполнения кода:
 "к"

Также с помощью этого обращения можно получить подстроку или так называем срез.



stroka=»Это пример строки»
stroka[0:9] — подстрока «Это пример»

Срез можно получить с начала строки до последнего указанного символа


stroka[:2] — подстрока «Это»

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


stroka[4:] — подстрока «пример»

Срез можно получить с заданным шагом извлечения


stroka="Это пример строки"
print(stroka[ : :2])

Результат выполнения кода:
>
"Эопие тои"

stroka="Это пример строки"
print(stroka[ : :-3])

Результат выполнения кода:

>
"ир мпт"

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

stroka="Это пример строки"
print(stroka[::-1])

Результат выполнения кода:
>
"икортс ремирп отЭ"

Но это далеко не всё что можно делать со строками! В другом из следующих уроков мы поговорим о методах и функциях для строк.

Всем успешного изучения Питона!


Циклы в Питоне Методы для строк в Питоне

Строки. Урок 19 курса «Python. Введение в программирование»

Мы уже рассматривали строки как простой тип данных наряду с целыми и вещественными числами и знаем, что строка – это последовательность символов, заключенных в одинарные или двойные кавычки.

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

С другой стороны, строка, как и список, – это упорядоченная последовательность элементов. Следовательно, из нее можно извлекать отдельные символы и срезы.

>>> s = "Hello, World!"
>>> s[0]
'H'
>>> s[7:]
'World!'
>>> s[::2]
'Hlo ol!'

В последнем случае извлечение идет с шагом, равным двум, т. е. извлекается каждый второй символ. Примечание. Извлекать срезы с шагом также можно из списков.

Важным отличием от списков является неизменяемость строк в Python. Нельзя перезаписать какой-то отдельный символ или срез в строке:

>>> s[-1] = '.'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support 
item assignment

Интерпретатор сообщает, что объект типа str не поддерживает присвоение элементам.

Если требуется изменить строку, то следует создать новую из срезов старой:

>>> s = s[0:-1] + '.'
>>> s
'Hello, World.'

В примере берется срез из исходной строки, соединяется с другой строкой. Получается новая строка, которая присваивается переменной s. Ее старое значение при этом теряется.

Методы строк

В Python для строк есть множество методов. Посмотреть их можно по команде dir(str), получить информацию по каждому – help(str.имя_метода). Рассмотрим наиболее интересные из них.

Методы split() и join()

Метод split() позволяет разбить строку по пробелам. В результате получается список слов. Если пользователь вводит в одной строке ряд слов или чисел, каждое из которых должно в программе обрабатываться отдельно, то без split() не обойтись.

>>> s = input()
red blue orange white
>>> s
'red blue orange white'
>>> sl = s.split()
>>> sl
['red', 'blue', 'orange', 'white']
>>> s
'red blue orange white'

Список, возвращенный методом split(), мы могли бы присвоить той же переменной s, т. е. s = s.split(). Тогда исходная строка была бы потеряна. Если она не нужна, то лучше не вводить дополнительную переменную.

Метод split() может принимать необязательный аргумент-строку, указывающей по какому символу или подстроке следует выполнить разделение:

>>> s.split('e')
['r', 'd blu', ' orang', ' whit', '']
>>> '40030023'.split('00')
['4', '3', '23']

Метод строк join() выполняет обратное действие. Он формирует из списка строку. Поскольку это метод строки, то впереди ставится строка-разделитель, а в скобках — передается список:

>>> '-'.join(sl)
'red-blue-orange-white'

Если разделитель не нужен, то метод применяется к пустой строке:

>>> ''.join(sl)
'redblueorangewhite'

Методы find() и replace()

Данные методы строк работают с подстроками. Методы find() ищет подстроку в строке и возвращает индекс первого элемента найденной подстроки. Если подстрока не найдена, то возвращает -1.

>>> s
'red blue orange white'
>>> s.find('blue')
4
>>> s. find('green')
-1

Поиск может производиться не во всей строке, а лишь на каком-то ее отрезке. В этом случае указывается первый и последний индексы отрезка. Если последний не указан, то ищется до конца строки:

>>> letters = 'ABCDACFDA'
>>> letters.find('A', 3)
4
>>> letters.find('DA', 0, 6)
3

Здесь мы ищем с третьего индекса и до конца, а также с первого и до шестого. Обратите внимания, что метод find() возвращает только первое вхождение. Так выражение letters.find('A', 3) последнюю букву ‘A’ не находит, так как ‘A’ ему уже встретилась под индексом 4.

Метод replace() заменяет одну подстроку на другую:

>>> letters.replace('DA', 'NET')
'ABCNETCFNET'

Исходная строка, конечно, не меняется:

>>> letters
'ABCDACFDA'

Так что если результат надо сохранить, то его надо присвоить переменной:

>>> new_letters = letters. replace('DA', 'NET')
>>> new_letters
'ABCNETCFNET'

Метод format()

Строковый метод format() уже упоминался при рассмотрении вывода на экран с помощью функции print():

>>> print("This is a {0}. It's {1}."
... .format("ball", "red"))
This is a ball. It's red.

Однако к print() он никакого отношения не имеет, а применяется к строкам. Лишь потом заново сформированная строка передается в функцию вывода.

Возможности format() широкие, рассмотрим основные.

>>> size1 = "length - {}, width - {}, height - {}"
>>> size1.format(3, 6, 2.3)
'length - 3, width - 6, height — 2.3'

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

>>> size2 = "height - {2}, length - {0}, width - {1}"
>>> size2. format(3, 6, 2.3)
'height - 2.3, length - 3, width - 6'

Кроме того, аргументы могут передаваться по слову-ключу:

>>> info = "This is a {subj}. It's {prop}."
>>> info.format(subj="table", prop="small")
"This is a table. It's small."

Пример форматирования вещественных чисел:

>>> "{1:.2f} {0:.3f}".format(3.33333, 10/6)
'1.67 3.333'

Практическая работа

  1. Вводится строка, включающая строчные и прописные буквы. Требуется вывести ту же строку в одном регистре, который зависит от того, каких букв больше. При равном количестве преобразовать в нижний регистр. Например, вводится строка «HeLLo World», она должна быть преобразована в «hello world», потому что в исходной строке малых букв больше. В коде используйте цикл for, строковые методы upper() (преобразование к верхнему регистру) и lower() (преобразование к нижнему регистру), а также методы isupper() и islower(), проверяющие регистр строки или символа.

  2. Строковый метод isdigit() проверяет, состоит ли строка только из цифр. Напишите программу, которая запрашивает с ввода два целых числа и выводит их сумму. В случае некорректного ввода программа не должна завершаться с ошибкой, а должна продолжать запрашивать числа. Обработчик исключений try-except использовать нельзя.

Примеры решения и дополнительные уроки в android-приложении и pdf-версии курса

Основные операции с строками в Python

Строки — это последовательности символов. Существует множество алгоритмов обработки строк, в том числе для поиска, сортировки, сравнения и преобразования. Строки Python являются «неизменными», что означает, что они не могут быть изменены после их создания. Чтобы создать строку, поместите последовательность символов в одинарные кавычки, двойные кавычки или тройные кавычки, а затем назначьте ее переменной.

str = ‘Hellow World!’ str = «Hellow World!» str = «»»Sunday Monday Tuesday»»»

str = ‘Hellow World!’

str = «Hellow World!»

str = «»»Sunday

Monday

Tuesday»»»

Доступ к символам в строке

Чтобы символы доступа из String, используйте квадратные скобки [] для нарезки вместе с индексом или индексами для получения ваших символов. Индекс строки Python начинается с 0.

str = ‘Hellow World!’ print(str [0]) # output is «H» print(str [7]) # output is «W» print(str [0:6]) #output is Hellow print(str [7:12]) #output is World

str = ‘Hellow World!’

print(str [0]) # output is «H»

print(str [7]) # output is «W»

print(str [0:6]) #output is Hellow

print(str [7:12]) #output is World

Python допускает отрицательную индексацию для своих последовательностей.

Индекс -1 относится к последнему элементу, -2 ко второму последнему пункту и так далее.

print(str [0:-6]) # output is Hellow print(str [7:-1]) # output is World

print(str [0:-6]) # output is Hellow

print(str [7:-1]) # output is World

Объединение строк в Python

Объединение двух или более строк в одну называется конкатенацией. Python использует оператор «+» для объединения одной или нескольких строк

str1 = ‘Hellow ‘ str2 = ‘ World!’ print(str1 + str2)

str1 = ‘Hellow ‘

str2 = ‘ World!’

print(str1 + str2)

Вывод:

Reverse a String

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

Нижний индекс создает срез, включая двоеточие в фигурных скобках:

Он работает, выполняя [begin: end: step] — оставив начало и конец и задавая шаг -1, он меняет строку.

str = ‘Python String’ print(str[::-1])

str = ‘Python String’

print(str[::-1])

Вывод:

Строковые методы

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

Длина строки len() в Python

Метод String len() возвращает длину строки.

str = «Hellow World!» print(len(str))

str = «Hellow World!»

print(len(str))

Вывод:

Метод Count() для подсчета подстрок в строке в Python

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

str = «Python is Object Oriented» substr = «Object» print(str.count(substr))

str = «Python is Object Oriented»

substr = «Object»

print(str.count(substr))

Вывод:

Метод Index() индекса подстроки в строке в Python

Метод String index() возвращает индекс подстроки внутри данной строки.

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

str = «Python is Object Oriented» substr = «is» print(str.index(substr))

str = «Python is Object Oriented»

substr = «is»

print(str.index(substr))

Вывод:

Преобразование букв в верхний регистр в Python

String upper() преобразует данную строку в буквы верхнего регистра и возвращает новую строку.

str = «Python is Object Oriented» print(str.upper())

str = «Python is Object Oriented»

print(str.upper())

Вывод:

PYTHON IS OBJECT ORIENTED

PYTHON IS OBJECT ORIENTED

Преобразование букв в нижний регистр в Python

Строка lower () преобразует данную строку в строчные буквы и возвращает новую строку.

str = «Python is Object Oriented» print(str.lower())

str = «Python is Object Oriented»

print(str.lower())

Вывод:

python is object oriented

python is object oriented

Метод startswith() в Python

Метод String startswith() возвращает Boolean TRUE, если строка начинается с указанной подстроки в противном случае, она вернет False.

str = «Python is Object Oriented» print(str.startswith(«Python»)) print(str.startswith(«Object»))

str = «Python is Object Oriented»

print(str.startswith(«Python»))

print(str.startswith(«Object»))

Вывод:

Метод endswith() в Python

Метод String endswith() возвращает Boolean TRUE, если строка заканчивается с указанной подстрокой в ​​противном случае возвращает False.

str = «Python is Object Oriented» print(str.endswith(«Oriented»)) print(str.endswith(«Object»))

str = «Python is Object Oriented»

print(str.endswith(«Oriented»))

print(str.endswith(«Object»))

Вывод:

Разбиение строки на более мелкие Split()

Метод String split () разбивает строку на более мелкие строки на основе разделителя или символа.

str = ‘Python is Object Oriented’ print(str.split())

str = ‘Python is Object Oriented’

print(str.split())

Вывод:

[‘Python’, ‘is’, ‘Object’, ‘Oriented’]

[‘Python’, ‘is’, ‘Object’, ‘Oriented’]

Пример:

str = ‘Python,is,Object,Oriented’ print(str. split(‘,’))

str = ‘Python,is,Object,Oriented’

print(str.split(‘,’))

Вывод:

[‘Python’, ‘is’, ‘Object’, ‘Oriented’]

[‘Python’, ‘is’, ‘Object’, ‘Oriented’]

Пример:

str = ‘Python,is,Object,Oriented’ print(str.split(‘,’,2))

str = ‘Python,is,Object,Oriented’

print(str.split(‘,’,2))

Вывод:

[‘Python’, ‘is’, ‘Object,Oriented’]

[‘Python’, ‘is’, ‘Object,Oriented’]

Возвращение разделенной строки в виде списка в Python

str = ‘Python,is,Object,Oriented’ sList = str. split(‘,’) for temp in sList: print (temp)

str = ‘Python,is,Object,Oriented’

sList = str.split(‘,’)

for temp in sList:

print (temp)

Вывод:

Python is Object Oriented

Метод join() Python String

String join() — это строковый метод, который возвращает строку, конкатенированную с элементами итерабельного.

str = «Python is Object Oriented» tmp = «-« print (tmp.join(str))

str = «Python is Object Oriented»

tmp = «-«

print (tmp.join(str))

Вывод:

P-y-t-h-o-n- -i-s- -O-b-j-e-c-t- -O-r-i-e-n-t-e-d

P-y-t-h-o-n- -i-s- -O-b-j-e-c-t- -O-r-i-e-n-t-e-d

Метод find() индекс первого вхождения строки в Python

String find () возвращает индексную позицию первого вхождения указанной строки. Он вернет -1, если указанная строка не найдена.

str = «Python is Object Oriented» st = «Object» print (str.find(st)) print (str.find(st,20)) #finding from 20th position

str = «Python is Object Oriented»

st = «Object»

print (str.find(st))

print (str.find(st,20)) #finding from 20th position

Вывод:

Метод strip() удаление символов из строки в Python

String strip() удаляет указанные символы как с правой стороны, так и с левой стороны строки (по умолчанию, белые пробелы) и возвращает новую строку.

str = » Python is Object Oriented « print (str.strip())

str = » Python is Object Oriented «

print (str.strip())

Вывод:

Python is Object Oriented

Python is Object Oriented

Метод rstrip() копировать строку с удаленными символами

Строка rstrip () возвращает копию строки с удаленными символами.

str = » Python is Object Oriented « print (str.rstrip())

str = » Python is Object Oriented «

print (str.rstrip())

Вывод:

Python is Object Oriented

Python is Object Oriented

Метод lstrip()

Строка lstrip () возвращает копию строки с удаленными ведущими символами.

str = » Python is Object Oriented « print (str.lstrip())

str = » Python is Object Oriented «

print (str.lstrip())

Вывод:

Python is Object Oriented

Python is Object Oriented

 

 

 

Источник: net-informations. com

f-строки в Python 3 — применение и производительность

Начиная с версии 3.6 в Python появился новый тип строк — f-строки, которые буквально означают «formatted string». Эти строки улучшают читаемость кода, а также работают быстрее чем другие способы форматирования. F-строки задаются с помощью литерала «f» перед кавычками.

>>> "обычная строка"
>>> f"f-строка"

f-строки — это пятый способ (sic!) форматирования строк в Python, который очень похож на использование метода format().

Вспомним все 5 способов форматирования.

5 способов форматирования строк

1. Конкатенация. Грубый способ форматирования, в котором мы просто склеиваем несколько строк с помощью операции сложения:

>>> name = "Дмитрий"
>>> age = 25
>>> print("Меня зовут " + name + ".  Мне " + str(age) + " лет.")
>>> Меня зовут Дмитрий. Мне 25 лет.

2. %-форматирование. Самый популярный способ, который перешел в Python из языка С. Передавать значения в строку можно через списки и кортежи , а также и с помощью словаря. Во втором случае значения помещаются не по позиции, а в соответствии с именами.

>>> name = "Дмитрий"
>>> age = 25
>>> print("Меня зовут %s. Мне %d лет." % (name, age))
>>> Меня зовут Дмитрий. Мне 25 лет.
>>> print("Меня зовут %(name)s. Мне %(age)d лет." % {"name": name, "age": age})
>>> Меня зовут Дмитрий. Мне 25 лет.

3. Template-строки. Этот способ появился в Python 2.4, как замена %-форматированию (PEP 292), но популярным так и не стал. Поддерживает передачу значений по имени и использует $-синтаксис как в PHP.

>>> from string import Template
>>> name = "Дмитрий"
>>> age = 25
>>> s = Template('Меня зовут $name.  Мне $age лет.')
>>> print(s.substitute(name=name, age=age))
>>> Меня зовут Дмитрий. Мне 25 лет.

4. Форматирование с помощью метода format(). Этот способ появился в Python 3 в качестве замены %-форматированию. Он также поддерживает передачу значений по позиции и по имени.

>>> name = "Дмитрий"
>>> age = 25
>>> print("Меня зовут {}. Мне {} лет.".format(name, age)
>>> Меня зовут Дмитрий. Мне 25 лет.
>>> print("Меня зовут {name} Мне {age} лет.".format(age=age, name=name)
>>> Меня зовут Дмитрий. Мне 25 лет.

5. f-строки. Форматирование, которое появилось в Python 3.6 (PEP 498). Этот способ похож на форматирование с помощью метода format(), но гибче, читабельней и быстрей.

>>> name = "Дмитрий"
>>> age = 25
>>> print(f"Меня зовут {name} Мне {age} лет.")
>>> Меня зовут Дмитрий.  Мне 25 лет.

Погружене в f-строки

f-строки делают очень простую вещь — они берут значения переменных, которые есть в текущей области видимости, и подставляют их в строку. В самой строке вам лишь нужно указать имя этой переменной в фигурных скобках.

>>> name = "Дмитрий"
>>> age = 25
>>> print(f"Меня зовут {name} Мне {age} лет.")
>>> Меня зовут Дмитрий. Мне 25 лет.

f-строки также поддерживают расширенное форматирование чисел:

>>> from math import pi
>>> print(f"Значение числа pi: {pi:.2f}")
>>> Значение числа pi: 3.14

С помощью f-строк можно форматировать дату без вызова метода strftime():

>>> from datetime import datetime as dt
>>> now = dt.now()
>>> print(f"Текущее время {now:%d.%m.%Y %H:%M}")
>>> Текущее время 24.02.2017 15:51

Они поддерживают базовые арифметические операции. Да, прямо в строках:

>>> x = 10
>>> y = 5
>>> print(f"{x} x {y} / 2 = {x * y / 2}")
>>> 10 x 5 / 2 = 25.0

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

>>> planets = ["Меркурий", "Венера", "Земля", "Марс"]
>>> print(f"Мы живим не планете {planets[2]}")
>>> Мы живим не планете Земля

А также к элементам словаря по ключу:

>>> planet = {"name": "Земля", "radius": 6378000}
>>> print(f"Планета {planet['name']}. Радиус {planet['radius']/1000} км.")
>>> Планета Земля. Радиус 6378.0 км. 

Причем вы можете использовать как строковые, так и числовые ключи. Точно также как в обычном Python коде:

>>> digits = {0: 'ноль', 'one': 'один'}
>>> print(f"0 - {digits[0]}, 1 - {digits['one']}")
>>> 0 - ноль, 1 - один

Вы можете вызывать в f-строках методы объектов:

>>> name = "Дмитрий"
>>> print(f"Имя: {name. upper()}")
>>> Имя: ДМИТИРИЙ

А также вызывать функции:

>>> print(f"13 / 3 = {round(13/3)}")
>>> 13 / 3 = 4

f-строки очень гибкий и мощный инструмент для создания самых разнообразных шаблонов.

Со всеми возможностя f-строк вы можете ознакомится в PEP498.

Производительность

F-строки не только гибкие, но и быстрые. И для сравнения производительности разных подходов к форматированию я подготовил два шаблона:

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

Финальная простая строка получается такой:

Привет, меня зовут Дмитрий. Мне 27 лет.

Сложная строка на выходе такая:

Сегодня 24.02.2017.
Мы живём на планете Земля. Её радиус 6378 км., а масса 5.973e+24
Период обращения планеты вокруг Солнца 365 дней.

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

После недолгого тестирования я получил следующие результаты:

На простых примерах f-строки показывают самые лучшие результаты.
На 25% быстрее %-форматирования и метода format().

На сложных шаблонах f-строки ведут себя также как %-форматирование
(разница в пользу %-форматирования не превышает величину погрешности).
А вот относительно метода format() f-строки быстрее на 27%.

Заключение

Если вы используете Python 3.6 и старше, то самое время использовать f-строки — они гибкие и быстрые.

Поделись с друзьями:

Shultais Education — платформа для обучения IT и программированию.
На наших курсах вы научитесь основам программирования на Python, а также узнаете как создавать сайты на Django.

Наши курсы

Цикл for Python — примеры для новичков: синтаксис, вложенный, выход break, итерация, по списку, функции и по словарю

  • Цикл for в Python используется для перебора последовательности элементов.
  • Цикл for реализован с использованием зарезервированного ключевого слова — for.
  • Код цикла for выполняется для каждого элемента последовательности.
  • Мы можем выйти из цикла с помощью оператора break.
  • Мы можем использовать оператор continue, чтобы пропустить выполнение кода в цикле for для элемента.
  • отличается от других языков программирования, поскольку он больше похож на итератор.
  • Мы можем использовать его для перебора Tuple, List, Set или String. Все эти объекты представляют собой последовательность.
  • У нас могут быть вложенные циклы для перебора последовательности последовательностей.

Синтаксис цикла for

Синтаксис цикла for Python очень прост. Он использует оператор in для перебора элементов в последовательности.

for element in sequence:
    # for statement code block

Блок-схема

Примеры

Давайте рассмотрим несколько примеров цикла for с различными типами последовательностей.

1. Строка

Строка Python — это последовательность символов. Давайте посмотрим на простую программу для печати индекса и символа в строке.

message = "Hello"

count = 0
for character in message:
    print(f'Index:{count}, Character:{character}')
    count += 1

Вывод:

2. Кортеж

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

def to_lower_case(my_tuple):
    temp_list = []
    for item in my_tuple:
        temp_list.append(str(item). lower())
    return tuple(temp_list)


fruits = ("Apple", "Orange", "BANANA")
fruits_new = to_lower_case(fruits)
print(fruits_new)

Вывод: ('apple', 'orange', 'banana')

Примечание. Мы используем список для добавления элементов в цикл, потому что кортеж неизменяем.

3. Список

Давайте посмотрим на пример итерации по списку целых чисел и напечатаем, четное или нечетное число.

list_ints = [1, 2, 3, 4, 5]
for i in list_ints:
    if i % 2 == 0:
        print(f'{i} is even.')
    else:
        print(f'{i} is odd.')

Вывод:

4. Вывод набора

Вот простой пример печати элементов набора.

set_cities = set()
set_cities.add("New York")
set_cities.add("New Delhi")
set_cities.add("Bangalore")
set_cities.add("London")
set_cities.add("Bangalore")  # duplicate item, will be removed from set

for city in set_cities:
    print(city)

Вывод:

Примечание. Set — это неупорядоченная последовательность в Python. Таким образом, вывод может отличаться при каждом выполнении программы.

5. Словарь

Словарь Python — это не последовательность. Поэтому мы не можем напрямую перебирать его элементы. Однако у него есть метод items() который возвращает подобную множеству последовательность своих элементов. Мы можем использовать этот метод для перебора элементов словаря.

my_dict = {"1": "Apple", "2": "Kiwi", "3": "Orange"}

for k, v in my_dict.items():
    print(f'Key={k}, Value={v}')

Вывод:

Использование оператора break для выхода из цикла

Мы можем использовать оператор break для выхода из цикла без повторения всех элементов.

Допустим, у нас есть список сообщений для обработки. Если мы встретим сообщение «Выход», обработка должна прекратиться. Мы можем использовать оператор break для реализации этого сценария.

messages = ["Hi", "Hello", "Exit", "Adios", "Hola"]

for msg in messages:
    if msg == "Exit":
        break;
    print(f'Processing {msg}')

Вывод:

С оператором continue

Иногда мы хотим пропустить обработку некоторых элементов в последовательности. Для этого мы можем использовать оператор continue.

ints = (1, 2, 3, 4, 5, 6)

# process only odd numbers
for i in ints:
    if i % 2 == 0:
        continue
    print(f'Processing {i}')

Вывод:

С функцией range()

Функция Python range() генерирует последовательность чисел. Мы можем использовать это с циклом for для выполнения блока кода определенное количество раз.

Давайте посмотрим, как использовать функцию range() для выполнения кода 5 раз.

for i in range(5):
    print("Processing for loop:", i)

Вывод:

С оператором else

Мы можем использовать оператор else для выполнения некоторого кода, когда цикл for завершен.

Это полезно при регистрации или отправке уведомления, когда обработка последовательности успешно завершена.

databases = ("MySQL", "Oracle", "PostgreSQL", "SQL Server")

for db in databases:
    print(f'Processing scripts for {db}')
else:
    print("All the databases scripts executed successfully. ")

Вывод:

Примечание. Если цикл вызывает какую-либо ошибку, код блока else не выполняется.

databases = ("MySQL", "Oracle", "PostgreSQL", "SQL Server")

for db in databases:
    print(f'Processing scripts for {db}')
    raise TypeError
else:
    print("All the databases scripts executed successfully.")

Вывод:

Processing scripts for MySQL
Traceback (most recent call last):
  File "/Users/pankaj/Documents/PycharmProjects/PythonTutorialPro/hello-world/for-loop.py", line 65, in <module>
    raise TypeError
TypeError

Точно так же, если цикл завершается оператором break, блок else не выполняется.

Вложенный цикл

Когда цикл присутствует внутри другого цикла, он называется вложенным циклом.

list_tuples = [("Apple", "Banana"), ("Orange", "Kiwi", "Strawberry")]

for t_fruits in list_tuples:
    for fruit in t_fruits:
        print(fruit)

Вывод:

Обратная итерация с использованием функции Loop и reversed()

Цикл выполняет итерацию по элементам последовательности в порядке их появления. Иногда нам приходится перебирать элементы в обратном порядке. Для этого мы можем использовать функцию reversed().

numbers = (1, 2, 3, 4, 5)

for n in reversed(numbers):
    print(n)

Вывод:

5
4
3
2
1

Переменные цикла в глобальную область видимости

Обычно переменные, определенные внутри локального пространства имен, недоступны снаружи. Как только блок кода завершает свое выполнение, локальное пространство имен уничтожается вместе со всеми его переменными. Но это не так с циклом for.

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

global_var = "global"
for c in range(1,3):
    x = 10
    global_var = "for variable"

print(c)  # variable is defined in the for loop
print(x)  # variable is defined in the for loop
print(global_var)  # global variable

Python. Выражение, строки и отступы

Пост написан на основе части 3.2 книги Intermediate Python. Obi Ike-Nwosu.

Программа на Python состоит из логических строк ограниченных токеном NEWLINE. Каждая логическая строка эквивалентна простому оператору. Составные операторы формируются из нескольких логических строк.

Логическая строка создаётся из одной или нескольких физических строк используя явные или не явные правила объединения строк. Физическая строка — это последовательность символов завершающаяся символами перевода строки (end-of-line sequence). Python неявно рассматривает физические строки как логические, устраняя необходимость в точке с запятой для разделения выражений. Однако точка с запятой может использоваться для разделения одной физической строки на несколько логических:

Несколько физических строк в явном виде объединяются в одну логическую символом «\»:

>>> name = «Obi Ike-Nwosu» >>> cleaned_name = name.replace(«-«, » «). \ … replace(» «, «») >>> cleaned_name ‘ObiIkeNwosu’ >>>

>>> name = «Obi Ike-Nwosu»

>>> cleaned_name = name.replace(«-«, » «). \

… replace(» «, «»)

>>> cleaned_name

‘ObiIkeNwosu’

>>>

Физические строки соединяются неявно, без использования символа продолжения строки («\»), когда выражение находится в тройных строковых кавычках, заключено в скобки (...), [...], или {...}.

Python содержит два типа операторов.

Простые операторы занимающие одиночные логические строки. Они включают в себя присваивание, yield и др. Общий синтаксис простых операторов:

simple_stmt ::= expression_stmt | assert_stmt | assignment_stmt | augmented_assignment_stmt | pass_stmt | del_stmt | return_stmt | yield_stmt | raise_stmt | break_stmt | continue_stmt | import_stmt | global_stmt | nonlocal_stmt

simple_stmt ::= expression_stmt

            | assert_stmt

            | assignment_stmt

            | augmented_assignment_stmt

            | pass_stmt

            | del_stmt

            | return_stmt

            | yield_stmt

            | raise_stmt

            | break_stmt

            | continue_stmt

            | import_stmt

            | global_stmt

            | nonlocal_stmt

Составные операторы занимающие несколько логических строк. Они включают в себя выражения циклов while и for. Общий синтаксис составных операторов:

compound_stmt ::= if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | funcdef | classdef suite ::= stmt_list NEWLINE | NEWLINE INDENT statement+ DEDENT statement ::= stmt_list NEWLINE | compound_stmt stmt_list ::= simple_stmt («;» simple_stmt)* [«;»]

compound_stmt ::= if_stmt

              | while_stmt

              | for_stmt

              | try_stmt

              | with_stmt

              | funcdef

              | classdef

 

suite ::= stmt_list NEWLINE | NEWLINE INDENT statement+ DEDENT

 

statement ::= stmt_list NEWLINE | compound_stmt

 

stmt_list ::= simple_stmt («;» simple_stmt)* [«;»]

Составные операторы содержат одно или несколько предложений (clause). Предложение состоит из заголовка (header) и тела (suite). Заголовки предложений для одного составного оператора имеют одинаковый отступ и начинаются с уникального идентификатора (while, if и т.д.) и с двоеточия. Составной оператор if определяется так:

if_stmt ::= «if» expression «:» suite ( «elif» expression «:» suite )* [«else» «:» suite]

if_stmt ::=  «if» expression «:» suite

             ( «elif» expression «:» suite )*

             [«else» «:» suite]

Выполнение тела предложения контролируется заголовком:

>>> num = 6 # оператор if является составным оператором # Заголовок предложения контролирует выполнение следующего блока с отступом >>> if num % 2 == 0: # блок тела с отступом … print(«The number {} is even».format(num)) … The number 6 is even >>>

>>> num = 6

# оператор if является составным оператором

    # Заголовок предложения контролирует выполнение следующего блока с отступом

>>> if num % 2 == 0:

строковых методов Python | Programiz

Python Строка capitalize ()

Преобразует первый символ в заглавную букву

Python String casefold ()

преобразует струны в футляр

Python Центр струн ()

Дополняет строку указанным символом

Python Количество строк ()

возвращает вхождения подстроки в строке

Кодировка строки Python ()

возвращает закодированную строку заданной строки

Python Строка заканчивается на ()

Проверяет, заканчивается ли строка указанным суффиксом

Python String expandtabs ()

Заменяет символ табуляции пробелами

Python String find ()

Возвращает индекс первого вхождения подстроки

Python Формат строки ()

форматирует строку в более удобный вывод

Python String format_map ()

Форматирует строку с помощью словаря

Индекс строки Python ()

Возвращает индекс подстроки

Python Строка isalnum ()

Проверяет буквенно-цифровые символы

Строка Python isalpha ()

Проверяет, все ли символы являются алфавитами

Python Строка isdecimal ()

Проверяет десятичные символы

Строка Python isdigit ()

Контрольные цифры символов

Python Строка isidentifier ()

Проверяет действительный идентификатор

Python Строка islower ()

Проверяет, все ли алфавиты в строке строчные

Python Строка isnumeric ()

Проверяет числовые символы

Строка Python isprintable ()

Проверяет печатный символ

Строка Python isspace ()

Проверяет пробельные символы

Python String istitle ()

Проверяет строку с заголовком

Строка Python isupper ()

возвращается, если все символы являются прописными

Python String join ()

Возвращает составную строку

Строка Python ljust ()

возвращает выровненную по левому краю строку заданной ширины

Нижняя строка Python ()

возвращает строку в нижнем регистре

Строка Python lstrip ()

Удаляет главные символы

Python String maketrans ()

возвращает таблицу преобразования

Раздел строки Python ()

возвращает кортеж

Python String replace ()

заменяет подстроку внутри

Python String rfind ()

Возвращает наивысший индекс подстроки

Python String rindex ()

Возвращает наивысший индекс подстроки

Python Строка rjust ()

возвращает выровненную по правому краю строку заданной ширины

Python String rpartition ()

возвращает кортеж

Python String rsplit ()

Разделение строки справа

Python String rstrip ()

Удаляет завершающие символы

Python String split ()

Разделение строки слева

Python String splitlines ()

Разбивает строку на границах линии

Строка Python начинается с ()

Проверяет, начинается ли строка с указанной строки

Полоска Python String ()

Удаляет начальные и конечные символы

Python String swapcase ()

заменить заглавные буквы на строчные; наоборот

Python String title ()

Возвращает строку заголовка в регистре

Python String translate ()

возвращает отображенную символьную строку

Python Строка верхняя ()

возвращает строку в верхнем регистре

Python Строка zfill ()

Возвращает копию строки, заполненной нулями

Рекомендации по форматированию строк Python — Real Python

Помните дзен Python и как должен быть «один очевидный способ сделать что-то на Python»? Вы можете почесать голову, когда узнаете, что существует четыре основных способа форматирования строк в Python.

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

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

>>>
  >>> errno = 50159747054
>>> name = 'Боб'
  

На основе этих переменных вы хотите сгенерировать выходную строку, содержащую простое сообщение об ошибке:

>>>
  'Привет, Боб, произошла ошибка 0xbadc0ffee!'
  

Эта ошибка может действительно испортить утро понедельника разработчикам… Но мы здесь, чтобы обсудить форматирование строк.Итак, приступим к работе.

# 1 Форматирование строки в «старом стиле» (оператор%)

Строки в Python имеют уникальную встроенную операцию, доступ к которой можно получить с помощью оператора % . Это позволяет очень легко выполнять простое позиционное форматирование. Если вы когда-либо работали с функцией printf в стиле на языке C, вы сразу поймете, как это работает. Вот простой пример:

>>>
  >>> 'Привет,% s'% name
"Привет, Боб"
  

Я использую здесь спецификатор формата % s , чтобы сообщить Python, где заменить значение name , представленное в виде строки.

Существуют и другие описатели формата, которые позволяют управлять форматом вывода. Например, можно преобразовать числа в шестнадцатеричное представление или добавить пробелы для создания красиво отформатированных таблиц и отчетов. (См. Документы Python: «Форматирование строк в стиле printf».)

Здесь вы можете использовать описатель формата % x , чтобы преобразовать значение int в строку и представить его как шестнадцатеричное число:

>>>
  >>> '% x'% errno
'badc0ffee'
  

Синтаксис форматирования строки в «старом стиле» немного меняется, если вы хотите сделать несколько замен в одной строке.Поскольку оператор % принимает только один аргумент, вам нужно заключить правую часть в кортеж, например:

>>>
  >>> 'Эй,% s, ошибка 0x% x!' % (имя, номер ошибки)
«Привет, Боб, произошла ошибка 0xbadc0ffee!»
  

Также можно ссылаться на подстановки переменных по имени в строке формата, если вы передадите сопоставление оператору % :

Новые f-строки в Python 3.6

Ура! Пришло время Рождества — и Python 3.6 вышла!

Одно из множества полезных свойств, включенных в новую версию, — это форматированные строковые литералы, или просто называемые «f-строками». В этой записи блога я объясню, почему это хорошие новости.

Во-первых, они называются f-строками, потому что вам нужно поставить перед строкой букву «f», чтобы получить f-строку, аналогично тому, как вы создаете необработанную строку, добавляя к ней префикс «r», или вы можете используйте префиксы «b» и «u» для обозначения байтовых строк и строк Unicode. Обратите внимание, что префикс «u» был необходим только в Python 2 («Legacy Python»), поскольку собственные строки теперь используются по умолчанию в Python 3.

Буква «f» также указывает на то, что эти строки используются для форматирования. Теперь Python уже предоставляет несколько способов форматирования строк, поэтому вы можете задаться вопросом, почему боги Python представили еще один способ, вопиющее нарушение дзен Python, согласно которому должен быть только один очевидный способ делать что-то. На самом деле некоторые люди уже жаловались на это. Однако эти люди упускают из виду, что дзен Python также утверждает, что простое лучше, чем сложное, а практичность превосходит чистоту — и да, f-строки действительно являются наиболее простым и практичным способом форматирования строк.

Некоторые примеры

Посмотрите, как это просто:

  >>> name = 'Фред'
    >>> возраст = 42
    >>> f'Он сказал, что его зовут {имя} и ему {возраст} лет. '
    Он сказал, что его зовут Фред, и ему 42 года.  

Как видите, он работает почти так же, как метод .format () , однако вы можете напрямую вставить имена из текущей области в строку формата. Это намного проще, чем старый способ, и позволяет избежать дублирования:

  >>> name = 'Фред'
    >>> возраст = 42
    >>> 'Он сказал, что его зовут {имя} и ему {возраст} лет.'.формат(
    ... имя = имя, возраст = возраст)
    Он сказал, что его зовут Фред, и ему 42 года.  

Конечно, вы можете опустить имена внутри фигурных скобок, начиная с Python 3.1, например:

  >>> name = 'Фред'
    >>> возраст = 42
    >>> 'Он сказал, что его зовут {} и ему {} лет.'. Формат (имя, возраст)
    «Он сказал, что его зовут Фред, и ему 42 года».  

Но все же это длиннее и не так читабельно, как нотация f-строки.

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

  >>> name = 'Фред'
    >>> семь = 7
    >>> f '' 'Он сказал, что его зовут {name.upper ()}
    ... а ему {6 * семь} лет. '' '
    «Он сказал, что его зовут ФРЕД \ n, и ему 42 года».  

Обратите внимание, что, хотя вы можете создавать необработанные f-строки с помощью префикса «fr», вы не можете создавать двоичные f-строки с «fb» в Python 3.6 (возможно, это будет добавлено в будущей версии Python). Форматирование с помощью f-строк — одна из новых функций в Python 3, которая не будет перенесена обратно в Python 2, поэтому префикс «fu» для обозначения Unicode не требуется и не поддерживается.

Сравнение с шаблонными литералами в JavaScript

Когда мы заглянем за пределы нашего двора Python и на разработчиков JavaScript, мы увидим, что они представили очень похожую функцию, называемую «шаблонными строками» или «шаблонными литералами», как часть стандарта ECMAScript 2015.Приятно видеть, что сообщества JavaScript и Python черпают вдохновение друг в друге. Вместо префикса «f» и обычных кавычек строки шаблона JavaScript обозначаются обратными кавычками («обратными кавычками»), и они могут охватывать несколько строк, чего не могут использовать обычные строки JavaScript. Следовательно, шаблонные скрипты в JavaScript фактически соответствуют f-строкам в тройных кавычках в Python. Еще одно отличие состоит в том, что синтаксис интерполяции строк шаблона в JavaScript требует, чтобы перед фигурными скобками стоял знак доллара.В остальном они очень похожи. Итак, в текущем JavaScript вы можете написать это:

 > name = 'Фред'
    > семь = 7
    > console.log (`Он сказал, что его зовут $ {name.toUpperCase ()}
        и ему $ {6 * семь} лет ')
    Он сказал, что его зовут ФРЕД
      а ему 42 года
  

Обратите внимание, что обратные кавычки использовались в качестве альтернативного синтаксиса для метода repr () в Python раньше, но были удалены из языка с Python 3, поскольку обратные кавычки вызывают слишком много проблем (например,г. может быть трудно различить в некоторых шрифтах или трудно ввести на некоторых клавиатурах), и я думаю, что это хорошо, что Python использует префикс «f» вместо других кавычек. Это действительно упрощает переключение между струнами f и обычными струнами. Еще одно преимущество Python заключается в том, что концепции строки шаблона (префикс «f») и многострочной строки (тройные кавычки) четко разделены и могут использоваться независимо друг от друга. И мне нравится, что мне не нужно вводить этот дополнительный знак доллара.

Что немного сбивает с толку, так это то, что шаблоны JavaScript также имеют синтаксис, называемый «тегированные шаблоны», который выглядит как префиксный синтаксис Python, но имеет совершенно другую семантику. Префикс («тег») в JavaScript — это фактически имя функции, которая вызывается со строкой шаблона и ее заменами в качестве параметров. В JavaScript есть также стандартная функция String.raw , которую можно использовать как функцию тега. Если вы установите r = String.raw , вы можете использовать необработанные строки в JavaScript, как в Python, с аналогичным синтаксисом (хотя и не совсем таким же, поскольку вам по-прежнему нужны обратные кавычки вместо кавычек).

Сравнение со строками шаблона в Python

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

  >>> из шаблона импорта строк
    >>> t = Template ('Он сказал, что его зовут $ name и ему $ age лет.')
    >>> t.substitute (name = 'Fred', возраст = 42)
    «Он сказал, что его зовут Фред, и ему 42 года».  

Рекомендации по производительности

Вы можете быть обеспокоены тем, что новый способ форматирования строк может быть медленнее, чем традиционные способы. В частности, старые строки шаблона выглядят так, как будто они могут быть быстрее при использовании более одного раза с разными значениями, поскольку строка шаблона должна анализироваться только при создании объекта Template () и затем может быть повторно использована.Но оказывается, что дело обстоит наоборот, и f-строки действительно быстрые, потому что они также предварительно анализируются и сохраняются в эффективном байт-коде для более быстрого выполнения.

Чтобы подтвердить это на практике, я провел простой тест и обнаружил, что использование f-строк было заметно быстрее, чем форматирование с помощью оператора «%» или простой конкатенации строк, в два раза быстрее, чем метод .format () и даже 20 раз быстрее, чем форматирование с помощью Template () , которое, кажется, не очень эффективно реализовано.

Таким образом, вы также можете интерпретировать «f» в «f-strings» как «быстро». Хорошо, что Python по-прежнему сохраняет старые способы обратной совместимости, но в новом коде вы обязательно должны использовать эти фантастические f-строки. Вот код теста, если вы хотите протестировать его самостоятельно:

  импортное время

format = "" "
Формат def (имя, возраст):
    return f'Он сказал, что его зовут {имя} и ему {age} лет. '
"" "," ""
Формат def (имя, возраст):
    return 'Он сказал, что его зовут% s и ему% s лет.' % (Назовите возраст)
"" "," ""
Формат def (имя, возраст):
    return 'Он сказал, что его зовут' + name + ', а он' + str (
        age) + лет.
"" "," ""
Формат def (имя, возраст):
    return 'Он сказал, что его зовут {} и ему {} лет.'. format (имя, возраст)
"" "," ""
из шаблона импорта строки

template = Template ('Он сказал, что его зовут $ name, и ему $ age лет.')

Формат def (имя, возраст):
    вернуть template.substitute (имя = имя, возраст = возраст)
"" "

test = "" "
def test ():
    для имени в ('Фред', 'Барни', 'Гэри', 'Рок', 'Перри', 'Джеки'):
        для возраста в диапазоне (20, 200):
            формат (имя, возраст)
"" "

для fmt в формате:
    печать (timeit.timeit ('test ()', fmt + test, number = 10000))  

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

Как и все тесты, имейте в виду, что многие факторы играют роль при форматировании, и это служит только приблизительным руководством. В частности, я заметил, что при использовании «d» в качестве спецификатора формата для целого числа значимость времени выполнения f-строки значительно уменьшалась. Возможно, здесь еще есть место для оптимизации. Но форматирование с помощью f-строк по-прежнему было самым быстрым.

Списки строк в Python — Python Principles

Этот пост описывает, как работать со списками строк в Python.Списки одна из самых распространенных структур данных в Python, и они часто используются для держать струны.

Быстрые примеры

Сначала приведем несколько примеров:

  # определить список строк
>>> names = ["Ева", "Алиса", "Боб"]

# распечатать список строк
>>> печать (имена)
[«Ева», «Алиса», «Боб»]

# перебрать список имен и
# выводим каждую строку по одной
>>> для имени в именах:
>>> print (имя)
Ева
Алиса
Боб

# добавить имя в список
>>> имена.append ("Чарли")

# проверяем, содержит ли список строку
>>> если "Боб" в именах:
>>> print («Боб здесь»)
Боб здесь

# добавляем в него еще один список строк
>>> more_names = ["Иван", "Герт"]
>>> имена = имена + еще_имя

# сортируем список
>>> names.sort ()

# соединяем строки в списке запятой
>>> comma_separated = "," .join (имена)

>>> печать (через запятую)
Алиса, Боб, Чарли, Ева, Герт, Иван
  

В следующих разделах более подробно описаны эти операции со списками строк.

Создать список строк

Чтобы создать список строк, сначала используйте квадратные скобки [ и ] , чтобы создать список. Затем поместите элементы списка в скобки, разделенные запятыми. Помните, что строки должны быть заключены в кавычки. Также не забудьте использовать = чтобы сохранить список в переменной.

Получаем примерно так:

  цветов = ["красный", "синий", "зеленый"]
  

Также разрешается помещать каждую строку в отдельную строку:

  животных = [
    "олень",
    "бобер",
    "корова"
]
  

Добавить строки в список

Если у вас уже есть список строк и вы хотите добавить еще одну строку в его, вы можете использовать метод append :

  цветов = ["красный", "синий", "зеленый"]
цвета.append ("фиолетовый")
  

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

  цветов = цвета + ["серебро"]
  

Распечатать список строк

Чтобы напечатать весь список строк в одной строке, вы можете просто вызвать встроенный напечатайте функцию , передав список в качестве аргумента:

  цветов = ["красный", "синий", "зеленый"]
печать (цвета)
  

Распечатать список как строку

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

  products = ["полка", "ящик"]
products_as_string = repr (продукты)
печать (products_as_string)
  

Объединенные списки строк

Оператор + можно использовать для объединения двух списков строк.Например:

  colors1 = ["красный", "синий"]
colors2 = ["фиолетовый", "серебристый"]
конкатенированные = цвета1 + цвета2
  

Проверить, есть ли строка в списке

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

  цветов = ["розовый", "голубой"]
если «розовые» цвета:
    печать («да!»)

has_cyan = "голубой" в цветах
печать (has_cyan)
  

Сортировать список строк

Для сортировки списка строк можно использовать метод sort :

  чисел = ["один", "два", "три", "четыре"]
числа.Сортировать()
  

Вы также можете использовать встроенную функцию sorted () :

  чисел = ["один", "два", "три", "четыре"]
числа = отсортировано (числа)
  

Объединить список строк

Чтобы присоединить список строк к другой строке, необходимо вызвать join в строке, передав ваш список в качестве аргумента. Например, если у нас есть этот список:

  цветов = ["красный", "синий", "зеленый"]
  

Затем звоните:

  печать (",".
Оставить комментарий

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

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