Найти - Пользователи
Полная версия: Как сделать все буквы строчными, исключая аббревиатуры?
Начало » Python для новичков » Как сделать все буквы строчными, исключая аббревиатуры?
1
archon
Вопрос в следующем, есть ли метод, аналогичный lower(), который бы переводил все символы строки в нижний регистр, но при этом оставлял аббревиатуры в верхнем. При этом за аббревиатуру можно считать несколько прописным подряд.
Если нет встроенного метода, то мож есть какая либа, где это реализовано?
RaZveDchiK
Простая функция:

def abbr(stat):
s = ''
for item in stat.split(' '):
if not item.isupper():
s += " "+item.lower()
else:
s += " "+item
return s
archon
RaZveDchiK
Простая функция
«После ВУЗа я пошел домой» — готов поспорить, тут функция зафейлит.
Кроме того, есть аббревиатуры со строчными в середине, например «СНиП» (строительные нормы и правила), правда этот пример не подходит даже под мое определение аббревиатуры из первого поста:)
RaZveDchiK
Вы не указали, что аббревиатуры могут включать строчные.
archon
RaZveDchiK
Вы не указали, что аббревиатуры могут включать строчные.
Я указал, что просто 2 или более прописных подряд.
После ВУЗа — 3 прописных подряд => аббревиатура
Или СВЧ-печь — то же самое
Ну а СНиП — фиг с ним. Когда 1 прописная, то без лексического анализа никак не понять кусок аббревиатуры это, или просто опечатка, или ЧтО тО ВрОдЕ ЭтОгО.
RaZveDchiK
def abbr1(stat):
s = ""
for item in stat.split(' '):
c = 0
for letter in item:
if letter.isupper():
c += 1
if c >= 2:
s += item + " "
else:
s += item.lower() + " "
return s
sp3
никогда не называйте переменные str, list итд, моветон :)
RaZveDchiK
учтено :) спс
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB