Аватар для Shcolnik
4 / 4 / 2
Регистрация: 19.11.2013
Сообщений: 89

Вводится строка и символ разделитель. На выходе то, что до символа разделителя и то, что после него

04.08.2014, 19:58. Показов 5709. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Условие:вводится строка, затем символ разделитель. На выходе должно получаться две строки s1 - то что до символа разделителя и s2 - то что после него.
Написал, вроде правильно, но чет не работает она) Помогите исправить пожалуйста.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
print('razdelit stroku')
print('vvedite stroku ->')
s = input()
print('s =', s)
n = len(s)
c = int()
print('vvedite razdelitel sep ->')
sep = input()
print('razdelitel vveden ->', sep)
i = 0
s1=0
s2=0
for i in range(n):
    if s[i]==sep:
        s1==s[0:i]
        s2==s[i+1:n]
        break
    else:
        print('razdelitel ->',sep,'<-ne naiden')
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.08.2014, 19:58
Ответы с готовыми решениями:

Дана строка из 13 символов.Определить номер последнего символа равного z идобавить после него 4-ре символа p
дана строка из 13 символов.Определить номер последнего символа равного z идобавить после него 4-ре символа p Пожалуйсто помогите...

Вводится строка. Верно ли, что в ней все цифры стоят после первого пробела
Здравствуйте! Я порболел тему, и не магу справится с лабороторками, помогите пожалуйста! Спасибо!

C# C++ Задача поиск определенного символа в строке, запись того что после него в дргую строку
Вот пошагово: 1)Создать файл из символов, последний символ *(маркер) 2)После маркера записать ешё некоторое кол-во символов 3)...

13
123 / 62 / 32
Регистрация: 10.01.2014
Сообщений: 241
04.08.2014, 20:57
Честно говоря вашего кода совсем не понял (новичек) но решение задачи примерно такое:
Python
1
2
3
4
5
6
7
8
9
10
def func ():
    string = str (input ('Введите строку: '))
    sep = str (input ('Введите символ разделителя: '))
    if sep in string:
        place = string.find (sep)
        s1 = string[0:place]
        s2 = string[place+1:]
        return s1, s2
    else:
        print ('Разделитель не найден')
Работает так:
Python
1
2
3
>>>    func():
Введите строку: 'string1|string2'
Введите символ разделителя: '|'
Выдает:
Python
1
('string1', 'string2')
0
 Аватар для Shcolnik
4 / 4 / 2
Регистрация: 19.11.2013
Сообщений: 89
04.08.2014, 22:56  [ТС]
А ошибку в моем коде найти не можете?
0
26 / 26 / 6
Регистрация: 19.10.2012
Сообщений: 131
04.08.2014, 23:02
Python
1
2
3
4
5
6
7
8
9
10
print("split line")
line = str(input("please, enter line ->"))
print("s = %s" % line)
sep = input("enter line separator ->")
print("separator = %s" % sep)
result = line.split(sep)
try:
    print(result[0], sep.join(result[1:]))
except IndexError:
   print("separator %s in line %s not found" % (sep, line))
есть встроенный метод split для строк, ну и find на всякий случай, это удобнее своего велосипеда.
0
 Аватар для Shcolnik
4 / 4 / 2
Регистрация: 19.11.2013
Сообщений: 89
04.08.2014, 23:05  [ТС]
man0ngi, ну я еще не добрался до этого, вчера только начал питонить)
0
26 / 26 / 6
Регистрация: 19.10.2012
Сообщений: 131
04.08.2014, 23:08
Цитата Сообщение от Shcolnik Посмотреть сообщение
man0ngi, ну я еще не добрался до этого, вчера только начал питонить)
в таком случае у вас всё верно, кроме того, что вы зачем-то сравниваете переменные, а не присваиваете. Один знак равно лишний в строках 15 и 16
0
 Аватар для Shcolnik
4 / 4 / 2
Регистрация: 19.11.2013
Сообщений: 89
04.08.2014, 23:13  [ТС]
Исправил. Все равно не получается, как будто не идет по ветке да в ифе, хотя должен.
0
123 / 62 / 32
Регистрация: 10.01.2014
Сообщений: 241
04.08.2014, 23:32
Shcolnik, Ну конечно не пойдет по if
смотри:
Python
1
n = len(s)
в переменной n у тебя число 9
Python
1
for i in range(n):
1,2,3,4,6,7,8,9
пиши
Python
1
for i in s
ну и знаки равно тоже стоит убрать как уже подметил man0ngi
0
 Аватар для Shcolnik
4 / 4 / 2
Регистрация: 19.11.2013
Сообщений: 89
04.08.2014, 23:48  [ТС]
Теперь в 13 строчке выдает: TypeError: string indices must be integers

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
print('razdelit stroku')
print('vvedite stroku ->')
s = input()
print('s =', s)
n = len(s)
print('vvedite razdelitel sep ->')
sep = input()
print('razdelitel vveden ->', sep)
i=int(0)
s1=0
s2=0
for i in s:
    if s[i]==sep:
        s1=s[:i]
        s2=s[i+1:]
        i+=1
        break
    else:
        print('razdelitel ->',sep,'<-ne naiden')
0
123 / 62 / 32
Регистрация: 10.01.2014
Сообщений: 241
04.08.2014, 23:58
Shcolnik,
сделай:
Python
1
for letter in s:
потому что
Python
1
for i in s:
i это буква строки s (допустим буква "Л")
а в 13 строке у тебя выходит:
Python
1
if s['Л'] == sep
не уверен насколько доходчиво я объясняю, но как могу, в общем меняй 12 строку на:
Python
1
for letter in s:
0
2741 / 2340 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
05.08.2014, 02:14
Shcolnik, В общем, если по порядку.
Во 1 как тебе ранее сказали уже, действительно лучше использовать встроенные методы, а не изобретать велосипед. Тебе нужен был метод split.
Во 2, не нужно постоянно заранее объявлять переменные.
В 3, можешь смело писать по русски, а не транслитом.

Что касается ошибки, так их у тебя тут 2. Про 1 тебе уже сказали (== это сравнение, а = это присваивание), а вторая, это то, что ты else расположил не в том месте.

Вот исправленная версия твоего кода:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
s = input('Введите строку: ')
print('s =', s)
sep = input('Введите разделитель: ')
print('Разделитель', sep)
count = len(s)
flag = 0
 
for i in range(count):
    if s[i] == sep:
        s1 = s[:i]
        s2 = s[i + 1:count]
        flag = 1
        break
 
if not flag:
    print('Разделитель', sep, 'не найден')
else:
    print(s1)
    print(s2)
1
 Аватар для Shcolnik
4 / 4 / 2
Регистрация: 19.11.2013
Сообщений: 89
05.08.2014, 17:11  [ТС]
Я рассуждал так:
Вводим строку, затем разделитель.
Проходим по строке сравнивая каждый s[i] c разделителем sep.
Если s[i]==sep ,то раскидываем то что до sep в s1 и то что после в s2, дальше break.
P.S. исправил 12ю строку, результата нет. Я понимаю что мой вариант туп, на фоне того что есть методы, но все же хотелось бы доделать его до конца
0
2741 / 2340 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
05.08.2014, 17:52
Цитата Сообщение от Shcolnik Посмотреть сообщение
но все же хотелось бы доделать его до конца
Парень, ты моё сообщение вообще читал? Я там вообще, то описал тебе ошибки твои и рабочий вариант твоего кода приложил.
1
 Аватар для Shcolnik
4 / 4 / 2
Регистрация: 19.11.2013
Сообщений: 89
05.08.2014, 18:16  [ТС]
tsar925, писал с не обновленной страницы, спс
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.08.2014, 18:16
Помогаю со студенческими работами здесь

Удалить из строки всё, что стоит перед символом (он один в тексте) и ещё 2 символа после него
Привет всем, нужно удалить из строки всё, что стоит перед символом (он один 1 в тексте) и ещё 2 символа после него. Можно как то это...

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

Оставить только то что после разделителя (знака = )
Здравствуйте, есть файл с кучей мусора и небольшими крупицами нужной информации, которая находится после знака = и начинается обязательно...

Даны строка S, символ C и строка S0. Необходимо после каждого вхождения символа C в строку S вставить строку S0
Есть код... string s, s0; char c; cout &lt;&lt; &quot;Введите строку s, s0 и символ c: &quot;; getline(cin, s); ...

Поясните пожалуйста что означает двоеточие и то что идет после него
В 4 строчке после параметра в скобочках нету &quot;;&quot; или же тела функции, что не сходится с моим шаблоном в голове. Поясните пожалуйста что...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

Новые блоги и статьи
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru