Как обрезать строку с конца python
Перейти к содержимому

Как обрезать строку с конца python

  • автор:

Обрезать пробелы из строки Python

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

1. Использование strip() функция

Простое решение для удаления начальных и конечных пробелов из строки использует str.strip() функция.

if __name__ == ‘__main__’ :
s = » Hello, World. »
x = s . strip ( )
print ( x ) # Hello, World.

2. Использование lstrip() а также rstrip() функция

Если вам нужно удалить только начальные пробельные символы из строки, используйте lstrip() функция. Точно так же, чтобы удалить завершающие пробелы из строки, используйте rstrip() функция.

if __name__ == ‘__main__’ :
s = » Hello, World. »
print ( ( s . lstrip ( ) , s . rstrip ( ) ) ) # (‘Hello, World. ‘, ‘ Hello, World.’)

3. Использование split() функция

Если вам нужно удалить повторяющиеся пробелы из строки, используйте str.split() функция с str.join() , как показано ниже:

if __name__ == ‘__main__’ :
s = » Hello, World. »
x = ‘ ‘ . join ( s . split ( ) )
print ( x ) # Hello, World.

Это все, что касается удаления пробелов из строки в Python.

Оценить этот пост

Средний рейтинг 4.86 /5. Подсчет голосов: 21

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂

Подписывайся
0 Комментарии
Встроенные отзывы
Просмотреть все комментарии
Загрузить больше комментариев
Просматривать
Подпишитесь на новые публикации

  • Все проблемы
  • Практика DSA
  • 100 самых популярных задач
  • 50 лучших классических задач
  • Лучшие алгоритмы
  • Компилятор С/С++
  • Компилятор Java
  • Компилятор Python
  • Компилятор JavaScript
  • компилятор PHP
  • Компилятор C#
  • Свяжитесь с нами
  • Политика конфиденциальности
  • условия обслуживания
  • Подпишитесь на новые публикации

Techie Delight © 2023 Все права защищены.

Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » Обрезать строку по пробелам.

#1 Сен. 14, 2013 15:25:06

Jeck290 От: Зарегистрирован: 2010-01-03 Сообщения: 99 Репутация: 0 Профиль Отправить e-mail

Обрезать строку по пробелам.

Есть вот такая строка

s = “”“Строка строка Строка строка Строка строка Строка, строка Строка== строка Строка строка”“”

нужно укоротить строку вставляя каждый третий пробел символ конца строки , на выходе должна быть вот такая картина

Строка строка Строка
строка Строка строка
Строка, строка Строка==
строка Строка строка

#2 Сен. 14, 2013 16:27:11

SoT Зарегистрирован: 2012-12-12 Сообщения: 68 Репутация: 4 Профиль Отправить e-mail

Обрезать строку по пробелам.

Ну например вот так :

#!/usr/bin/python # -*- coding: utf-8 -*- s = u"слово1 слово2 слово3 слово4 слово5 слово6 слово7 слово8 слово9" k = 0 for i in range( len(s) ) : if s[i] == u" " : k = k + 1 if k == 3 : s = s[:i] + u"\n" + s[(i+1):] k = 0 print s 

Вызывай из командной строки, у меня работает.
P.s. Символ пробела на символ перевода строки можно заменять с помощью replace, но у меня почему то не получилось

Строка: Как мне вывести строку от первого «:» и до конца?

Дана символьная строка. Заменить все символы ‘!’ точками, кроме первого и вывести полученную строку
Дана символьная строка. Заменить все символы ‘!’ точками, кроме первого и вывести полученную.

Дана символьная строка. Заменить все символы ‘!’ точками, кроме первого и вывести полученную строку
При выполнении работы НЕЛЬЗЯ использовать методы Concat, Trim, Replace, методы изменения регистра и.

Как мне вывести элементы массива в строку
Как я могу вывести значения массива nech в строку? for i in range(n): print(nech)\

Как вывести строку без первого символа?
Например если дано qwerty вывести только werty

876 / 655 / 252
Регистрация: 10.12.2016
Сообщений: 1,603

1 2 3 4 5
>>> s = """ Author: Здесь наведён пример текста: да именно: это и есть пример текста""" >>> import re >>> re.sub('Author:','',s) ' Здесь наведён пример текста: да именно: это и есть пример текста' >>>

Добавлено через 4 минуты
или без re

1 2 3 4
>>> idx = s.find('Author:') + len('Author:') >>> s[idx:] ' Здесь наведён пример текста: да именно: это и есть пример текста' >>>

Эксперт по компьютерным сетям

5890 / 3348 / 1034
Регистрация: 03.11.2009
Сообщений: 9,977

s = """Author: Здесь наведён пример текста: да именно: это и есть пример текста""" print(s.replace('Author: ', ''))

Регистрация: 07.12.2019
Сообщений: 22

Извиняюсь, забыл указать
не обязательно что бы было написано «Authon»
там большое количество строк и все с разными именами
что-то в таком плане
«»»
Baronova: Сколько на
Doninside: ������На заднем плане
MayorFSB: Какой же ты идиот.
«»»
Нужно взять из строки всё, что идёт после первого «:» и до конца

Добавлено через 21 минуту
Всем спасибо за помощь, сделал всё таким способом

«»»
Baronova: Сколько на свете людей
CivesOrel: #ГражданеОрла
znakcom: Протоирей Смирнов
zatelecom: Тут у нас Qiwi решили хайпануть
«»»

1 2 3 4 5
for y in hdr: #hdr - масив в котором находяться строки y2 = y.split(' ')[0].strip() idx = y.find(y2) + len(y2) y3 = y[idx:] print(y2)

Вывод
«»»
Сколько на свете людей
#ГражданеОрла
Протоирей Смирнов
Тут у нас Qiwi решили хайпануть
«»»
876 / 655 / 252
Регистрация: 10.12.2016
Сообщений: 1,603

1 2 3 4
>>> s = """ Вася Пупкин: Здесь наведён пример текста: да именно: это и есть пример текста""" >>> ':'.join(s.split(':')[1:]) ' Здесь наведён пример текста: да именно: это и есть пример текста' >>>

Эксперт Python

5416 / 3840 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
>>> hdr =""" Baronova: Сколько на свете людей CivesOrel: #ГражданеОрла znakcom: Протоирей Смирнов zatelecom: Тут у нас Qiwi решили хайпануть """ >>> for y in hdr.split('\n'): if (idx:=y.find(':')) > 0: y[idx+1:].strip() 'Сколько на свете людей' '#ГражданеОрла' 'Протоирей Смирнов' 'Тут у нас Qiwi решили хайпануть' >>>

Эксперт по компьютерным сетям

5890 / 3348 / 1034
Регистрация: 03.11.2009
Сообщений: 9,977

ЦитатаСообщение от vic5710 Посмотреть сообщение

>>> ‘:’.join(s.split(‘:’)[1:])
у split есть maxsplit
Регистрация: 14.11.2019
Сообщений: 67
А нельзя так?

s = 'Maxim: Это просто строка.' print(s[s.find(':'):].strip())#strip убирает лишние пробелы

т. е. мы делаем срез с символа ‘:’ до конца

Эксперт Python

5416 / 3840 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1

ЦитатаСообщение от Alex_199 Посмотреть сообщение

А нельзя так?

А если find вернет -1?
P.S. В моем примере нужно заменить проверку >0 на >=0, так как иначе игнорируется двоеточие как самый первый символ строки.

Добавлено через 5 минут
Ну и +1 к индексу лишнее, так как strip все равно уберет лидирующие и завершающие пробелы.

Регистрация: 14.02.2020
Сообщений: 9

Используйте для этого срезы.
У строк есть метод .index(а), который возвращает индекс первого элемента в строке со значением а. Попробуйте так:

1 2 3
yourStr = "Author: Здесь наведён пример текста: да именно: это и есть пример текста" _ = yourStr.index(":") yourStr = yourStr[_:]

Если код непонятен, почитайте про срезы в python.
Регистрация: 14.11.2019
Сообщений: 67

ЦитатаСообщение от Garry Galler Посмотреть сообщение

Ну и +1 к индексу лишнее
У меня его и нет

ЦитатаСообщение от Garry Galler Посмотреть сообщение

А если find вернет -1?
вряд ли, ведь даны чёткие данные, что всегда будет :

Эксперт Python

5416 / 3840 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1

ЦитатаСообщение от Alex_199 Посмотреть сообщение

едь даны чёткие данные, что всегда будет

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

Регистрация: 14.11.2019
Сообщений: 67

ЦитатаСообщение от Garry Galler Посмотреть сообщение

Но не в жизни
Ещё как бывает! у него представлен диалог в чате. Проверку его надо делать заранее.
Просто Лис

Эксперт Python

5321 / 3335 / 1021
Регистрация: 17.05.2012
Сообщений: 9,768
Записей в блоге: 9

1 2 3 4
>>> 'MayorFSB: Какой же . ты идиот. '.split(':') ['MayorFSB', ' Какой же ', '', '', 'ты идиот. '] >>> 'MayorFSB: Какой же . ты идиот. '.split(':', 1) ['MayorFSB', ' Какой же . ты идиот. ']

876 / 655 / 252
Регистрация: 10.12.2016
Сообщений: 1,603
Рыжий Лис, ну если быть точным

1 2 3
>>> 'MayorFSB: Какой же . ты идиот. '.split(':', 1)[-1] ' Какой же . ты идиот. ' >>>

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

как мне считывать из файла значения с конца
подскажите пожалуйста как мне считать значения с конца файла ?

Ввести строку и подстроку, и вывести позицию первого вхождения подстроки в строку
Ваша программа должна предложить ввести строку и подстроку, и вывести номер символа для первого.

Обрезать строку с конца до первого встречающегося «\»
Ребят, подскажите, как можно обрезать строку с конца до первого встречающегося "\"?

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

Как вывести в файл пустую строку, когда в исходном файле есть пустая строка
Например: 3 1 4 4 6 3 В результирующем файле должно получится тоже самое. Как это.

Ввести строку. Вывести символы до первого двоеточия. Вывести последнее слово
Ввести строку. Вывести символы до первого двоеточия. Вывести последнее слово.

str Python

Каждый перенос строки представлен символом \n . Я выделил его жёлтым для наглядности. Для Python это такой же символ как и остальные просто созданный с помощью экранирования , о котором мы поговорим чуть ниже.

Зададим переменной s значение с использованием \n

>>> s = ‘Это пример \n многострочной \n переменной типа \n str’ >>> print(s)

Это пример многострочной переменной типа str

Точно такой же результат можно получить используя «»» «»»

>>> s = «»»Это пример . многострочной . переменной типа . str»»» >>> print(s)

Это пример многострочной переменной типа str

Универсальный перенос строки

С помощью встроенного в Python Universal Newlines \n переводится в ту последовательность символов, которая принята в вашей операционной системе.

В Windows переход на новую строку (Carriage-return) это \r\n

В Linux, MacOS и других UNIX это \r

Работая с Python не нужно задумываться выборе символов для переноса строки — достаточно везде писать \n .

\ означает начало экранированной последовательности (Escape Sequence).

Также рекомендую к прочтению статью

Escape Sequences

Экранированный символ теряет своё изначальное значение и воспринимается интерпретатором как обычный символ либо наоборот приобретает дополнительный смысл как мы уже видели на примере \n

>>> «This is n it is a normal symbol»

‘This is n it is a normal symbol’

>>> s = «This is n it is a normal symbol»
>>> print(s)

This is n it is a normal symbol

>>> «This is \n it is an escaped symbol»

‘This is \n it is an escaped symbol’

>>> s = «This is \n it is an escaped symbol»
>>> print(s)

This is it is an escaped symbol

Вместо n теперь перенос строки

Экранирование можно применить для использования одинаковых кавычек внутри и снаружи строки

>>> «Двойная кавычка \» внутри двойных»

‘Двойная кавычка » внутри двойных’

>>> ‘Одинарная кавычка \’ внутри одинарных’

‘Одинарная кавычка ‘ внутри одинарных’

Если экранирование не подразумевается, то \ будет всё равно будет воспринят интерпретатором как попытка экранирования и не появится как обычный символ

>>> ‘Двойную кавычку \» можно не экранировать внутри одинарных а \’ одинарную нужно’

‘Двойную кавычку » можно не экранировать внутри одинарных а \’ одинарную нужно’

>>> s = ‘Двойную кавычку \» можно не экранировать внутри одинарных а \’ одинарную нужно’

Двойную кавычку » можно не экранировать внутри одинарных а ‘ одинарную нужно

Чтобы всё-таки увидеть \ нужно написать \\ то есть проэкранировать символ экранирования

As in Standard C, up to three octal digits are accepted.

Unlike in Standard C, exactly two hex digits are required.

In a bytes literal, hexadecimal and octal escapes denote the byte with the given value. In a string literal, these escapes denote a Unicode character with the given value.

Changed in version 3.3: Support for name aliases 1 has been added.

Exactly four hex digits are required.

Any Unicode character can be encoded this way. Exactly eight hex digits are required.

Raw Strings

В случаях когда нужно использовать много символов нуждающихся в экранировании пригодятся raw strings

Они позволяют вводить данные практически в WYSIWYG виде.

Например, удобно использовать raw string для храния адреса системного пути в Windows

>>> path = r’C:\Users\Andrei\Sites\HeiHeiRu’
>>> path

Изменить тип на str

Превратить что-то другое в строку можно с помощью функции str()

Допустим, нужно объединить числовое значение и строку. Хотя у Python динамическая типизация, он не будет в этом случае додумывать за вас и выдаст TypeError

pi = 3.1415 text = «Pi is approximately » + pi

Traceback (most recent call last): File «str_ex.py», line 3, in text = «Pi is approximately » + pi TypeError: can only concatenate str (not «float») to str

Если применить str() к переменной pi ошибка будет исправлена

pi = 3.1415 text = «Pi is approximately » + str (pi) print (text)

Pi is approximately 3.1415

Примеры в интерактивном режиме

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

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

Какой индекс нужно указать, чтоб получить точку?

Проверить тип переменной можно с помощью функции type()

У символа входящего в состав строки тип, естественно, тоже str

Методы (capitalize)

Изучить все доступные для работы со str методы можно вызвав функцию help с аргументом str

Рассмотрим метод capitalize

| capitalize(self, /) | Return a capitalized version of the string. | | More specifically, make the first character have upper case and the rest lower | case.

>>> c = «topBicycle.ru»
>>> c.capitalize()

Первая буква стала заглавной. Все остальные стали строчными.

capitalize() не изменят изначальную строку. Это можно проверить выполнив

Изображение баннера

Обрезать строку

# отрезать x символов с конца строки s s[:- x ] # отрезать y символов с начала строки s s[ y :] # обрезать и начало и конец s[ y :- x ]

>>> url = «https://www.heihei.ru»
>>> a = url[:-3]
>>> a
>>> ‘https://www.heihei’
>>> b = a[12:]
>>> b
>>> ‘heihei’
>>> c = url[12:-3]
>>> c
>>> ‘heihei’

index(): порядковый номер элемента

index() возвращает порядковый номер первого элемента совпадающего с заданным.

index ( value , start , end )

start можно не указывать — по умолчанию поиск идёт с начала строки

end можно не указывать — по умолчанию поиск идёт до конца строки

Возвращается индекс только первых a, b и c

str1 = «abcabcabc» print (str1.index( «a» )) # 0 print (str1.index( «b» )) # 1 print (str1.index( «c» )) # 2 str2 = ‘a»bc»»‘ print (str2.index( ‘»‘ )) # 1

Если нужно найти не первое совпадение — можно задать start

str3 = ‘a»bc»def»‘ print (str3.index( ‘»‘ )) # 1 print (str3.index( ‘»‘ , 0 )) # 1 print (str3.index( ‘»‘ , 1 )) # 1 print (str3.index( ‘»‘ , 2 )) # 4 print (str3.index( ‘»‘ , 3 )) # 4 print (str3.index( ‘»‘ , 4 )) # 4 print (str3.index( ‘»‘ , 5 )) # 8

Если начать поиск со втрого элемента, следующим совпадением будет элемент с индеком 4. Если с пятого, то 8.

Чтобы задать точные границы поиска нужны и start и end

print (str3.index( ‘»‘ , 2 , 6 )) # 4 # print(str3.index(‘»‘, 5, 7)) # ValueError

Если в этом диапазоне нет совпадений — вернётся ValueError

Unicode

Python поддерживает Unicode так как по дефолту в нём используется UTF-8

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

>>> «Pythonia voi käyttää myös vaativassa ja tieteellisessä»

‘Pythonia voi käyttää myös vaativassa ja tieteellisessä’

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

>>> «Pythonia voi k\u00e4ytt\u00e4\u00e4 my\u00f6s vaativassa ja tieteellisess\u00e4»

‘Pythonia voi käyttää myös vaativassa ja tieteellisessä’

Можно получить юникод символы и другими способами

string Module

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

whitespace = ‘ \t\n\r\v\f’
ascii_lowercase = ‘abcdefghijklmnopqrstuvwxyz’
ascii_uppercase = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’
ascii_letters = ascii_lowercase + ascii_uppercase
digits = ‘0123456789’
hexdigits = digits + ‘abcdef’ + ‘ABCDEF’
octdigits = ‘01234567’
punctuation = r»»»!»#$%&'()*+,-./:;?@[\]^_`<|>~»»»
printable = digits + ascii_letters + punctuation + whitespace

bytes

а — \xd0\xb0
б — \xd0\xb1
в — \xd0\xb2

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

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