Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/120: Рейтинг темы: голосов - 120, средняя оценка - 4.57
88 / 10 / 2
Регистрация: 07.02.2009
Сообщений: 226

Средний символ в строке

10.08.2016, 00:25. Показов 23598. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как взять 3 символ в строке???
Дана строка. Вывести первый, последний и средний (если он есть)) символы.

Python
1
2
3
4
5
6
7
8
9
10
11
text = "skjute o"
dlinna = len(text)
print(dlinna)
print("Первый символ", text[0])
print("Последний символ", text[-1])
if (dlinna % 2) != 0:
    print("В строке нечетное количество символов")
else:
# Что написать для вывода, среднего символа? Т.к дальше выдает ошибку в print(text[midl]). Нельзя использовать midl
    midl = dlinna / 2
    print(text[midl])
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.08.2016, 00:25
Ответы с готовыми решениями:

Найти средний символ с применением срезов
Фразу вводит пользователь. Нужно найти средний символ этой фразы. Мой код, который не работает str1 = input(str("Введите фразу:...

В заданной строке заменить каждый символ «-» числом, соответствующим индексу этого символа в строке
В заданной строке заменить каждый символ «-» числом, соответствующим индексу этого символа в строке.

Выведите на отдельной строке символ >, если его IQ превышает средний IQ его предшественников, символ “<”, если он меньше
Как известно, абсолютное большинство людей считают себя умнее среднего. Измерим IQ нескольких человек. Для каждого из них рассчитаем,...

17
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
10.08.2016, 00:43
midl = dlinna // 2
0
757 / 306 / 190
Регистрация: 20.05.2016
Сообщений: 593
10.08.2016, 00:50
В строке с четным количеством символов нет среднего
0
88 / 10 / 2
Регистрация: 07.02.2009
Сообщений: 226
10.08.2016, 08:08  [ТС]
Ну да, с четным символом напутал. Будет тогда так:
midl = dlinna // 2 + 1.
Но вопрос в том как взять символ с номером равным midl
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
10.08.2016, 08:42
Цитата Сообщение от error777 Посмотреть сообщение
Но вопрос в том как взять символ с номером равным midl
text[midl]
0
88 / 10 / 2
Регистрация: 07.02.2009
Сообщений: 226
10.08.2016, 09:27  [ТС]
Я так писал сразу. См первое сообщение. Но питон ругается. Говорит что в скобках должна быть переменная типа integer. И запись text(midl) не подходит для решения задачи
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
10.08.2016, 09:40
Цитата Сообщение от error777 Посмотреть сообщение
Я так писал сразу. См первое сообщение. Но питон ругается. Говорит что в скобках должна быть переменная типа integer. И запись text(midl) не подходит для решения задачи
Ну вы же вроде как исправили потом dlinna / 2 на dlinna // 2
0
88 / 10 / 2
Регистрация: 07.02.2009
Сообщений: 226
10.08.2016, 09:54  [ТС]
oldnewyear,
Пока нет возможности запустить код. Но не могу понять какая существенная разница стала после замены / на //. Ведь при использовании dlinna / 2 будет тоже integer т.к в if отсекаются все возможные дробные числа, а в else остаются только целые.
А при использовании blinna //2 будет результат не соответствующий условию задачи, его нельзя использавать
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
10.08.2016, 09:54
Лучший ответ Сообщение было отмечено error777 как решение

Решение

вот так можно сделать text[int(midl)]
1
88 / 10 / 2
Регистрация: 07.02.2009
Сообщений: 226
10.08.2016, 10:03  [ТС]
oldnewyear,
Вечером попробую так сделать
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
10.08.2016, 10:18
Лучший ответ Сообщение было отмечено error777 как решение

Решение

Цитата Сообщение от error777 Посмотреть сообщение
oldnewyear,
Пока нет возможности запустить код. Но не могу понять какая существенная разница стала после замены / на //. Ведь при использовании dlinna / 2 будет тоже integer т.к в if отсекаются все возможные дробные числа, а в else остаются только целые.
А при использовании blinna //2 будет результат не соответствующий условию задачи, его нельзя использавать
Python
1
2
3
4
>>> 4 / 2
2.0
>>> 4 // 2
2
2.0 это не integer и не может использоваться как индекс
1
 Аватар для Semen-Semenich
5224 / 3471 / 1173
Регистрация: 21.03.2016
Сообщений: 8,298
10.08.2016, 12:18
Python
1
2
3
4
5
6
7
8
9
text = "skjutes o"
if len(text) % 2 == 0:
     srd = "В строке четное количество символов"
else:
     srd = 'Средний символ '+text [len(text) //2]
 
print("Первый символ", text[0])
print(srd)
print("Последний символ", text[-1])
1
88 / 10 / 2
Регистрация: 07.02.2009
Сообщений: 226
10.08.2016, 15:02  [ТС]
oldnewyear,
О как, не обращал внимание как то что операция / дает такой исход. Спасибо, познавательно.
0
317 / 268 / 61
Регистрация: 12.10.2011
Сообщений: 434
10.08.2016, 15:22
Цитата Сообщение от error777 Посмотреть сообщение
О как, не обращал внимание как то что операция / дает такой исход. Спасибо, познавательно.
Только в 3 Python.

Python 2.7:
Python
1
2
3
4
5
6
>>> 4/2
2
>>> 4//2
2
>>> 4./2
2.0
1
0 / 0 / 0
Регистрация: 11.08.2016
Сообщений: 2
11.08.2016, 02:18
Мой вариант:
Code
1
2
3
4
5
6
7
8
9
10
11
text = input()
if len(text) % 2 == 0:
    print("Первый символ:", text[0])
    print("Последний символ:", text[-1])
    print("Среднего символа не существует.")
else:
    leng = int(len(text))
    sr = leng // 2
    print ("Первый символ:", text[0])
    print ("Последний символ:", text[-1])
    print ("Средний символ:", text[sr])
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
11.08.2016, 02:56
Цитата Сообщение от 0311snitch Посмотреть сообщение
Мой вариант:
Code
1
2
3
4
5
6
7
8
9
10
11
text = input()
if len(text) % 2 == 0:
    print("Первый символ:", text[0])
    print("Последний символ:", text[-1])
    print("Среднего символа не существует.")
else:
    leng = int(len(text))
    sr = leng // 2
    print ("Первый символ:", text[0])
    print ("Последний символ:", text[-1])
    print ("Средний символ:", text[sr])
Эти две строки нехорошо дублируются
Python
1
2
3
    
print ("Первый символ:", text[0])
print ("Последний символ:", text[-1])
0
0 / 0 / 0
Регистрация: 11.08.2016
Сообщений: 2
11.08.2016, 14:15
Переделал

Code
1
2
3
4
5
6
7
8
9
10
11
text = input()
 
print("Первый символ:", text[0])
print("Последний символ:", text[-1])
 
if len(text) % 2 == 0:
    print("Среднего символа не существует.")
else:
    leng = int(len(text))
    sr = leng // 2
    print ("Средний символ:", text[sr])
0
88 / 10 / 2
Регистрация: 07.02.2009
Сообщений: 226
11.08.2016, 17:10  [ТС]
Всем спасибо. Получил больше полезной информации чем интересовало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.08.2016, 17:10
Помогаю со студенческими работами здесь

Задача: сколько в символьной строке слов, имеющие в первом слове средний символ?
Помогите решить на java skript : сколько в символьной строке слов, имеющие в первом слове средний символ(символ который находится в...

Функция принимает блоки данных (символ1, символ 2, строка), в каждой строке заменять символ 1 на символ 2
функция принимает блоки данный(символ1, символ 2 , строка), в каждом строке заменять символ 1 на символ 2. обязательно использовать функцию...

Если слово имеет нечетную длину , то удвоить средний символ и с обоих концов добавить символ "*"
Если слово имеет нечетную длину , то удвоить средний символ и с обоих концов добавить символ &quot;*&quot; помогите пожалуйста , никак не...

Выполнить замену всех символов в строке на первый отдельный символ, а всех пробелов в строке на второй отдельный символ.
Задание: 1. Ввести множество, запись или строку с помощью клавиатуры. 2. Вывести на экран монитора исходную запись, множество или...

Выполнить замену всех символов в строке на первый отдельный символ, а всех пробелов в строке на второй отдельный символ
Задание: 1. Ввести множество, запись или строку с помощью клавиатуры. 2. Вывести на экран монитора исходную запись, множество или...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru