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

Заменить все двоеточия (:) на точку с запятой (;) Подсчитать количество замен

05.06.2021, 11:44. Показов 4662. Ответов 16

Студворк — интернет-сервис помощи студентам
Дан массив символов. Заменить все двоеточия ( : ) на точку с запятой ( ; )
Подсчитать количество замен. на языке Python
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2021, 11:44
Ответы с готовыми решениями:

Дано текстовый файл, заменить все двоеточия (:) на точку с запятой (;). Посчитать количество замен
Дано текстовый файл, заменить все двоеточия (:) на точку с запятой (;). Посчитать количество замен. ПОМОГИТЕ ПОЖАЛУЙСТА!!!!!!!

В строке заменить все двоеточия на точку с запятой. Подсчитать количество замен
Я написала, работает, но количество почему то одно и то же, помогите пожалуйста! procedure TForm1.Button1Click(Sender: TObject); var ...

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

16
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
05.06.2021, 12:21
Python
1
2
3
4
5
6
7
8
9
# Дан массив символов. Заменить все двоеточия ( : ) на точку с запятой ( ; )
import re
def test(mstr:str)->str:
    res=re.sub(r':',';', mstr)
    return f'{res},{res.count(";")}'
    
    
if __name__ == '__main__':
    print(test(mstr=input()))
0
 Аватар для avdivo
303 / 213 / 112
Регистрация: 03.12.2016
Сообщений: 409
05.06.2021, 12:35
Python
1
2
3
4
5
array = ['q', 'f', ':', 'u', '8', '4', 'g', ':', 'a', 'a', ':']
cou = array.count(':')
array = list(map(lambda x: x if x != ':' else ';', array))
print (cou)
print (array)
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,327
05.06.2021, 13:28
Цитата Сообщение от avdivo Посмотреть сообщение
array = ['q', 'f', ':', 'u', '8', '4', 'g', ':', 'a', 'a', ':']
cou = array.count(':')
array = list(map(lambda x: x if x != ':' else ';', array))
print (cou)
print (array)
подскажите, а как будет если не чётко = ':', а просто в нём есть ':'?
Python
1
array = ['q', 'f', '2:', 'u', '8', '4', 'g', ':6', 'a', 'a', '5:6']
спс
0
 Аватар для avdivo
303 / 213 / 112
Регистрация: 03.12.2016
Сообщений: 409
05.06.2021, 15:55
Можно так
Python
1
2
3
4
5
array = ['q', 'f', ':', 'u', '8:hj', '4', 'g', ':', 'a', 'a', ':']
cou = ''.join(array).count(':')
array = list(map(lambda x: x if x.find(':') == -1 else x.replace(':', ';'), array))
print (cou)
print (array)
1
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.06.2021, 15:58
Цитата Сообщение от Dax Посмотреть сообщение
return f'{res},{res.count(\' \')}'
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
05.06.2021, 16:00
iSmokeJC,спасибо, понял что не так).
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.06.2021, 16:02
Лучший ответ Сообщение было отмечено Рыжий Лис как решение

Решение

Dax, ты это запускал хоть?

Добавлено через 32 секунды
Python
1
2
3
4
import re
 
res = re.subn(r':', ';', input())
print(f'Result: {res[0]}\nChanges:{res[1]}')
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
05.06.2021, 16:06
проверил, поправил, вывод прилагаю
Миниатюры
Заменить все двоеточия (:) на точку с запятой (;)  Подсчитать количество замен  
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.06.2021, 16:10
Dax, тем не менее, задачу ты решил неверно. Я тоже попадался на эту удочку. Нужно найти не количество точек с запятой, а количество замен. Чуешь разницу?
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
05.06.2021, 16:13
С экранированием кавычек - был явно перебор, пойду man по f- строкам почитаю, а так, проверил еще раз
Python
1
2
3
4
5
6
7
8
9
# Дан массив символов. Заменить все двоеточия ( : ) на точку с запятой ( ; )
import re
def test(mstr:str)->str:
    res=re.sub(r':',';', mstr)
    return f'{res},{res.count(";")}'
    
    
if __name__ == '__main__':
    print(test(mstr=input()))
Этот код работает, вроде бы, пристойно
Миниатюры
Заменить все двоеточия (:) на точку с запятой (;)  Подсчитать количество замен  
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
05.06.2021, 16:27
iSmokeJC, спасибо, чую)

Добавлено через 12 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
# Дан массив символов. Заменить все двоеточия ( : ) на точку с запятой ( ; )
 
def test(mstr:str)->str:
    cnt=0
    
    for i in mstr:
        if i==':':
            mstr=mstr.replace(':',';')# старый добрый replace)
            cnt+=1# если замена, то наращиваем количество,которое потом  выводим
    return f'{mstr},{cnt}   
if __name__ == '__main__':
    print(test(mstr=input()))
iSmokeJC, Ваш вариант, конечно, лучше, но, пробую еще раз решить , в лоб.
P.s. Меня с юности губит стремление к уникальности кода, самому понять и разобраться, даже - когда это лишнее, посему, прошу меня извинить.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.06.2021, 16:33
Цитата Сообщение от Dax Посмотреть сообщение
самому понять и разобраться
Это похвально. И не за что тут извиняться
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
05.06.2021, 16:56
Цитата Сообщение от Dax Посмотреть сообщение
mstr=mstr.replace(':',';')# старый добрый replace)
Разве изменение списка, по которому итерируешься, не является UB?

Можно, я лучше напишу решение на старой сишечке (для которой и писалось задание)?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//#include <math.h>
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#include <iso646.h>
#define null NULL
#define bool _Bool
#define i64 int64_t
#define usize size_t
#define len_array(x) (sizeof(x) / sizeof(x[0]))
 
// Дан массив символов. Заменить все двоеточия ( : ) на точку с запятой ( ; )
// Подсчитать количество замен.
int main() {
    char arr[] = {
        'T', 'r', 'i', 'x', 'i', 'e', ' ', 'i', 's', ' ',
        'b', 'e', 's', 't', ' ', 'p', 'o', 'n', 'y', ':', ';'};
    
    for (usize i = 0; i < len_array(arr); i++) {
       putchar(arr[i]);
    }
    putchar('\n');
 
    usize count = 0;
    for (usize i = 0; i < len_array(arr); i++) {
        if (arr[i] == ':') {
            arr[i] = ';';
            count++; 
        }
    }
 
    for (usize i = 0; i < len_array(arr); i++) {
       putchar(arr[i]);
    }
    putchar('\n');
    printf("count = %lu\n", count);
}
1
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
05.06.2021, 17:12
Рыжий Лис, вот после этого,пойду я, пожалуй man читать,еще большими темпами)))
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
05.06.2021, 17:32
Dax, я бы на твоём месте написал пару-тройку тестов на pytest.

Python
1
2
3
4
5
6
7
8
9
10
11
def func(mess):
    return mess, 0  # todo change me
 
assert func('test') == ('test', 0)
assert func('test:') == ('test;', 1)
 
# этот тест не пройдёт вариант https://www.cyberforum.ru/python-beginners/thread2843813.html#post15547587
assert func('te:s:t') == ('te;s;t', 2)
 
# этот тест не пройдёт вариант https://www.cyberforum.ru/python-beginners/thread2843813.html#post15547176
assert func('test:;') == ('test::', 1)
1
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
05.06.2021, 17:37
Рыжий Лис, спасибо, займусь вопросом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.06.2021, 17:37
Помогаю со студенческими работами здесь

В строке заменить все точки «.» на запятые «,», а двоеточия «:» на точку с запятой «;». Подсчитать количество замен
В строке заменить все точки «.» на запятые «,», а двоеточия «:» на точку с запятой «;». Подсчитать количество замен.

В строке заменить все двоеточия на точку с запятой.Подсчитать количесво замен.
В строке заменить все двоеточия на точку с запятой.Подсчитать количесво замен. procedure TForm1.Button1Click(Sender: TObject); var ...

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

В строке заменить все двоеточия (:) точкой с запятой (;). Подсчитать количество замен
Добрый день, уважаемые форумчане! Прощу помочь мне с задачей. Пытался решить, но всё тщетно. &quot;В строке заменить все двоеточия (: )...

В строке заменить все двоеточия (:) точкой с запятой (;). Подсчитать количество замен
Помогите с программой! пожалуйста!


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru