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

Вывод построчно информации о студентах, чьи фамилии начинаются на букву «А» или «Б»

21.03.2018, 19:48. Показов 18943. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пусть дана строковая переменная, содержащая информацию о студентах вида: my_string = «ФИО;Возраст;Категория;_Иванов Иван Иванович;23 года;Студент 3 курса;_Петров Семен Игоревич;22 года;Студент 2 курса;_Иванов Семен Игоревич;22 года;Студент 2 курса;_Акибов Ярослав Наумович;23 года;Студент 3 курса;_Борков Станислав Максимович;21 год;Студент 1 курса;_Петров Семен Семенович;21 год;Студент 1 курса;_Романов Станислав Андреевич;23 года;Студент 3 курса;_Петров Всеволод Борисович;21 год;Студент 2 курса». Выведите построчно информацию о студентах, чьи фамилии начинаются на букву «А» или «Б».ПРОШУ ПОМОЩИ
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.03.2018, 19:48
Ответы с готовыми решениями:

Выполнить поиск студентов, чьи фамилии начинаются или заканчиваются на заданную букву
В StringGrid1 разместить информацию о студентах: шифр зачетной книжки, ФИО, группа. Выполнить поиск студентов, чьи фамилии начинаются или...

Вывести фамилии и имена студентов, чьи имена начинаются на букву "б"
известны фамилии,адреса и телефоны 25 человек. Найти фамилии и адреса людей, чей телефон начинается с цифры 3. рассмотрите два случая: ...

Найти список телефонов сотрудников, чьи фамилии начинаются с заданной буквы
Здравствуйте, мне необходимо доработать код. Мой код ищет фамилии по первой букве,а мне нужно,чтобы он искал номера телефонов по первой...

7
11 / 11 / 7
Регистрация: 17.12.2017
Сообщений: 26
22.03.2018, 12:00
Лучший ответ Сообщение было отмечено Миь как решение

Решение

Python
1
2
3
4
5
6
my_string = """ФИО;Возраст;Категория;_Иванов Иван Иванович;23 года;Студент 3 курса;_Петров Семен Игоревич;22 года;Студент 2 курса;_Иванов Семен Игоревич;22 года;Студент 2 курса;_Акибов Ярослав Наумович;23 года;Студент 3 курса;_Борков Станислав Максимович;21 год;Студент 1 курса;_Петров Семен Семенович;21 год;Студент 1 курса;_Романов Станислав Андреевич;23 года;Студент 3 курса;_Петров Всеволод Борисович;21 год;Студент 2 курса"""
str = list(my_string.split("_"))
length = len(str)
for i in range(1,length):
    if str[i][0] == 'А' or str[i][0] == 'Б':
        print(str[i])
1
 Аватар для Semen-Semenich
5234 / 3479 / 1175
Регистрация: 21.03.2016
Сообщений: 8,306
22.03.2018, 20:16
minh-vn, зачем такие нагромождения с range?
Python
1
2
3
4
my_string = """ФИО;Возраст;Категория;_Иванов Иван Иванович;23 года;Студент 3 курса;_Петров Семен Игоревич;22 года;Студент 2 курса;_Иванов Семен Игоревич;22 года;Студент 2 курса;_Акибов Ярослав Наумович;23 года;Студент 3 курса;_Борков Станислав Максимович;21 год;Студент 1 курса;_Петров Семен Семенович;21 год;Студент 1 курса;_Романов Станислав Андреевич;23 года;Студент 3 курса;_Петров Всеволод Борисович;21 год;Студент 2 курса"""
for i in my_string.split('_'):
    if i[0] in 'АБ'':
        print(i)
или
Python
1
2
my_string = """ФИО;Возраст;Категория;_Иванов Иван Иванович;23 года;Студент 3 курса;_Петров Семен Игоревич;22 года;Студент 2 курса;_Иванов Семен Игоревич;22 года;Студент 2 курса;_Акибов Ярослав Наумович;23 года;Студент 3 курса;_Борков Станислав Максимович;21 год;Студент 1 курса;_Петров Семен Семенович;21 год;Студент 1 курса;_Романов Станислав Андреевич;23 года;Студент 3 курса;_Петров Всеволод Борисович;21 год;Студент 2 курса"""
print(*list(filter(lambda x : x[0] in 'АБ'' ,my_string.split('_'))),sep = '\n')
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.03.2018, 05:34
Python
1
2
3
4
5
6
7
#!/usr/bin/env python3
 
my_string = """ФИО;Возраст;Категория;_Иванов Иван Иванович;23 года;Студент 3 курса;_Петров Семен Игоревич;22 года;Студент 2 курса;_Иванов Семен Игоревич;22 года;Студент 2 курса;_Акибов Ярослав Наумович;23 года;Студент 3 курса;_Борков Станислав Максимович;21 год;Студент 1 курса;_Петров Семен Семенович;21 год;Студент 1 курса;_Романов Станислав Андреевич;23 года;Студент 3 курса;_Петров Всеволод Борисович;21 год;Студент 2 курса"""
 
for i in my_string.split('_'):
    if i[0] in ('А', 'Б'):
        print(i)
Добавлено через 1 минуту
Или
Python
1
if i.startswith(('А', 'Б')):
1
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 23
25.03.2018, 23:08
Помогите решить задание с таким же текстом в строке, только нужно:
Выведите построчно информацию о студентах, чей возраст больше «21 года».

Пытался сделать так:

Python
1
2
3
4
5
my_string = """ФИО;Возраст;Категория;_Иванов Иван Иванович;23 года;Студент 3 курса;_Петров Семен Игоревич;22 года;Студент 2 курса;_Иванов Семен Игоревич;22 года;Студент 2 курса;_Акибов Ярослав Наумович;23 года;Студент 3 курса;_Борков Станислав Максимович;21 год;Студент 1 курса;_Петров Семен Семенович;21 год;Студент 1 курса;_Романов Станислав Андреевич;23 года;Студент 3 курса;_Петров Всеволод Борисович;21 год;Студент 2 курса"""
 
for i in my_string.split('_'):
    if i[1] in ('22 года'):
        print(i)
Выводит строки с 21 год и с 23, но с 22 не выводит. Объясните пожалуйста почему не работает этим методом, поиск по фамилии работает, а тут выдает неверные результаты.
Пытался через int() перевести число года в десятичную систему, тоже ничего не вышло, потому как в таком случае аргумент i начинает перебирать по буквам, если объясните через этот метод буду вдвойне благодарен.
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
26.03.2018, 00:29
Делай для вопроса отдельную тему

Python
1
2
3
4
5
6
7
8
9
import re
 
my_string = """ФИО;Возраст;Категория;_Иванов Иван Иванович;23 года;Студент 3 курса;_Петров Семен Игоревич;22 года;Студент 2 курса;_Иванов Семен Игоревич;22 года;Студент 2 курса;_Акибов Ярослав Наумович;23 года;Студент 3 курса;_Борков Станислав Максимович;21 год;Студент 1 курса;_Петров Семен Семенович;21 год;Студент 1 курса;_Романов Станислав Андреевич;23 года;Студент 3 курса;_Петров Всеволод Борисович;21 год;Студент 2 курса"""
 
for i, str_ in enumerate(my_string.split('_')):
    if i > 0:
        age = int(re.search('(\d+)', str_).group(0))
        if age > 22:
            print(str_)
а то что выводит строки с 21 год и 23, это просто случайность, в твоем коде проверяется что в строке "22 года" есть второй символ проверяемой строки
1
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 23
26.03.2018, 01:05
Спасибо, буду учить регулярные выражения, сейчас немного почитал вроде разобрался что к чему
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
26.03.2018, 04:53
Python
1
2
3
4
5
6
7
8
9
my_string = """ФИО;Возраст;Категория;_Иванов Иван Иванович;23 года;Студент 3 курса;_Петров Семен Игоревич;22 года;Студент 2 курса;_Иванов Семен Игоревич;22 года;Студент 2 курса;_Акибов Ярослав Наумович;23 года;Студент 3 курса;_Борков Станислав Максимович;21 год;Студент 1 курса;_Петров Семен Семенович;21 год;Студент 1 курса;_Романов Станислав Андреевич;23 года;Студент 3 курса;_Петров Всеволод Борисович;21 год;Студент 2 курса"""
 
ls = my_string.split(';_')
 
for i in ls[1:]:
    fio, age, cat = i.split(';')
    a, b = age.split(' ')
    if int(a) > 22:
        print(fio, age, cat)
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.03.2018, 04:53
Помогаю со студенческими работами здесь

Как вывести число совершеннолетних чьи фамилии начинаются с гласной буквы?
Как вывести число совершеннолетних, фамилии которых начинаются с гласной буквы System Linq? var gl1 = people.Where(l =>...

Распечатать фамилии учеников,фамилии которых начинаются на букву В с указанием даты рождения.
Распечатать фамилии учеников,фамилии которых начинаются на букву В с указанием даты рождения.

Вывести в текстовый файл фамилии пассажиров, фамилии которых начинаются на заданную букву
Помогите найти ошибку, не работает процедура Info()program lab4; uses crt; type item = string; TPassenger = record ...

Распечатать фамилии учеников, фамилии которых начинаются на букву В
Распечатать фамилии учеников,фамилии которых начинаются на букву В с указанием даты рождения.

Составить программу, которая печатает все фамилии людей из группы Пр, фамилии которых начинаются на букву Лит
Добрый вечер) нужно решить эту задачу, я рекорд воопще не понимаю, помогите пожайлуста) type str = array of char; дата = record ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
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
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru