Hayvanları tahmin etme oyunu

Merhaba,
Aşağıya kodları bırakıyorum ama şuan yol haritasını düşünmeye çalıştığım için pek bir şey yazmadım.
Tamamen yapmak istediğim şey şu:
Kullanıcının ekranına bazı hayvan isimleri ve bu hayvanların bir takım özellikleri yazdırılacak

print("""
1- Sürünebilir
2- Yürüyebilir
3- Koşabilir
4- Uçabilir
5- Beneklidir
6- İki ayaklıdır
7- Dört ayaklıdır
8- Süt verir
9- Mavi rengi görür
10- Yırtıcı hayvandır
11- Çok hızlıdır
""")

``` Kullanıcı bu listeden mesela ineği
tarif etmek istiyorsa, ineğin özelliklerini
 sıra numarasıyla girecek.
Daha sonra program kullanıcının girdiği 
verilere göre en yakın hayvanın 
ismini ekrana basacak.

Programı asıl oluşturan kısım; 
Kullanıcının girdiklerine göre en yakın
 hayvanı bulmak.
 Tahmin etme algoritmasını 
şöyle düşündüm;
 girilen özellikleri bir listede 
tutup sonra bu listede gezerek
 ayrı ayrı her hayvanın özellikleriyle
 karşılaştırıp uygun olanları 
"Şu hayvana uyan özellikler"
 gibi hepsine ayrı liste oluşturmak. 
Daha sonra da bu listelerin içinde 
gezerek en fazla öğeye sahip olan 
listeyi döndürmek. Bunu `max()`
 fonksiyonuyla yapabileceğimi
 düşünüyordum fakat `key`
 parametresine `len` argümanını 
vermediğiniz sürece `max()`
 fonksiyonu sadece sayılar içinde 
çalışıyor ki her ihtimalde de işimi 
görmüyor. Bana en çok öğeye
 sahip olan liste lazım.

Tabii ki bu tahmin etme kısmı belki
 de daha farklı yöntemler ile yapılabilir
 ama benim aklıma gelen ilk yöntem 
bu oldu. Siz farklı bir yöntem
 düşündüyseniz kesinlikle duymak isterim.
Umarım açıklayabilmişimdir, 
yardımlarınız için şimdiden teşekkürler.

reis yazıları daha okunabilir yapsana 2. satırdan sonra gözüm kanadı okuyamadım :smiley:

Bilgisayardan yazdığım için mobilde öyle gözüküyordur, düzelttim

KNN Algoritması ile yapılabilir. Yani nitelikleri belirli olan elamanlar arasındaki uzaklığı veriyor. İneğin niteliklerini ilk önce programa girersin. Daha sonra kullanıcıdan nitelik belirtmesini istersin. Kullanıcının verdiği nitelikleri senin önceden oluşturduğun niteliklerle uzaklığını KNN ile hesaplayıp tespit ederin. Hiç kullanmadım bu algoritmayı python onuda söyleyeyim.

Sizin tavsiyeniz yapay zeka alanıyla ilgili gibi, bu basit proje için fazla zaman alacaktır diye düşünüyorum, teşekkürler.

Bu soruna cevap ararken bir eksiklik farkettim, kullanıcı her seferinde Yürüyebilir, Koşabilir, Uçabilir vs. şeklinde uzun uzun yazmamalı. Sözlük kullanarak kullanıcıdan sadece rakam girmesini istemeliyim ve girilen rakama karşılık gelen key ve value 'ler üzerinden işlem yapmalıyım, daha pratik olması açısından. Aşağıda kodları bırakıyorum, bu kodlarda ilgili hayvanın listesine tüm özellikler ekleniyor fakat benim amacım girilen rakama karşılık gelen özelliğin eklenmesi.

# -*- coding: utf-8 -*-

#################################################
# İNEK
inek = {"2": "Yürüyebilir",
        "7": "Dört ayaklıdır",
        "3": "Koşabilir",
        "8": "Süt verir",
        "5": "Beneklidir"}
inek_ozellik = []

# BAYKUS
baykus = {"2": "Yürüyebilir",
          "3": "Uçabilir",
          "9": "Mavi rengi görür"}
baykus_ozellik = []

# ÇİTA
cita = {"2": "Yürüyebilir",
        "7": "Dört ayaklıdır",
        "5": "Beneklidir",
        "3": "Koşabilir",
        "11": "Çok hızlıdır"}
cita_ozellik = []

# ASLAN
aslan = {"2": "Yürüyebilir",
         "7": "Dört ayaklıdır",
         "3": "Koşabilir",
         "10": "Yırtıcı hayvandır"}
aslan_ozellik = []
#################################################


def girdileriAl():
    print("""
            1- Sürünebilir
            2- Yürüyebilir
            3- Koşabilir
            4- Uçabilir
            5- Beneklidir
            6- İki ayaklıdır
            7- Dört ayaklıdır
            8- Süt verir
            9- Mavi rengi görür
            10- Yırtıcı hayvandır
            11- Çok hızlıdır
            """),
    girdilerListesi = []
    
    for i in range(1, 6):
        question = input(str(i) + ".Ozellik: ")
        if question not in girdilerListesi:
            girdilerListesi.append(question)

    for x in girdilerListesi:
        if x in inek.keys(): # if inek.get(x) == True şeklinde denediğimde hiçbir şey yapmıyor
            if inek.values() not in inek_ozellik:
                inek_ozellik.append(inek.values())
                
        if x in baykus.keys():
            if baykus.values() not in baykus_ozellik:
                baykus_ozellik.append(baykus.values())
                
        if x in cita.keys():
            if cita.values() not in cita_ozellik:
                cita_ozellik.append(cita.values())
        
        if x in aslan.keys():
            if aslan.values() not in aslan_ozellik:
                aslan_ozellik.append(aslan.values())
        
    print("""
    İnek: {}
    Baykus: {}
    Cita: {}
    Aslan: {}""".format(inek_ozellik, baykus_ozellik, cita_ozellik, aslan_ozellik))

girdileriAl()

Buldum, şu kısımda append(hayvan_ismi.values()) hata var.
values() fonksiyonu bütün içeriği yazdırıyor fakat ben bunu
get(input_degeri) olarak değiştirirsem. Döngü o an hangi
değer üzerindeyse sadece onu ekliyor.

if x in inek.keys():
    if inek.values() not in inek_ozellik:
        inek_ozellik.append(inek.get(x))