Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
1 / 0 / 0
Регистрация: 15.09.2019
Сообщений: 52

Удвоить латинские буквы в строке. Не могу найти ошибку в коде

27.10.2019, 18:58. Показов 5658. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
s = input('s=')
for letter in s:
    if letter.isalpha():
        s = s.replace(letter, letter + letter)
print(s)
Вместо того, чтобы удваивать по одному разу букву, код увеличивает все повторяющиеся буквы еще по нескольку раз. Помогите исправить пожалуйста
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2019, 18:58
Ответы с готовыми решениями:

Удвоить все латинские буквы в строке
Написать программу в которой нужно удвоить все латинские буквы в данной строке.

В строке удвоить малые латинские буквы и цифры
Нужно в строке удвоить малые латинские буквы и цифры с++

В данной строке удвоить все цифры и малые латинские буквы
Прошу помочь решить 5 задач в Free pascal-е: 1. Составьте процедуру выравнивания строки, которая преобразует строку к строке указанной...

8
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
27.10.2019, 19:05
Лучший ответ Сообщение было отмечено alinabelayaa как решение

Решение

Цитата Сообщение от alinabelayaa Посмотреть сообщение
isalpha()
удвоит не только латинские!
Python
1
2
3
4
5
6
7
>>> from string import ascii_letters
>>> text = 'a 123 b я'
>>> ''.join([e+e if e in ascii_letters else e for e in text])
'aa 123 bb я'
>>> text = 'A 123 Ы b я'
>>> ''.join([e+e if e in ascii_letters else e for e in text])
'AA 123 Ы bb я'
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
27.10.2019, 19:05
Может, перепишите вот так?
Python
1
2
for i in 'qwertyuiopasdfghjklzxcvbnm':
    s = s.replace(i, i**2)
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.10.2019, 19:05
Python
1
2
3
s = input('s=')
s = ''.join([letter + letter for letter in s if letter.isalpha()])
print(s)
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
27.10.2019, 19:07
Замена каждого символа по всему тексту будет произведена только один раз.

Добавлено через 43 секунды
Это дополнение к моему предыдущему сообщению.

Добавлено через 1 минуту
iSmokeJC, не буквы теряются:
Python
1
2
>>> ''.join([letter + letter for letter in 'ffgf55' if letter.isalpha()])
'ffffggff'
2
1 / 0 / 0
Регистрация: 15.09.2019
Сообщений: 52
27.10.2019, 19:09  [ТС]
А можно ли это как-то сделать без функции join или только с ней?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.10.2019, 19:09
Рыжий Лис, согласен, не подумал чето
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
27.10.2019, 19:10
Цитата Сообщение от alinabelayaa Посмотреть сообщение
А можно ли это как-то сделать без функции join или только с ней?
ну сделай страшную вещь -конкатенацию в цикле
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
27.10.2019, 19:12
alinabelayaa, можно.
Python
1
2
3
4
5
6
7
8
s = input('s=')
s2 = ''
for letter in s:
    if letter.isalpha():
        s2 += letter + letter
    else:
        #...
print(s2)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.10.2019, 19:12
Помогаю со студенческими работами здесь

Строки: удвоить все малые латинские буквы
Дана строка, все малые латинские буквы удвоить.

Найти и вывести все латинские буквы в строке c++
Помогите написать программу, которая находит все латинские буквы в строке и выводит их в обратном алфавитном порядке (исходная строка может...

Найти количество слов в строке которые начинаются на латинские буквы
Помогите,пожалуйста,СРОЧНО Нужно найти и вывести количество слов которые начинаются на латинские буквы

Найти в строке все слова, где гласные латинские буквы чередуются с цифрами
Выделить в строке-предложении s все слова, разделенные символами-разделителями «_.,;:\n\t!?». Найти количество всех слов в...

Удвоить каждую букву данного слова +Заменить в тексте все маленькие латинские буквы на большие
Удвоить каждую букву данного слова. Дополнительно. Заменить в тексте все маленькие латинские буквы на большие. задали по информатике....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru