Добавить студента
Часть раздела Логика и потоки выполнения путешествия по GDScript на Coddy. Урок 43 из 78.
Задание
ЛегкоДобавь студентов в записи. Сохрани всё, что ты написал на предыдущих шагах.
1. Функция. Ниже _ready() напиши add_student(student_name: String, age: int, courses: Array) -> void:
- Если в
student_recordsуже есть это имя, выведиStudent '<name>' already exists.и выполни возврат. - В противном случае создай множество курсов (словарь, в котором каждый курс — ключ, а его значением является
true) и сохрани студента под его именем в виде словаря с тремя ключами:"age"(возраст),"grades"(пустой массив) и"courses"(множество). Затем выведиStudent '<name>' added successfully.
2. Команда. Команда add Alice 20 Math Physics содержит имя, возраст и любое количество курсов. Добавь эту ветку в match перед ["show"]:
["add", var student, var age, ..]:
add_student(student, int(age), parts.slice(3)).. позволяет шаблону сопоставить следующие за ним курсы, а parts.slice(3) — это массив этих курсов. Для команд
add Alice 20 Math Physics
add Bob 22 Biology Chemistry
show
exitрезультат будет таким:
Student 'Alice' added successfully.
Student 'Bob' added successfully.
{ "Alice": { "age": 20, "grades": [], "courses": { "Math": true, "Physics": true } }, "Bob": { "age": 22, "grades": [], "courses": { "Biology": true, "Chemistry": true } } }
Goodbye!Попробуйте сами
extends Node
# Каждый студент: имя -> {"age": int, "grades": Array, "courses": множество названий курсов}
var student_records := {}
func _ready():
while true:
var parts := Array(OS.read_string_from_stdin().split(" ", false))
match parts:
["show"]:
print(student_records)
["exit"]:
print("Goodbye!")
break
Все уроки раздела Логика и потоки выполнения
1Строки: углублённое изучение
Методы строкПоиск в строкахЗамена и обрезка пробеловРазделение и объединениеПовторение — проверка имени пользователя4Словари. Часть 2
Вложенные словариМассивы словарейОбъединение словарейКопирование словарейПовторение — подсчёт частоты10Продвинутые функции
Возврат нескольких значенийЛямбда-функции. Часть 1Лямбда-функции. Часть 2Повторение — сортировка с помощью лямбда-функцииРекурсивные функции. Часть 1Рекурсивные функции. Часть 2Повторение — сумма вложенного массива13Система управления запасами
Обзор проектаДобавление товара2Продвинутое управление ветвлением
Сопоставление с переменнымиУсловия в шаблонахШаблоны массивовШаблоны словарейПроверка принадлежностиИтоги — парсер команд5Приложение «Телефонная книга»
Показать менюДобавить контакт8Менеджер успеваемости студентов
Обзор проектаДобавить студента3Многомерные массивы
Основы двумерных массивовДоступ к элементам двумерного массиваВложенные циклы с двумерными массивамиПовторение: двумерные массивыРваные массивыТипичные шаблоны работы с двумерными массивамиПовторение: игровое поле6Множества и словари
Что такое множество?Словарь как множествоДобавление и удалениеОбъединение и пересечениеРазность множествПовторение — удаление дубликатовПотренируйтесь самостоятельно: Онлайн-компилятор GDScript