• Знаете ли вы генератор цветов формата ff000000?

    @Span4ev Автор вопроса
    mayton2019, Это для игры. Хотел задать фоновый цвет с прозрачностью. Увы, просто указать opacity или типа того не получится. Даже rgba не смог указать, только вот в таком формате получилось.
    Под "сгенерировать" я имел ввиду некий цветовой круг, коих полно в инете, где можно покрутить свистелки-перделки-крутилки и получить код цвета для вставки. Как и в фошопе. Только вот не нашёл где есть такое с прозрачностью в формате hex
  • Знаете ли вы генератор цветов формата ff000000?

    @Span4ev Автор вопроса
    illuzor, Я так и думал. Пробовал.

    вот это прозрачный красный - ff00003f
    вот это - FF000000- ничто, как и AA000000

    если это красный - FF00003f
    то прозрачный чёрный это - 0000003f
    В итоге первые 2 символа отвечают не за прозрачность, и логика тут какая-то иная.
    В фотошопе 00003f - тёмно синий цвет, если рассуждать о том, что к обычному HEX цвету мы добавляем ещё два символа и ими манипулируем прозрачностью
  • Как присвоить переменным значения из списка через цикл?

    @Span4ev Автор вопроса
    Dr. Bacon, я же пояснил, что мне нужно понять, есть ли возможность в цикле пройтись по значениям и в самом цикле присвоить нескольким переменным разные значения или нет.
    Если невозможно, то вопрос закрыт.
  • Как получить кол-во атрибутов класса и передать атрибуты в словарь?

    @Span4ev Автор вопроса
    Dr. Bacon, Простите... )
    На самом деле я был уверен, что это один из тех вопросов, которые остаются без ответа в силу кол-ва описания задачи, её сложности и, возможно - косноязычности. Я и представить не мог, что люди откликнутся, да ещё и помогут, потому что на данный момент мне помогли со всем, что меня интересовало, на что я вообще не рассчитывал. Чёрт подери, обожаю форум хабра и его комьюнити.

    И не хотел, чтобы вопрос выглядел так, словно я хочу чтобы за меня написали кучу строк кода, потому что я действительно рассчитывал максимум получить ответы вида "ДА/НЕТ" на "возможно ли?" Отчасти для самоуспокоения, ведь если это выходит за рамки простоты решения задачи и мне скажут: "братец, это возможно, но нужно быть гуру в пайтоне, а не таким бездарем как ты", то я прибегну к простому решению - дублированию строк кода. Если скажут, что это "возможно и легче лёгкого, нужно лишь подучить пайтон" - я этим займусь. А если скажут, что это "невозможно, да и забей вообще", то я забью.
    Я сам видел кучу вопросов, где люди задают их таким образом, словно им что-то должны, словно для них должны написать кучу строк кода. А ответы под такими вопросами являлись ссылками на фриланс.
    Да и в целом - всё это моя вежливость, воспитание и уважение к людям и их времени, и дело не в отсутствии самоуверенности.
  • Как получить кол-во атрибутов класса и передать атрибуты в словарь?

    @Span4ev Автор вопроса
    Renpy, насколько я помню написал на пайтоне, но имеет свои особенности в плане синтаксиса, так что кое-что пересекается, кое-что имеет различия. Табуляция пайтоновская, то есть вложенные блоки кода определяются 4 пробелами. К тому же в Ренпай можно использовать чистый пайтон в блоках

    init python:
    pass

    Но вне блока init python есть различия, так что не всё что применимо в пайтоне корректно сработает в ренпае.

    Про не продуманную доменную модель не понял. Впервые сталкиваюсь с этим определением в пайтоне. Имеется ввиду что-то типа вложенности или ссылочной модели? В моём примере словарь, класс и цикл. Вроде всё по классике. Ну и в целом - всё это лишь пример для получения ответа, т.ч. примеры могут быть максимально упрощены (а то некоторые ради ответа по одной строке копипастят 200 строк кода)

    По поводу ООП - стараюсь. Я ещё учусь
  • Как получить кол-во атрибутов класса и передать атрибуты в словарь?

    @Span4ev Автор вопроса
    o5a, Глазам не верю... Я столько про классы читал и понятия не имел, что можно использовать в словаре кириллицу, зато очень хорошо помню правило "имена переменных должны быть написаны латиницей, и начинаться с букв или нижнего подчёркивания". Я такой "дерзости" и представить себе не мог.

    Невероятно простые и элегантные решения задачи, мне даже редактировать ключи не нужно с кириллицей. В Renpy всё корректно отображается, так что низкий поклон Вам, сэр )
    И второй пример это то, что я и искал, потому что он позволит использовать больше одного слова с пробелом.

    Благодарю великодушно!

    Вы могли бы написать это в ответе, чтобы я отметил его? Думаю, другим людям это так же может помочь.

    А то мне пришлось написать страшные штуки:
    frame:
            style 'stats_main_frame'
    
            vbox:
                for i in range(len(class_name.__dict__)):
    
                    hbox:
    
                        frame:
                            style_prefix 'stats_child_left_frame'
                            text str(list(class_name.__dict__.keys())[i].title())
                        frame:
                            style_prefix 'stats_child_right_frame'
                            text str(list(class_name.__dict__.values())[i])


    И как раз остановился на том, как бы использовать русские определения, отчаялся и уже думал что всё.
  • Как получить кол-во атрибутов класса и передать атрибуты в словарь?

    @Span4ev Автор вопроса
    Спасибо за наводку. Все ваши указанные пример не сработали, но вы дали нужное направление.

    class Person:
        def __init__(self, name, age):
            self.name = name
            self.age = age
        
    anna = Person('ANNA', 16)
    
    b = anna.__dict__.items() # или keys()
    n = len(anna.__dict__)
    
    print(b) # возвращает словарь: пара ключ-значение
    print(n) # возвращает число - длину массива


    Вот это помогло.
  • Можно ли использовать имя переменной, совпадающей с ключом в словаре?

    @Span4ev Автор вопроса
    Алан Гибизов,
    Разницы нет, результат одинаковый.
    Вот это мне сильно подозрительно. Сижу думаю, как такое может быть.


    Я вроде подписывал, что проверял в онлайн пайтон ide и у меня результат был одинаковый - ключи словаря менялись. Я ни в коем случае не спорю, что так правильно, потому что я не силён в пайтоне, просто констатирую факт со своим частным случаем в python online IDE.
  • Что может менять цветовой профиль windows 10?

    @Span4ev
    Тут много чего может быть, от каких-нибудь настроек в мониторе, до программ тиап nvidia GeForce Exp, фильтров, шейдеров для игр. У меня переодически тоже после загрузки экран светлеет, но я об этом только сейчас задумался ,птому что привык к этому, тк меня это устраивает ) Думаю это или настройки в винде (завышенная яркость) или nvidia GeForce Exp.
    Попробуйте подключить другой монитор и проверить, так хотя бы выясните, моник ли это.
    И поставьте в настройках винды что касается яркости/гаммы/констраста и т.д. на дефолт. Придётся пошагово исключать то да это
  • Правомерно ли мне отказывают обменять кулер для процессора?

    @Span4ev
    нельзя поменять если не понравился

    Можно вообще-то
  • Можно ли использовать имя переменной, совпадающей с ключом в словаре?

    @Span4ev Автор вопроса
    Алан Гибизов,
    Если вам не интересно разобраться в сути проблемы - так и скажите, или просто не отвечайте.

    Нет, то что я отвечал - это мой выбор. Я ни на кого эту ответственность не перекладываю. А вот про "разобраться в сути проблемы" - тут и я не понял. Про какую проблема говорите? Про Renpy? Да это не то, чтобы проблема, а скорее особенности синтаксиса, которые нужно узнать и запомнить. Что касается основного вопроса про одинаковые имена - это не проблема и вы мне уже дали на это ответ, за что ещё раз вам спасибо. Но если вы можете помочь в чём-то разобраться, то я только "за".

    По поводу этого:
    Где там какое имя передается в кавычках, и где оно может также без кавычек? Не уловил я…


    gg(my_dict, my_var)

    Вот здесь в обычном питоне (я не знаю, как его ещё назвать... Питон не в Renpy, короче ) я вызываю функцию и передаю туда два аргумента: словарь "my_dict" и ссылку "my_var" на объект 'key1'.
    И не важно, передаю я "my_var" в кавычках или без - функция всё равно выполняется (значение в словаре меняются).
    gg(my_dict, my_var) #1
    gg(my_dict, "my_var") #2

    Разницы нет, результат одинаковый.

    В моём случае, когда я вчера вызывал функцию в Renpy вот так и вот здесь:

    hovered   [Function(change_stats_dict, 'anna_info'), Show('statsDetail'), SetVariable('stats_detail', 1)]
         unhovered [Hide('statsDetail')]
         action    [Function(change_stats_dict, 'anna_info'), Show('statsDetail'), SetVariable('stats_detail_fixed', 1)]


    и передавал туда аргумент "anna_info" без кавычек, функция не работала нужным образом, точнее - никак не работала и ничего не менялось, из-за чего я грешил на цикл, а не на вызов функции. Ну или на что-нибудь ещё. То есть в последнем примере кода там хоть код и имеет много схожего с пайтоном, всё же это не классический синтаксис пайтона. Классический код пайтона будет в :

    init python:
    ....pass


    Поэтому и возникает путаница и непонимание в некоторых местах. Есть отличия, которые и порождают проблемы. Вы про это писали, про эту проблему?
  • Можно ли использовать имя переменной, совпадающей с ключом в словаре?

    @Span4ev Автор вопроса
    Благодарю. Простой и ясный ответ. А то в комментариях за этот вопрос я до сих оправдываюсь )
  • Можно ли использовать имя переменной, совпадающей с ключом в словаре?

    @Span4ev Автор вопроса
    Александр Нестеров,
    Ну, просто код у вас есть и запустить его проблем возникнуть не должно, поэтому предположил, что под вопросом "Можно ли использовать..." вы имели ввиду, приемлемо ли это с точки зрения "хорошего кода".

    Теперь понял вас.
  • Можно ли использовать имя переменной, совпадающей с ключом в словаре?

    @Span4ev Автор вопроса
    Алан Гибизов, как пример - мой предыдущий вопрос, но вот вам пример:

    def change_stats_dict(name):
    
            dic = stats_dict_names # здесь я уже после перестал передавать аргументы: словарь и значения, так и оставил
    
            for key in dic.keys():
                if key == name:
                    dic[key] = 1
                else:
                    dic[key] = 0
    
    screen stats_names():
        
        style_prefix 'statsNames'
        frame:
            margin(10,0)
            yalign .12
            
            vbox:
                if anna_meet:
                    textbutton 'Anna [stats_detail_fixed]':
                        if not stats_detail_fixed:
                            hovered   [Function(change_stats_dict, 'anna_info'), 
                                       Show('statsDetail'), SetVariable('stats_detail', 1)]
                            unhovered [Hide('statsDetail')]
                            action    [Function(change_stats_dict, 'anna_info'),
                                       Show('statsDetail'), SetVariable('stats_detail_fixed', 1)]
                        else:
                            hovered SetVariable('stats_detail_fixed', 0)
                            action [Function(change_stats_dict, 'anna_info'),
                                    Hide('statsDetail'), SetVariable('stats_detail_fixed', 0)]


    Обратите внимание на " [Function(change_stats_dict, 'anna_info') "
    я вызываю функцию и передаю туда аргумент 'anna_info'. Когда я бился над этой проблемой у меня было 4 аргумента, так что ситуация была сложнее в плане определения причины проблемы. А так как я ни черта не нашёл гайдов по тому, как сделать нужное мне меню навигации, то единственным вариантом оставалось качать все игры с подобной механикой, декомпилировать все скрипты и по кусочкам из кучи скриптов понимать, куда ведут ниточки, чтобы собрать общую картину, как это работает. И там в примере вызова функции я видел, как имя переменной передавалось в функцию без кавычек. На тот момент - это всё, что я знал о том, как вызывается функция в ренпай и как туда передаются аргументы - из чужой строки кода. Ну раз у него работает, то это то, что мне нужно. Я даже не стал изучать этот вопрос.
    Ну и стал вызывать функцию и передавать в неё аргумент так же. И не было никакого исключения, просто функция не давала нужного результата, из-за чего я 5 часов сидел и думал, что причина в цикле, т.к. я не силён в пайтоне.

    вот обычный пайтон:

    my_var = 'key1'
    
    my_dict = {
        'key1': 0,
        'key2': 1
    }
    
    print(my_dict)
    
    def gg(dic, name):
        for key in dic.keys():
            if key == name:
                dic[key] = 112
            else:
                dic[key] = 444
    
    gg(my_dict, my_var)
    
    print(my_dict)


    и это будет работать, хоть передавай имя функции в кавычках, хоть без (проверил в онлайн IDE)
    В ренпае не так. Вот вам пример. Исключения нет, просто нет результата. И из-за этого я несколько часов сидел в прострации и унынии, не понимая, куда копать, пока не НАТЫКАЛ нужный результат (за что меня упрекали, мол - "метод тыка - давайте теперь все будем работать методом тыка"). Это не единственный случай, просто не могу привести других примеров. А ещё в ренпае есть функция автоперезагрузки после изменения скрипта, но она работает криво и иногда сидишь и не понимаешь, отчего не работает, а потом перезагружаешь IDE и работает. Ренпай это не просто чистый пайтон с консолью, где всё очевидно. Здесь много подводных камней
  • Как перебрать словарь и изменить значение ключей?

    @Span4ev Автор вопроса
    Dr. Bacon, Вы упускаете важную деталь - все люди разные и у них разные когнитивные способности, а так же могут возникать разные обстоятельства, физическое состояние, условия и множество факторов. Кому-то что-то даётся легко, а другому - сложно. Кто-то один раз посмотрел и запомнил, а кто-то 20 раз видел и пробовал, но возможно из-за плохой памяти, физической травмы или подступающей болезни Альцгеймера он не может запомнить. Ещё есть недосып, болезни, недомогание, невнимательность и куча всего. Не стоит судить по себе, стоит предполагать, что не все люди равны в плане когнитивных способностей и интеллекта
  • Можно ли использовать имя переменной, совпадающей с ключом в словаре?

    @Span4ev Автор вопроса
    Алан Гибизов, Спасибо вам огромное за то, что объяснили. Я просто уже плохо соображаю, так что морально не в силах идти и читать про словари. Я сегодня несколько часов пытался перебрать словарь с нужным мне результатом, так что начитался про них до тошноты несоображающей сонной головой) Видеть их не могу, как и читать про этот нюанс) Хотел почилить.
    Вопрос возник потому что я в движке Renpy хотел использовать очень удобные, ясные и лаконичные имена переменных, ровно как и в словаре. Но в ренпае если возникнет конфликт, то сразу я могу о нём и не узнать, что как раз и происходило до этого несколько часов к ряду... Я передавал в функцию строковый аргумент без кавычек (как видел в одном примере), но никакого исключения не получал. Функция просто не отрабатывала должным образом. И я не думал, что проблема в кавычках и ковырял другое. Вот и с именам гипотетически может возникнуть та же история, после того, как я заготовлю их несколько десятков
  • Можно ли использовать имя переменной, совпадающей с ключом в словаре?

    @Span4ev Автор вопроса
    Александр Нестеров, дело в том, что это не просто пайтон, а пайтон в ренпай. И это заготовки на будущее. Так что это может сразу не выползти на поверхность, как конфликт. А ещё до этого вопроса я 5 часов пытался решить одну проблему, так что я настолько вымотан (хотя здесь подошло бы другое слово), что я просто хочу задать вопрос, чтобы мне ответили "ДА/НЕТ". Чтобы почувствовать крупицу счастья и пребывать в расслабленном состоянии. Я думал для таких вещей этот форум и существует, чтобы знающие люди помогали таким как я. Тем более ответ на мой вопрос либо "да", либо "нет" - 2-3 раза стукнуть по клаве.
    А так, руководствуясь вашим отношением, можно на любой вопрос ответить "ну сами попробуйте" или "идите учите матчасть". Не понимаю вашего отношения. Быстрее было бы вам ответить на мой вопрос, чем упрекать.
  • Как перебрать словарь и изменить значение ключей?

    @Span4ev Автор вопроса
    User, Натыкал =)

    for key in dic.keys():
                if key == name:
                    dic[key] = 1
                else:
                    dic[key] = 0

    Наконец-то... Это работает. Спасибо за помощь
  • Как перебрать словарь и изменить значение ключей?

    @Span4ev Автор вопроса
    Я погорячился с предложением. Это штука не работает, я затупил и не сразу это понял
  • Как перебрать словарь и изменить значение ключей?

    @Span4ev Автор вопроса
    не, это не то. Эта штука не работает.
    Тут тогда должно быть что-то типа:

    for key in dic:
        if dic[key] == name:
            ? = x


    или типа такого:

    for key, value in dic.items():
                if dic[key] == name:
                    dic[value] = x
                else:
                    dic[value] = y