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

Обработка данных типа символы (Char)

09.12.2020, 18:32. Показов 3922. Ответов 17

Студворк — интернет-сервис помощи студентам
Помогите исправить код!
Задание:
Ввести символьный массив из 13-ти или меньшего числа элементов i найти среди них элемент с наименьшим кодом.

Вот что сказали нужно исправить:
Массив из символов! Символы с целыми числами сравнивать нельзя!

Если не сложно то с комментарием.

Python
1
2
3
4
5
6
7
n=13
S = input('Input ' + str(n) + ' simvolov: ')
kmin=S[0]
for i in range(13) :
    if S[i] < kmin :
        kmin = S[i]
print("Min kod =", kmin, " for char ", ord(kmin))
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.12.2020, 18:32
Ответы с готовыми решениями:

Обработка данных типа символы (Char). С++
Вводить символьный массив из 16 символов. Группы символов, разделенные пробелами. В этих словах, которые заканчиваются сочетанием букв ing,...

Обработка данных типа символы (Char)
Данный текст. Группы символов, разделенные пробелами. Выяснить, верно ли, что в данном тексте больше букв, чем знаков.

Не распознаёт русские символы типа char
Не распознаёт русские символы типа char setlocale(LC_ALL, &quot;Rus&quot;), setlocale(LC_ALL, &quot;ru&quot;), setlocale(LC_ALL, &quot;Russian&quot;) нифига...

17
 Аватар для Semen-Semenich
5201 / 3452 / 1169
Регистрация: 21.03.2016
Сообщений: 8,281
09.12.2020, 18:38
Цитата Сообщение от sdfafsdf Посмотреть сообщение
Ввести символьный массив из 13-ти или меньшего числа элементов
ткните меня носом где этот 'массив' (список) у вас?
Цитата Сообщение от sdfafsdf Посмотреть сообщение
Символы с целыми числами сравнивать нельзя
вам правильно сказали вы же не сможете сравнить что больше пуд пуха или пуд железа
0
-66 / 0 / 0
Регистрация: 02.12.2020
Сообщений: 87
09.12.2020, 18:56  [ТС]
Я символы ввожу с клавиатуры. Но я вводил всё подряд. Это значит что просто нельзя вводить числа, или ещё что-то?

Добавлено через 14 минут
Я правильно понимаю?
Или можете исправить код что бы соответствовал заданию, если не сложно?
0
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
09.12.2020, 18:58
sdfafsdf, Вам подсказывают, если Вы вводите символьную строку, то ее при вводе нужно преобразовать в массив, то есть в список.И еще видимо подразумевается, что символы нужно вводить через пробел, что бы проще было преобразовать вводимую строку в список (массив).
Хотя для получения конечного результата в этом нет необходимости, но у Вас так требуется в условии.
0
 Аватар для Semen-Semenich
5201 / 3452 / 1169
Регистрация: 21.03.2016
Сообщений: 8,281
09.12.2020, 18:58
вы читали что такое цифровой код символа и что делает Char? если вы вводите все подряд то цифры для питона тоже символ пока не переведен в число. где у вас массив (точнее список, что за автор это писал)?
Списки
0
-66 / 0 / 0
Регистрация: 02.12.2020
Сообщений: 87
09.12.2020, 19:01  [ТС]
Это на этом же сайте мне написали. Наименьший код мне выводило, вот я и подумал что всё нормально работает.
0
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
09.12.2020, 19:10
Цитата Сообщение от sdfafsdf Посмотреть сообщение
Наименьший код мне выводило, вот я и подумал что всё нормально работает.
В питоне, один и тот же результат можно получить разными способами. Вы использовали один способ, а с Вас просят другой способ, с использованием массива.
Преобразовать вводимую строку, если вводить символы через пробелы, можно с помощью split
Python
1
2
3
4
5
6
7
8
9
str.split(sep=None, maxsplit=-1) -> list
 
sep - Строка-разделитель, при помощи которой требуется разбить исходную строку. Может содержать как один, так и несколько символов. Если не указан, то используется специальный алгоритм разбиения, для которого разделителем считается последовательность пробельных символов. (по умолчанию  строка разбивается на группы по символам пробела, табуляции или перевода строки)
Пробельные символы — это набор символов, а не только сам символ пробела.
К ним относятся: возврат каретки, перевод строки, табуляция, и различные виды пробелов.
 
maxsplit - Максимальное количество разбиений, которое требуется выполнить. Если -1, то количество разбиений не ограничено.
 
list - список текстовых строк
0
-66 / 0 / 0
Регистрация: 02.12.2020
Сообщений: 87
09.12.2020, 19:38  [ТС]
Спасибо з разъяснения, вроде всё понял! Значит в мой код нужно вставить ту первою строку которую вы мне написали и тоже на первую строку, так?

Добавлено через 15 минут
Или как мне исправить код? Не смотря на то что я понял Ваши разъяснения, я всё равно не могу правильно внедрить все корректировки в свой код.
0
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
09.12.2020, 19:53
Лучший ответ Сообщение было отмечено sdfafsdf как решение

Решение

Цитата Сообщение от sdfafsdf Посмотреть сообщение
Ввести символьный массив из 13-ти или меньшего числа элементов i
У Вас может вводится не 13 а меньше символов. Поэтому код должен быть для любого количества символов. Не понятно, что еще от Вас хотят. Может проверку, что количество введенных элементов меньше или равно 13, и в случае превышения, предложить повторный ввод? Но это усложнит код.
В общем уберите число 13, вводите символы через пробел и используйте split в первой строке при вводе. Используйте range(len(S)), что бы обрабатывать массивы любой длины.

Добавлено через 7 минут
Python
1
2
3
4
5
6
S = input('Input ' + '=<13' + ' simvolov: ').split()
kmin=S[0]
for i in range(len(S)) :
    if S[i] < kmin :
        kmin = S[i]
print("Min kod =", kmin, " for char ", ord(kmin))
1
-66 / 0 / 0
Регистрация: 02.12.2020
Сообщений: 87
09.12.2020, 20:01  [ТС]
Нет, у меня задание вводить только 13 или меньше символов, так что пока это код будет именно для этого, и проверок пока не нужно.
Цитата Сообщение от Viktorrus Посмотреть сообщение
В общем уберите число 13
Вообще n убрать, или как?
Цитата Сообщение от Viktorrus Посмотреть сообщение
используйте split в первой строке при вводе
Как именно нужно записать первую строку у меня в коде с этим split?
0
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
09.12.2020, 20:06
sdfafsdf, я Вам дал код.

Добавлено через 1 минуту
Если символы вводить через запятую с пробелом, то split будет выглядеть так
Python
1
S = input('Input ' + '=<13' + ' simvolov: ').split(', ')
0
-66 / 0 / 0
Регистрация: 02.12.2020
Сообщений: 87
09.12.2020, 20:06  [ТС]
Да, уже увидел. Выбивает ошибку, не могу понять как исправить.
Миниатюры
Обработка данных типа символы (Char)  
0
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
09.12.2020, 20:16
sdfafsdf, У Вас ввод не соответствует условию. У Вас вводится не массив символов, а массив символьных строк содержащих больше одного символа, поэтому split разбивает не на символы а на слова. А слово не является символом и не имеет кода. Почему Вы вводите слова а не символы через пробел? Если строку ввода Вам задают, то значит это дебильный сайт. Кстати в условии не указана конкретная строка, которую нужно вводить. Вводите символы через пробел а не слова, и все будет работать.
0
-66 / 0 / 0
Регистрация: 02.12.2020
Сообщений: 87
09.12.2020, 20:21  [ТС]
Блин, да, это я туплю, извините. Да теперь всё работает. Спасибо большое, помогли!
0
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
09.12.2020, 20:24
del************************************* *********************
0
-66 / 0 / 0
Регистрация: 02.12.2020
Сообщений: 87
09.12.2020, 20:33  [ТС]
Не хочу наглеть но не могли бы вы ещё написать этот код только на С++? Если, конечно, у вас есть время и вы знаете язык С++.
0
1730 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
10.12.2020, 11:21
sdfafsdf, Соблюдайте правила форума. Этот раздел посвящен только питону. Для С++ существует другой раздел.
Кстати я С++ не знаю.
0
-66 / 0 / 0
Регистрация: 02.12.2020
Сообщений: 87
10.12.2020, 14:32  [ТС]
Понял, хорошо, ну спасибо и на том что помогли!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.12.2020, 14:32
Помогаю со студенческими работами здесь

Создайте одномерный вектор типа char. Удалите символы X,Y,Z
Создайте одномерный вектор типа char. Для заполнения вектора создайте генератор случайных чисел. Коды заглавных латинских букв кодируются...

Условие типа if( масив типа char[x] [y] != переменная типа char) не срабатывает
Создал функцию ChangeWay(). Все, кроме if(map !=ar) (обе переменные типа char) работает нормально, а когда выполнение доходит до этого...

Значение типа const char* нельзя использовать для инициализации сущности типа char*
#include &lt;iostream&gt; using namespace std; void color_scheme_func(char* color) { system(color); }

Проблема с вызовом функции(аргумент типа const char* несовместим с параметром типа char*)
void cht(char* binary) { n = 0; double s = 0; fout &lt;&lt; &quot;Чтение файла: &quot; &lt;&lt; endl; fin.open(binary, ios::in | ios::binary); if...

Аргумент типа (const char*) несовместим с параметром типа (char*). Как исправить?
#include &quot;Table.h&quot; #include &quot;Contour.h&quot; #include &quot;TwoShape.h&quot; #include &lt;iostream&gt; int main() { Contour circle; ...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Полиглотные микросервисы на C# и .NET
ArchitectMsa 30.06.2025
Полиглотная архитектура появилась не из желания усложнить жизнь разработчикам. Она родилась из практической необходимости решать разные задачи наиболее эффективным способом. В одном из проектов. . .
Стратегии кеширования
Javaican 29.06.2025
Кеширование — это хранение часто запрашиваемых данных в быстром хранилище (обычно в памяти), чтобы не обращаться к более медленному первоисточнику. Казалось бы, все просто. Но за этой простотой. . .
Наблюдаемость приложений ASP.NET Core с OpenTelemetry, Prometheus и Grafana
ArchitectMsa 29.06.2025
Наблюдаемость (observability) – это ключевое свойство современной системы, позволяющее понимать её внутреннее состояние на основе внешних данных. Если мониторинг отвечает на вопрос "что случилось?",. . .
Четыре главных модели отношений классов в с++
russiannick 28.06.2025
Продолжаю крестовый поход против c++. ideone. com/ юзаю для проверки валидности кода. Насчитал 4 модели отношений классов: одиночный класс, равноправные классы, слейв - мастер, терминатор. . . .
Вложенные корутины в Unity
GameUnited 28.06.2025
Работа с корутинами в Unity кажется простой до тех пор, пока не начинаешь их вкладывать друг в друга. Я потратил несколько месяцев на изучение этого механизма, и до сих пор иногда ловлю себя на том,. . .
Управление Arduino на C# через последовательный порт
Wired 28.06.2025
Когда я впервые попробовал заставить Arduino общаться с моим C# приложением, казалось, что эти два мира существуют параллельно и никогда не пересекутся. Микроконтроллер упорно моргал встроенным. . .
Основы OpenGL 3.3 и Qt 6.9. Трансформированный треугольник
8Observer8 27.06.2025
Содержание блога На русском https:/ / rutube. ru/ video/ e424497dd6b7ae7e11494027c4b31a54/ https:/ / vkvideo. ru/ video-231040171_456239019 https:/ / www. youtube. com/ watch?v=mfD-ZL7wa_4
Федерация аутентификации на основе JWT-токенов с Keycloak и .NET в гетерогенных инфраструктурах
ArchitectMsa 27.06.2025
Тот самый момент, когда впервые столкнулся с проблемой интеграции десятка разрозненных систем аутентификации в одной корпоративной экосистеме. Кажый сервис жил своей жизнью - тут Basic Auth, там. . .
Гайд по современным СУБД (небесспорный)
Codd 26.06.2025
Когда я только начинал свой путь в IT как рядовой программист, база данных казалась мне чем-то простым и понятным. Ну, серьезно — это же просто место, где лежат данные, верно? Напиши SELECT * FROM. . .
Использование C# с AWS S3: Примеры с AWS SDK для .NET
stackOverflow 26.06.2025
Amazon S3 (Simple Storage Service) уже давно стал стандартом де-факто в мире облачного хранения данных. Особенно приятно, что для разработчиков . NET предусмотрен отличный SDK, который значительно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru