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

Файл: Выведите информацию о студентах, отсортировав их по фамилии

25.02.2019, 16:47. Показов 35406. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание 2. Пусть дан файл students.csv, в котором содержится информация о студентах в виде:
№;ФИО;Возраст;Группа
1;Иванов Иван Иванович;23;БО-111111
2;Сидоров Семен Семенович;23;БО-111111
3;Яшков Илья Петрович;24;БО-222222
...
Считайте информацию из файла в структуру: [[№, ФИО, Возраст, Группа],[№, ФИО, Возраст, Группа],[№, ФИО, Возраст, Группа]] (список списков):

a) Выведите информацию о студентах, отсортировав их по фамилии.
b) Выведите информацию о студентах, отсортировав их по возрасту.
c) Выведите информацию о студентах, отсортировав их по номеру группы.
d) Выведите информацию о студентах, в возрасте старше 22 лет.
Сделал код для задания d), как остальные?
Python
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
myDirectory = "C:\HomeWork\students.txt"
 
with open(myDirectory, "r", encoding="cp1251") as f:
    supList = f.readlines()
f.close()
 
for string in supList :
    print( string )
 
arr = [0] * len(supList)
print ( "sup list" + str(arr) )
 
for i in range(len(supList)):
    arr[i] = [0] * 4
print( "new sup list" + str(arr) + "\n" )
print( "dlina spiska = " + str(len(supList)) )
 
b_index = 0
str1 = ""
 
for i in range(len(supList)):
    print( "i = " + str(i) )
    str1 = supList[i][: len(supList[i]) - 2] + ";"
    print( "stroka = " + str(str1) + "\n" )
    b_index = 0
    for j in range(4):
        arr[i][j] = str1[b_index: str1.index(";")]
        b_index = str1.index(";")
        str1 = str1[: b_index] + str1[b_index + 1:]
 
print("Информация о студентах, в возрасте старше 22 лет:")
 
for i in range(len(supList)):
    if int(arr[i][2]) > 22:
        print(arr[i][1], arr[i][3])
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.02.2019, 16:47
Ответы с готовыми решениями:

Выведите информацию о студентах, отсортировав их по возрасту
Пусть дан файл students.csv, в котором содержится информация о студентах в виде: №;ФИО;Возраст;Группа 1;Иванов Иван...

Как вывести информацию о студентах, отсортировав их по фамилии
мне нужно считать информацию из файла в структуру: ,,]и нужно вывести информацию о студентах, отсортировав их по фамилии. я информацию...

Вывести в новый файл информацию о студентах, успешно сдавших сессию, отсортировав их по номеру группы
Замечания 1. Во всех задачах данного раздела подразумевается, что исходная информация хранится в текстовом файле input.txt, каждая строка...

16
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.02.2019, 16:53
Python
1
2
3
4
5
6
7
8
9
10
supList = [
    ['№', '1ИО', '3озраст', '1Группа'],
    ['№', '2ИО', '4озраст', '0Группа'],
]
supList.sort(key=lambda x: x[1])
print(supList)
supList.sort(key=lambda x: x[2])
print(supList)
supList.sort(key=lambda x: x[3])
print(supList)
0
-11 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 60
25.02.2019, 18:59  [ТС]
Это не то
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
25.02.2019, 19:17
Цитата Сообщение от Алексей43534 Посмотреть сообщение
Это не то
это не что?
0
-11 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 60
25.02.2019, 19:37  [ТС]
Это не сортировка
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
25.02.2019, 19:57
.sort - это не сортировка? это даже не логично
1
-11 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 60
25.02.2019, 20:08  [ТС]
По заданию не подходит.Этот запрос возвращает массив
['№', '1ИО', '3озраст', '1Группа'],
['№', '2ИО', '4озраст', '0Группа'], и больше ничего а надо
a) Выведите информацию о студентах, отсортировав их по фамилии.
b) Выведите информацию о студентах, отсортировав их по возрасту.
c) Выведите информацию о студентах, отсортировав их по номеру группы.
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
25.02.2019, 20:14
Цитата Сообщение от Алексей43534 Посмотреть сообщение
Этот запрос возвращает массив
там три запроса, - каждый по разному столбцу.

Добавлено через 1 минуту
каждый sort - это ответ на один из ваших вопросов.
Если Вы, конечно, не про то, что там не Ваши данные, а "придуманный массив", уж просто подставить свой массив сможете же, да, раз не приложили его.
0
-11 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 60
25.02.2019, 20:16  [ТС]
У меня не работа с массивом а с файлом почитайте задание
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
25.02.2019, 20:23
Я прочитал задание. В первом посте Вы говорите -

Сделал код для задания d), как остальные?
остальные - это другие способы сортировки, нет?

Добавлено через 2 минуты
Или Вы считаете, что файл надо читать как-то по-другому, чтобы отсортировать по номеру группы?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
25.02.2019, 20:42
Цитата Сообщение от Алексей43534 Посмотреть сообщение
Пусть дан файл students.csv... Считайте информацию из файла в структуру:
Я не знаю в курсе ли вы... Но чтение csv в список списков в Python делается одной строкой.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
25.02.2019, 21:23
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import csv
from collections import namedtuple
from pprint import pprint
 
Student = namedtuple("Student", "id fullName age group lastName firstName patronymic")
 
def rowToStudent(row):
    return Student(*(row[:2] + [int(row[2])] + row[3:] + row[1].split(maxsplit = 2)))
 
def main():
    with open("students.csv", newline = "") as f:
        students = list(map(rowToStudent, csv.reader(f, delimiter = ";")))
        pprint(sorted(students, key = lambda student: student.lastName))
        pprint(sorted(students, key = lambda student: student.age))
        pprint(sorted(students, key = lambda student: student.group))
        pprint(list(filter(lambda student: student.age > 22, students)))
 
if __name__ == "__main__":
    main()
2
-11 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 60
26.02.2019, 07:01  [ТС]
Спасибо но возникают ошибки не подскажите как исправить,плиз?
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
26.02.2019, 07:22
Алексей43534, какая кодировка файла, данные?

Добавлено через 4 минуты
Алексей43534, как я понял, у вас данные хранятся в файле "students.txt" с кодировкой "cp1251"?
0
-11 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 60
26.02.2019, 14:46  [ТС]
А вы у себя пробовали? Можете скинуть файл с students.csv и в чем вы писали код?
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
26.02.2019, 14:56
Цитата Сообщение от Алексей43534 Посмотреть сообщение
Можете скинуть файл с students.csv и в чем вы писали код?
попробуйте программу wing 101 - она бесплатная и хорошо работает с кодировками
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
26.02.2019, 17:45
Алексей43534, у меня все работает:
Python
1
2
3
4
5
6
7
8
9
10
11
12
[Student(id='1', fullName='Иванов Иван Иванович', age=23, group='БО-111111', lastName='Иванов', firstName='Иван', patronymic='Иванович'),
 Student(id='2', fullName='Сидоров Семен Семенович', age=23, group='БО-111111', lastName='Сидоров', firstName='Семен', patronymic='Семенович'),
 Student(id='3', fullName='Яшков Илья Петрович', age=24, group='БО-222222 ', lastName='Яшков', firstName='Илья', patronymic='Петрович')]
[Student(id='1', fullName='Иванов Иван Иванович', age=23, group='БО-111111', lastName='Иванов', firstName='Иван', patronymic='Иванович'),
 Student(id='2', fullName='Сидоров Семен Семенович', age=23, group='БО-111111', lastName='Сидоров', firstName='Семен', patronymic='Семенович'),
 Student(id='3', fullName='Яшков Илья Петрович', age=24, group='БО-222222 ', lastName='Яшков', firstName='Илья', patronymic='Петрович')]
[Student(id='1', fullName='Иванов Иван Иванович', age=23, group='БО-111111', lastName='Иванов', firstName='Иван', patronymic='Иванович'),
 Student(id='2', fullName='Сидоров Семен Семенович', age=23, group='БО-111111', lastName='Сидоров', firstName='Семен', patronymic='Семенович'),
 Student(id='3', fullName='Яшков Илья Петрович', age=24, group='БО-222222 ', lastName='Яшков', firstName='Илья', patronymic='Петрович')]
[Student(id='1', fullName='Иванов Иван Иванович', age=23, group='БО-111111', lastName='Иванов', firstName='Иван', patronymic='Иванович'),
 Student(id='2', fullName='Сидоров Семен Семенович', age=23, group='БО-111111', lastName='Сидоров', firstName='Семен', patronymic='Семенович'),
 Student(id='3', fullName='Яшков Илья Петрович', age=24, group='БО-222222 ', lastName='Яшков', firstName='Илья', patronymic='Петрович')]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.02.2019, 17:45
Помогаю со студенческими работами здесь

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

Выведите информацию о сотрудниках, отсортировав их по идентификационному номеру
Здравствуйте! Не могу выполнить запрос, работаю на оракле в базе данных HR! Помогите пожалуйста! Выведите информацию о...

Выведите в файл информацию о студентах, имеющих больше 7 "долгов", в заданном формате
У преподавателя в текстовом файле храниться список заданий, которые не сдали студенты на данный момент в следующем формате: ...

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

Программа, которая вводит информацию о студентах, а потом сортирует их по фамилии
Есть программа, которая вводит инфу о студентах, а потом сортирует их по фамилии. Ни то, ни другое не работает? ...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru