Kак cделать функционал по типу:
мне нужно добавить возможность добавления студента в список, удаление студента из списка, и вывод информации о студенте по введенным в консоль фамилией.как зделать функционал по типу: 1 - добавить студента, 2 - удалить студента 3 - вывод информации о студенте ; мне нужно сделать функционал который содержит следующие функции 1) добавления студента в список 2) удаление студента 3) вывод информации о студенте и после нажатия например цифры 2 у нас спрашивается фамилия студента которого мы хотим удалить и после введения фамилии студент должен быть удален из списка и выводиться новый список без этого студента
student_list = []
my_string = "Гринер Ирина Андреевна; 18 лет Студент 1 курса; Иванов Михаил Владимирович; 18 лет Студент 1 курса; Петлевая Софья Александровна; 18 лет студент 1 курса;"
#Добавление нового студента (записи) в список студентов.
def get_student(s, student_list):
s = s.replace(';', "")
list_of_student_temp = s.split(" ") #список, в котором храним новых студентов
while(len(list_of_student_temp) != 0):
about_student = []
about_student.append(list_of_student_temp[0:3]) # ФИО
about_student.append(int(list_of_student_temp[3:4][0])) #Возраст
about_student.append(int(list_of_student_temp[6:7][0])) # Курc
student_list.append(about_student)
list_of_student_temp = list_of_student_temp[8:]
return student_list
#Удаление студента из списка студентов.(по ФИО, возрасту и курсу)
def delete_student(student_list, name, age, course):
for i in range(len(student_list)):
if(" ".join(student_list[i][0]) == name and student_list[i][1] == age and course == student_list[i][2]):
student_list.pop(i);
return student_list
print("Такого студента не существует!")
#Вывод информации о студенте
def show_by_surname(student_list, surname):
for i in range(len(student_list)):
if(student_list[i][0][0] == surname):
print("ФИО: ", " ".join(student_list[i][0]), "| Возраст: ", student_list[i][1], "| Курс:", student_list[i][2])
Ответы (3 шт):
# coding:utf8
import argparse
student_list = []
my_string = "Гринер Ирина Андреевна; 18 лет Студент 1 курса; Иванов Михаил Владимирович; 18 лет Студент 1 курса; Петлевая Софья Александровна; 18 лет студент 1 курса;"
# Добавление нового студента (записи) в список студентов.
def get_student(s, student_list):
s = s.replace(';', "")
list_of_student_temp = s.split(" ") # список, в котором храним новых студентов
while len(list_of_student_temp) != 0:
about_student = []
about_student.append(list_of_student_temp[0:3]) # ФИО
about_student.append(int(list_of_student_temp[3:4][0])) # Возраст
about_student.append(int(list_of_student_temp[6:7][0])) # Курc
student_list.append(about_student)
list_of_student_temp = list_of_student_temp[8:]
return student_list
# Удаление студента из списка студентов.(по ФИО, возрасту и курсу)
def delete_student(student_list, name, age, course):
for i in range(len(student_list)):
if (" ".join(student_list[i][0]) == name and student_list[i][1] == age and course == student_list[i][2]):
student_list.pop(i)
return student_list
print("Такого студента не существует!")
# Вывод информации о студенте
def show_by_surname(student_list, surname):
for i in range(len(student_list)):
if (student_list[i][0][0] == surname):
print("ФИО: ", " ".join(student_list[i][0]), "| Возраст: ", student_list[i][1], "| Курс:",
student_list[i][2])
parser = argparse.ArgumentParser(description='Student base')
parser.add_argument('-a', '--added', type=str, nargs='+',
help='Добавление нового студента (записи) в список студентов.')
parser.add_argument('-d', '--deleted', nargs='+', type=str,
help='Удаление студента из списка студентов.(по ФИО, возрасту и курсу)', )
parser.add_argument('-v', '--view', type=str, help='Вывод информации о студенте', )
parser.add_argument('-y', '--year', type=int, help='Возраст', )
parser.add_argument('-c', '--course', type=int, help='Курс', )
args = parser.parse_args()
if __name__ == '__main__':
get_student(my_string,student_list)
# print(delete_student(student_list, 'Гринер Ирина Андреевна', 18, 1))
# print(args)
if args.added:
end_list = ' '.join(args.added)
print(get_student(end_list, student_list))
elif args.deleted:
name = ' '.join(args.deleted)
age= args.year
course = args.course
# print(name,age,course)
# print(student_list)
print(delete_student(student_list,name,age,course))
elif args.view:
print(show_by_surname(student_list, args.view))
# print(delete_student(student_list,'Гринер Ирина Андреевна', 18, 1))
чтобы показать инфо о студенте вводите в консоль название {ваше название модуля}.py - Например
Показать инфо о студенте - probe.py -v Гринер
Добавить студента - probe.py -a Гринер Ирина Андреевна; 18 лет Студент 1 курса;
Удалить студента - probe.py -d Гринер Ирина Андреевна -y 18 -c 1
Показать инфо о студенте: параметр -v принимает только фамилию студента
Добавить студента : параметр -a принимает строку
Удалить студента: параметр -d принимает ФИО -y - возраст -с - курс
Удаление принимает три параметра не забудьте, остальные по одному параметру. Их необходимо указывать как в примере.
# coding:utf8
import argparse
student_list = []
my_string = "Гринер Ирина Андреевна; 18 лет Студент 1 курса; Иванов Михаил Владимирович; 18 лет Студент 1 курса; Петлевая Софья Александровна; 18 лет студент 1 курса;"
# Добавление нового студента (записи) в список студентов.
def get_student(s, student_list):
s = s.replace(';', "")
list_of_student_temp = s.split(" ") # список, в котором храним новых студентов
while len(list_of_student_temp) != 0:
about_student = []
about_student.append(list_of_student_temp[0:3]) # ФИО
about_student.append(int(list_of_student_temp[3:4][0])) # Возраст
about_student.append(int(list_of_student_temp[6:7][0])) # Курc
student_list.append(about_student)
list_of_student_temp = list_of_student_temp[8:]
return student_list
# Удаление студента из списка студентов.(по ФИО, возрасту и курсу)
def delete_student(student_list, name, age, course):
for i in range(len(student_list)):
if (" ".join(student_list[i][0]) == name and student_list[i][1] == age and course == student_list[i][2]):
student_list.pop(i)
return student_list
print("Такого студента не существует!")
# Вывод информации о студенте
def show_by_surname(student_list, surname):
for i in range(len(student_list)):
if (student_list[i][0][0] == surname):
print("ФИО: ", " ".join(student_list[i][0]), "| Возраст: ", student_list[i][1], "| Курс:",
student_list[i][2])
if __name__ == '__main__':
get_student(my_string, student_list)
func_choice = input('1) добавления студента в список 2) удаление студента 3) вывод информации о студенте')
if func_choice == '1':
choice = input(
'Добавления студента в список. Введите ФИО Возраст Курс. Пример - Гринер Ирина Андреевна; 18 лет Студент 1 курса;')
print(get_student(choice, student_list))
elif func_choice == '2':
choice = input('Удаление студента. Введите ФИО Возраст Курс. Пример - Гринер Ирина Андреевна 18 1').split()
print(choice)
name = choice[0] + ' ' + choice[1] + ' ' + choice[2]
print(name)
age = int(choice[3])
course = int(choice[4])
print(delete_student(student_list, name, age, course))
elif func_choice == '3':
choice = input('Вывод информации о студенте. Пример - Гринер')
show_by_surname(student_list, choice)
Тут без параметров и всего прочего просто запускаете модуль и жмете соответствующие кнопки:1) добавления студента в список 2) удаление студента 3) вывод информации о студенте
как вариант
student_list = []
while True:
action = input("\nВведите действие: 1 - add, 2 - del, 3 - show, Enter - выход ")
if not action:
print(* student_list, sep='\n')
break
elif action == '1':
pass
full_name = input("Введите ФИО: ")
age = input("Введите возраст: ")
course = input("Введите курс: ")
if full_name in [ st[0] for st in student_list]:
print("Такой студент уже существует!")
else:
student_list.append([full_name, age, course])
elif action == '2':
full_name = input("Введите ФИО: ")
if not full_name in [ st[0] for st in student_list]:
print("Такого студента не существует!")
else:
index = [ i for i, st in enumerate(student_list) if st[0]==full_name][0]
student_list.pop(index)
elif action == '3':
full_name = input("Введите ФИО: ")
if not full_name in [ st[0] for st in student_list]:
print("Такого студента не существует!")
else:
st = [ st for st in student_list if st[0]==full_name][0]
print(f"ФИО: {st[0]} | Возраст: {st[1]} | Курс: {st[2]}")
а как сделать так чтобы список был сначала не пустой?
student_list = [
['Oxu62133 Hello World', '18', '1'],
['Иванов Иван Иванович', '21', '3'],
]
...
