Пустая строка в питоне как обозначается
Перейти к содержимому

Пустая строка в питоне как обозначается

  • автор:

Пустая строка в питоне как обозначается

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

Программирование в «Эврике»

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

a="У лукоморья дуб зеленый" b="" # Это пустая строка

Считать строковую переменную с клавиатуры можно при помощи стандартной функции input , при этом пользователь также должен заключить вводимую строку в кавычки. Пример:

a=input()

Конкатенация строк

Главная операция со строками — их объединение, когда одна строка записывается после другой строки. Эта операция называется и для нее используется оператор + :

a="abc" b="xyz" c=a+b print c # Будет напечатано abcxyz

Также при помощи оператора * можно многократно повторять одну и ту же строку. «Умножать» строку можно только на натуральное число:

print "="*20 # Будет напечатано 20 знаков " section">Выбор подстроки 

Со строками можно работать во многом как и со списками, рассматривая строку, как список отдельных символов. Функция len для строки возвращает ее длину. Все символы строки пронумерованы начиная с 0, а также в обратном порядке (с конца) начиная с -1. Например, если s="abc", то len(s) возвращает значение 3, s[0] и s[-3] — это символ "a", s[1] и s[-2] — это "b", s[2] и s[-1]— это символ "c". Обращение к несуществующему элементу строки приведет к ошибке IndexError: string index out of range.

Символ строки: a b c Его индекс: 0 1 2 или такой: -3 -2 -1

Помимо обращения к отдельным символам строки, из строки можно выбрать подстроку в виде s[x:y] , где s — идентификатор строки, x — номер первого символа подстроки, y — номер первого символа, который не будет включен в подстроку. Пример:

s="abcdefgh" print s[2:6] # Будет напечатано cdef

В этом примере из строки s выбирается подстрока s[2:6] , состоящая из символов с индексами от 2 до 5.

При выборе подстроки можно не указать номер начального символа, тогда считается, что он равен 0 (то есть подстрока начинается с начала строки) или последний символ (тогда он считается равным длине строки, то есть подстрока заканчивается концом исходной строки). Также можно использовать отрицательные числа для задания номеров символов. Таким образом, извлечь из строки s первые три символа можно так: s[:3] , а последние три символа: s[-3:] . Указание недопустимых для данной строки индексов при выборе подстроки допускается и не приводит к ошибке.

В отличии от списков, изменять отдельные элементы элементы (то есть символы в строке) нельзя. Вместо этого можно пользоваться конкатенацией строк. Например, если хочется в строке s заменить первый символ на букву "a" , то это можно сделать при помощи конкатенации строки "a" и всей строки s за исключением первого символа: s="a"+s[1:] .

Рассмотрим пример программы, которая считывает строку с клавиатуры и находит в ней первое слово (то есть все символы до первого пробела.

s=input() # 1 for i in range(len(s)): # 2 if s[i]==" ": # 3 print s[:i] # 4 break # 5

В первой строке программы в переменную s считывается строка с клавиатуры. Затем организовывается цикл, в котором переменная s меняется от 0 до len(s)-1 , то есть переменная i принимает подряд все номера символов в строке. В третьей строке программы проверяется, является ли i -й символ строки пробелом (то есть совпадает ли он со строкой из одного пробела). Если проверяемое условие истинно, то был найден первый слева строки пробел, на экран печатается первые i символов строки, то есть все символы с начала строки до найденного пробела, после чего выполнение цикла завершается инструкцией break .

Сравнение строк

Строки можно сравнивать между собой на равенство или неравенство при помощи операторов сравнения == и != . Также можно сравнивать строки при помощи операторов < , , >= , при этом строки сравниваются в лексикографическом (то есть алфавитном) порядке. Например, верны будут следующие неравенства: "a"

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

s=input() # 1 t="" # 2 for i in range(len(s)): # 3 if s[i]>="A" and s[i]

В первой строке программы мы считывает строку s , затем заводим пустую строку t , в которую будем по очереди копировать все символы строки s при условии, что они не являются заглавными буквами. Далее в строке 3 организовывается цикл, в котором переменная i принимает всевозможные значения индексов элементов строки s , то есть от 0 до len(s)-1 . Внутри цикла мы проверяем, является ли символ s[i] заглавной буквой, сравнив его со строками "A" и "Z" (строка 4 программы). В случае истинности проверяемого условия пропускаем этот символ (строка 5 программы), иначе выполняется строка 6 , в которой в конец строки t дописывается символ s[i] . Завершается программа выводом строки t на экран.

Строки. Функции и методы строк

Python 3 логотип

Итак, о работе со строками мы немного поговорили, теперь поговорим о функциях и методах строк.

Я постарался собрать здесь все строковые методы и функции, но если я что-то забыл - поправляйте.

Базовые операции

  • Конкатенация (сложение)

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

  :  Поэтому все строковые методы возвращают новую строку, которую потом следует присвоить переменной.

Таблица "Функции и методы строк"

Функция или метод Назначение
S = 'str'; S = "str"; S = '''str'''; S = """str""" Литералы строк
S = "s\np\ta\nbbb" Экранированные последовательности
S = r"C:\temp\new" Неформатированные строки (подавляют экранирование)
S = b"byte" Строка байтов
S1 + S2 Конкатенация (сложение строк)
S1 * 3 Повторение строки
S[i] Обращение по индексу
S[i:j:step] Извлечение среза
len(S) Длина строки
S.find(str, [start],[end]) Поиск подстроки в строке. Возвращает номер первого вхождения или -1
S.rfind(str, [start],[end]) Поиск подстроки в строке. Возвращает номер последнего вхождения или -1
S.index(str, [start],[end]) Поиск подстроки в строке. Возвращает номер первого вхождения или вызывает ValueError
S.rindex(str, [start],[end]) Поиск подстроки в строке. Возвращает номер последнего вхождения или вызывает ValueError
S.replace(шаблон, замена[, maxcount]) Замена шаблона на замену. maxcount ограничивает количество замен
S.split(символ) Разбиение строки по разделителю
S.isdigit() Состоит ли строка из цифр
S.isalpha() Состоит ли строка из букв
S.isalnum() Состоит ли строка из цифр или букв
S.islower() Состоит ли строка из символов в нижнем регистре
S.isupper() Состоит ли строка из символов в верхнем регистре
S.isspace() Состоит ли строка из неотображаемых символов (пробел, символ перевода страницы ('\f'), "новая строка" ('\n'), "перевод каретки" ('\r'), "горизонтальная табуляция" ('\t') и "вертикальная табуляция" ('\v'))
S.istitle() Начинаются ли слова в строке с заглавной буквы
S.upper() Преобразование строки к верхнему регистру
S.lower() Преобразование строки к нижнему регистру
S.startswith(str) Начинается ли строка S с шаблона str
S.endswith(str) Заканчивается ли строка S шаблоном str
S.join(список) Сборка строки из списка с разделителем S
ord(символ) Символ в его код ASCII
chr(число) Код ASCII в символ
S.capitalize() Переводит первый символ строки в верхний регистр, а все остальные в нижний
S.center(width, [fill]) Возвращает отцентрованную строку, по краям которой стоит символ fill (пробел по умолчанию)
S.count(str, [start],[end]) Возвращает количество непересекающихся вхождений подстроки в диапазоне [начало, конец] (0 и длина строки по умолчанию)
S.expandtabs([tabsize]) Возвращает копию строки, в которой все символы табуляции заменяются одним или несколькими пробелами, в зависимости от текущего столбца. Если TabSize не указан, размер табуляции полагается равным 8 пробелам
S.lstrip([chars]) Удаление пробельных символов в начале строки
S.rstrip([chars]) Удаление пробельных символов в конце строки
S.strip([chars]) Удаление пробельных символов в начале и в конце строки
S.partition(шаблон) Возвращает кортеж, содержащий часть перед первым шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий саму строку, а затем две пустых строки
S.rpartition(sep) Возвращает кортеж, содержащий часть перед последним шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий две пустых строки, а затем саму строку
S.swapcase() Переводит символы нижнего регистра в верхний, а верхнего – в нижний
S.title() Первую букву каждого слова переводит в верхний регистр, а все остальные в нижний
S.zfill(width) Делает длину строки не меньшей width, по необходимости заполняя первые символы нулями
S.ljust(width, fillchar=" ") Делает длину строки не меньшей width, по необходимости заполняя последние символы символом fillchar
S.rjust(width, fillchar=" ") Делает длину строки не меньшей width, по необходимости заполняя первые символы символом fillchar
S.format(*args, **kwargs) Форматирование строки

Для вставки кода на Python в комментарий заключайте его в теги

Завершение цикла при вводе пустой строки Python

Хочу написать цикл do while на Python, который бы брал данные на ввод, до тех пор, пока я не введу пустую строку. Как это реализовать?

while True: x, y, z = map(int, input().split(' ')) if input(''): break 

Отслеживать
задан 7 дек 2016 в 12:03
327 2 2 золотых знака 5 5 серебряных знаков 15 15 бронзовых знаков

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Встроенная функция iter(function, end_value) вызывает переданную функцию function() до тех пор пока она не вернёт end_value .

for line in iter(input, ''): x, y, z = map(int, line.split()) # use x, y, z here 

В данном случае input() вызывается до тех пор пока пустая строка '' не вернётся.

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

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