Shanraq.org Shanraq.org
IT

Үлкен тілдік үлгісіз ЖИ: өз үлгімізді жасаймыз 17-сабақ (барлығы 25)

17-сабақ. Екі кілт арқылы іздейміз

Кітапханада тек автордың аты бірнеше кітапқа апаруы мүмкін. Біздің тізімге де екі кілт керек: үйірме мен мәлімет түрі. 15-сабақ қысқа сұрақтан осы екеуін анықтаған еді.

Мәтін ИИ көмегімен аударылды.

Бұл не үшін керек?

Кітапханада тек автордың аты бірнеше кітапқа апаруы мүмкін. Біздің тізімге де екі кілт керек: үйірме мен мәлімет түрі. 15-сабақ қысқа сұрақтан осы екеуін анықтаған еді.

Іске қоспас бұрын

16-қадамдағы facts.json файлын жаңа қалтаға көшіріңіз. Әуелі іздеудің өзін тексеру үшін бағдарлама екі кілтті бөлек сұрайды. and екі салыстыру да дұрыс болуы керегін білдіреді. matches табылған карточкаларды сақтайды.

[
  {"club": "шахмат", "kind": "уақыт", "value": "бейсенбі, 15:00"},
  {"club": "шахмат", "kind": "орын", "value": "203-бөлме"}
]

Жоба түбірінен қадам қалтасына өтіп, бағдарламаны іске қосыңыз:

cd course/kazakh-ai/step-17
python3 search.py

Windows жүйесінде соңғы пәрменнің орнына py search.py деп жазыңыз.

import json

with open("facts.json", encoding="utf-8") as file:
    facts = json.load(file)
club = input("Үйірме: ").lower()
kind = input("Мәлімет түрі: ").lower()
matches = []
for fact in facts:
    if fact["club"] == club and fact["kind"] == kind:
        matches.append(fact)
if len(matches) == 1:
    print("Табылды:", matches[0]["value"])
elif len(matches) == 0:
    print("білмеймін: дерек жоқ")
else:
    print("тоқта: бірнеше дерек табылды")

Қадам файлдары.

Бағдарлама қалай жұмыс істейді?

Қайталау әр карточканы қарайды. Үйірме де, мәлімет түрі де сәйкес келсе, карточка matches тізіміне түседі. Бір жазба болса, [0] қауіпсіз; жазба жоқ болса, соны айтамыз; бірнешеуі болса, қайсысы дұрыс екенін білмегендіктен тоқтаймыз. .lower() енгізілген бас әріпті кішірейтеді, бірақ қате жазуды не артық бос орынды түзетпейді.

Тірек сызба

Үйірме + түр → тізімді қарау → 0: жазба жоқ; 1: мән бар; 2 немесе одан көп: тоқтау.

Еске түсіріп, тексеріңіз

шахмат пен уақыт, кейін сурет пен орын енгізгендегі нәтижені болжаңыз. Көмек: екі өріс қатар салыстырылады. Үлгі нәтиже: Табылды: бейсенбі, 15:00; кейін білмеймін: дерек жоқ. Шахмат уақытына екінші жазба қосып, тоқтауын тексеріңіз. Жиі қате: бүкіл тізімді қарамай, алғашқы сәйкестікті жеткілікті деп санау.

Мәтінде қате не теру қатесі кездессе, бізге айтыңыз

Пікірлер (0)

Әзірге пікір жоқ. Бірінші болыңыз.