Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
6.7 kB
19
Indexable
from random import choice


questions_dict = {
    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: "Я можу легко відключитися від переживання неприємностей."
}

answers_dict = {
    -3: "Повністю не згоден",
    -2: "В основному не згоден",
    -1: "Почасти не згоден",
    1: "Частково згоден",
    2: "В основному згоден",
    3: "Повністю згоден"
}

class Question:
    def __init__(self, q_type, number) -> None:
        self.q_type: int = q_type
        self.number: int = number
        self.answer: int = None

scale_1 = [Question(1, x) for x in (1, 2, 4, 17, 19, 25)]
scale_2 = [Question(2, x) for x in (3, 7, 8, 10, 18, 30)]
scale_3 = [Question(3, x) for x in (5, 6, 13, 14, 16, 22)]
scale_4 = [Question(4, x) for x in (9, 11, 20, 21, 23, 28)]
scale_5 = [Question(5, x) for x in (12, 15, 24, 26, 27, 29)]

scales = (scale_1, scale_2, scale_3, scale_4, scale_5)

class Person:
    def __init__(self, name, surname) -> None:
        self.name = name
        self.surname = surname
        self.answers = []

    def generate(self, a, b, c, d, e):
        for scale, needed in zip(scales, (a, b, c, d, e)):
            final = []
            while True:
                my_answers = []

                for question in scale:
                    q = question
                    q.answer = choice((-3, -2, -1, 1, 2, 3))
                    my_answers.append(q)

                sum_of = sum(answer.answer for answer in my_answers)

                if sum_of == needed:
                    final.append(my_answers)
                    break

            self.answers.extend(final)
        
        self.answers = [item for sublist in self.answers for item in sublist]
        self.answers = sorted( self.answers, key=lambda x: x.number )

#a = Person("Ivan", "Ivanko")
#a.generate(7, 13, 13, 8, 7)

#for answer_set in a.answers:
#    for answer in answer_set:
#        print( f"{questions_dict[answer.number]}\n{answers_dict[answer.answer]}" )


if __name__ == '__main__':

    print("Кішко-генератор, введіть дані у форматі 'Іван Іванович Іванов 7 7 7 7 7'...")


    while 1:

        parsed_input = input( "Мяу: " ).split(" ")

        ( name, otch, surname, a, b, c, d, e ) = parsed_input

        pers = Person( name, surname )
        pers.generate( int(a), int(b), int(c), int(d), int(e) )

        print("\n\n\n*************************************************************************************\n")
        print("Діагностика 'емоційного інтелекту' (Н. Холл)\n\n\n")
        print(f"ПІБ: {pers.name} {otch} {pers.surname}\n")

        for q in pers.answers:
            print( f"{q.number}. {questions_dict[q.number]}" )
            print( f"Відповідь: {answers_dict[q.answer]} [{q.answer}]" )
        
        print()

Leave a Comment