Ответы пользователя по тегу Python
  • Можно ли сделать клон базового окружения в Anaconda Navigator?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Вроде как рекомендуют вот так через консольку делать:
    conda create --name <env_name> --clone base
    Сам не пробовал.
    Ответ написан
    Комментировать
  • Как изменить тон голоса в pyttsx?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    В pyttsx можно только выбрать другой голос. В зависимости от голоса тон будет различным.
    import pyttsx3
    engine = pyttsx3.init()
    voices = engine.getProperty('voices')
    for voice in voices:
        engine.setProperty('voice', voice.id)
        engine.say('Hello.')
    engine.runAndWait()
    engine.stop()


    Вариант
    Попробуйте поместить динамик в емкость с газообразным гелием. Тон должен повыситься.
    Ответ написан
    Комментировать
  • Что такое % в питоне?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    % возвращает остаток от деления. Ты делишь а % 60, получается остаток.
    Ответ написан
    Комментировать
  • Как правильно перекодировать текстовый файл utf-8 в Windows-1251?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Время тянется бесконечно долго

    Это 1251 отображенный как 1252. Т.е. ваша программа, читающая и отображающая текст, полагает, что это 1252 кодировка. Наверно, ей надо где-то подсказать в настройках, что она ошибается.
    Ответ написан
    Комментировать
  • Turtle не отвечает при запуске цикла while, как исправить?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Полагаю, вот тут вы найдете примеры, которые помогут построить вашу игру более удачно, без этих бесконечных циклов.
    Ответ написан
    Комментировать
  • Почему ошибка RuntimeError: main thread is not in main loop в python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    main thread is not in main loop

    означает, что основной поток отсутствует в основном цикле исполнения. Чтобы устранить ошибку, поместите основной поток в основной цикл.
    Ответ написан
  • Как убрать ненужные мне элементы из list?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    wolverine777 ,
    если уж вам нужны все повторы любых встречающихся последовательностей, то вот вам мой
    велосипедик
    s = "XXXXXXAGCCTGCCAAGCAAACTTCACTGGAGXXXXXXTGTGCGTAGCATGCTAGTAACTGCAXXXXXXTCTGAATCTTTCAGCTGCTTGTXXXXXXTGGGCCTCTCACAAGGCAGAGTGTCTTCATGGGACTTTGATATTTATTTTTGTACAACCTAAGAGGAACAAATCCTTTGACACTGACAAATTGGCTTCCATATTTTATACCTTAATCATCTCCATGTTGAATTCATTGATCAACAGTTTAAGAAAAAAAGATGTAAAAATGCTTTTAGAAAGAGAGGCAAAGTTATGCACAATAACTTCTCATGAAGTCACAGTTTGTTAAAAGTTGCCTTAGTTCACAATAAATAATTATGTATGCTCTATAATTTCAGTGA"
    import re
    viewed = {}
    for i, _ in enumerate(s):
        n = 0
        while n <= (len(s)-i):
            new_string = s[i:i+n]
            n += 1
            if len(new_string) > 1:
                if new_string not in viewed:
                    matches = re.split(new_string, s)
                    counter = len(matches) - 1
                    if counter > 1:
                        viewed.update({new_string: counter})
    print(viewed)

    Результат
    {'AA': 30,
     'AAA': 10,
     'AAAA': 3,
     'AAAAA': 2,
     'AAAAG': 2,
     'AAAG': 4,
     'AAAGA': 2,
     'AAAGT': 2,
     'AAAGTT': 2,
     'AAAT': 4,
     'AAC': 6,
     'AACA': 2,
     'AACT': 3,
     'AACTT': 2,
     'AACTTC': 2,
     'AAG': 9,
     'AAGA': 4,
     'AAGAG': 2,
     'AAGT': 3,
     'AAGTT': 2,
     'AAT': 11,
     'AATA': 3,
     'AATAA': 2,
     'AATC': 3,
     'AATT': 4,
     'AC': 17,
     'ACA': 9,
     'ACAA': 6,
     'ACAAA': 2,
     'ACAAAT': 2,
     'ACAAT': 2,
     'ACAATA': 2,
     'ACAATAA': 2,
     'ACAG': 2,
     'ACAGT': 2,
     'ACAGTT': 2,
     'ACAGTTT': 2,
     'ACC': 2,
     'ACCT': 2,
     'ACT': 6,
     'ACTG': 3,
     'ACTT': 3,
     'ACTTC': 2,
     'AG': 24,
     'AGA': 6,
     'AGAA': 2,
     'AGAAA': 2,
     'AGAG': 3,
     'AGAGG': 2,
     'AGC': 4,
     'AGCA': 2,
     'AGG': 3,
     'AGGC': 2,
     'AGGCA': 2,
     'AGT': 9,
     'AGTG': 2,
     'AGTT': 5,
     'AGTTT': 2,
     'AT': 29,
     'ATA': 7,
     'ATAA': 4,
     'ATAAT': 2,
     'ATAATT': 2,
     'ATAT': 2,
     'ATATT': 2,
     'ATATTT': 2,
     'ATC': 5,
     'ATCA': 2,
     'ATCT': 2,
     'ATG': 9,
     'ATGC': 4,
     'ATGCT': 3,
     'ATGT': 3,
     'ATGTA': 2,
     'ATT': 8,
     'ATTG': 2,
     'ATTT': 4,
     'ATTTT': 2,
     'CA': 29,
     'CAA': 10,
     'CAAA': 4,
     'CAAAT': 2,
     'CAAC': 2,
     'CAAG': 2,
     'CAAT': 2,
     'CAATA': 2,
     'CAATAA': 2,
     'CAC': 6,
     'CACA': 4,
     'CACAA': 3,
     'CACAAT': 2,
     'CACAATA': 2,
     'CACAATAA': 2,
     'CACT': 2,
     'CACTG': 2,
     'CAG': 5,
     'CAGT': 3,
     'CAGTT': 2,
     'CAGTTT': 2,
     'CAT': 7,
     'CATG': 4,
     'CC': 9,
     'CCA': 3,
     'CCAT': 2,
     'CCT': 6,
     'CCTT': 3,
     'CCTTA': 2,
     'CT': 25,
     'CTA': 3,
     'CTC': 4,
     'CTCA': 2,
     'CTCT': 2,
     'CTG': 6,
     'CTGA': 2,
     'CTGC': 3,
     'CTT': 11,
     'CTTA': 2,
     'CTTC': 4,
     'CTTCA': 2,
     'CTTT': 4,
     'CTTTG': 2,
     'CTTTGA': 2,
     'GA': 18,
     'GAA': 6,
     'GAAA': 2,
     'GAAT': 2,
     'GAC': 3,
     'GACA': 2,
     'GAG': 4,
     'GAGG': 2,
     'GAT': 3,
     'GC': 17,
     'GCA': 6,
     'GCAA': 2,
     'GCAAA': 2,
     'GCC': 4,
     'GCCT': 3,
     'GCT': 6,
     'GCTT': 3,
     'GG': 7,
     'GGA': 3,
     'GGC': 4,
     'GGCA': 2,
     'GGG': 2,
     'GT': 18,
     'GTA': 5,
     'GTAA': 2,
     'GTC': 2,
     'GTG': 3,
     'GTT': 7,
     'GTTA': 2,
     'GTTG': 2,
     'GTTT': 2,
     'TA': 24,
     'TAA': 10,
     'TAAA': 3,
     'TAAAA': 2,
     'TAAC': 2,
     'TAACT': 2,
     'TAAG': 2,
     'TAAGA': 2,
     'TAAT': 3,
     'TAATT': 2,
     'TAC': 2,
     'TAG': 4,
     'TAGT': 2,
     'TAT': 8,
     'TATA': 2,
     'TATG': 3,
     'TATGC': 2,
     'TATT': 3,
     'TATTT': 2,
     'TATTTT': 2,
     'TC': 21,
     'TCA': 11,
     'TCAC': 4,
     'TCACA': 3,
     'TCACAA': 2,
     'TCAG': 2,
     'TCAT': 4,
     'TCATG': 2,
     'TCC': 3,
     'TCCA': 2,
     'TCCAT': 2,
     'TCT': 7,
     'TCTC': 3,
     'TCTCA': 2,
     'TCTT': 2,
     'TG': 29,
     'TGA': 8,
     'TGAA': 3,
     'TGAAT': 2,
     'TGAC': 2,
     'TGACA': 2,
     'TGAT': 2,
     'TGC': 9,
     'TGCA': 2,
     'TGCC': 2,
     'TGCT': 4,
     'TGCTT': 2,
     'TGG': 4,
     'TGGG': 2,
     'TGT': 8,
     'TGTA': 3,
     'TGTT': 2,
     'TT': 29,
     'TTA': 9,
     'TTAA': 3,
     'TTAG': 2,
     'TTAT': 4,
     'TTATG': 2,
     'TTC': 8,
     'TTCA': 6,
     'TTCAC': 2,
     'TTCAG': 2,
     'TTCAT': 2,
     'TTG': 9,
     'TTGA': 4,
     'TTGAT': 2,
     'TTGT': 3,
     'TTT': 10,
     'TTTA': 4,
     'TTTAT': 2,
     'TTTC': 2,
     'TTTCA': 2,
     'TTTCAG': 2,
     'TTTG': 4,
     'TTTGA': 2,
     'TTTGT': 2,
     'TTTT': 3,
     'TTTTA': 2,
     'XT': 3,
     'XTG': 2,
     'XX': 12,
     'XXT': 3,
     'XXTG': 2,
     'XXX': 8,
     'XXXT': 3,
     'XXXTG': 2,
     'XXXX': 4,
     'XXXXT': 3,
     'XXXXTG': 2,
     'XXXXX': 4,
     'XXXXXT': 3,
     'XXXXXTG': 2,
     'XXXXXX': 4,
     'XXXXXXT': 3,
     'XXXXXXTG': 2}
    Ответ написан
    3 комментария
  • Всегда ли методу нужны скобки?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Через точечку - это атрибуты экземпляра какого-либо класса. Атрибут может быть либо параметром (как переменная или константа, только относящаяся к конкретному экземпляру, его собственный параметр), либо методом (встроенный инструмент, персональная функция экземпляра, позволяющий менять значения некоторых параметров экземпляра, либо ещё что-нибудь делать с этим экземпляром).

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

    То, что в вашем случае вывод одинаков, ничего не говорит о том, можно ли скобки использовать или не использовать. Это лишь внешне похожие проявления довольно различных процессов. Сейчас они похожи на выходе, но никто не гарантирует без тщательного анализа, что и дальше будет так же.
    Без скобок вы получаете значение. Со скобками - результат работы функции.
    Ответ написан
    Комментировать
  • Как отправить несколько JSON на один url?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    valerabiglove,
    вам надо сложить имеющиеся у вас словари (они же “JSONы») в список.
    Потом при помощи цикла перебирать элементы этого списка и подставлять их в переменную data и тут же внутри цикла вызывать свой отправляющий код, где эта переменная передается этому коду как параметр (так же, как у вас и сделано). Это реально первые несколько уроков любых бесплатных курсов Python.
    my_list = [{'a': 1}, {'a': 7}]
    for element in my_list:
        print(element)
    Ответ написан
    Комментировать
  • Какую ошибку допустила в цикле?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Набросал свой
    велосипедик
    def func(x, y):
        return not (((x > 1) and ((x + y) >= 6)) or (y >= 5))
    
    def count_func(n):
        counter = 0
        for x in range(n):
            for y in range(n):
                if func(x, y):
                    counter += 1
        return counter
    
    for n in range(100):
        print(n, count_func(n))
    Ответ написан
    Комментировать
  • Как создать пирамиду из папок?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Может, это поможет?
    Ответ написан
  • RuntimeWarning: coroutine 'TelegramBaseClient.connect' was never awaited tclient.connect()?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Вот эта строка, похоже, должна быть другой:
    result = tclient(GetDialogsRequest(
                     offset_date=last_date,
                     offset_id=0,
                     offset_peer=InputPeerEmpty(),
                     limit=chunk_size
                 ))


    Тут экземпляр класса TelegramClient вызывается как будто создается экземпляр из экземпляра. Я не знаю, можно ли так, и что тут хотели сделать.

    Возможно, просто забыли дописать вызов какого-то метода у tclient, к которому в скобках аргументы.

    Что-нибудь типа:
    result = tclient.some_method(GetDialogsRequest(
                     offset_date=last_date,
                     offset_id=0,
                     offset_peer=InputPeerEmpty(),
                     limit=chunk_size
                 ))
    Ответ написан
    Комментировать
  • Как добавлять новые данные в след строку csv?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Первое, что пришло в голову: загрузить существующий файл csv в какой-либо датафрейм, конкатенировать его с новым df и итог выгрузить в csv.

    Но можно и по-другому, можно выгружать новое во временный файл, потом его уже без pandas читать построчно и добавлять к существующему csv.

    Либо можно заморочиться и выгружать данные из df в открытый на дозапись csv. Но как именно это сделать, надо подумать.
    Ответ написан
    Комментировать
  • Как получать последние записи sqlite?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Перед print добавить
    search.reverse()
    Ответ написан
  • Почему я не могу получить доступ к атрибуту класса?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Вам надо разобраться, как работают импорты.
    Я взял ваш код, разложил по модулям (поименовал их как мне захотелось), импортировал из модулей классы и всё заработало.
    Например, в файле меню импорт выглядит так:
    from zm_window import Window

    а в файле zm_window.py - так:
    from zm_circle import Circle
    from zm_zm import Anaconda

    ну и так далее.

    Всё работает, как настоящее.
    607161b4b8858392343208.png
    Ответ написан
  • Как узнать, что ключ словаря это любая буква в Python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Коротко говоря, задача слишком развесистая, чтобы "в лоб" решить ее тем способом, который ты выбрал.
    Там, к примеру, возникает вопрос об отличии между LETTER и STRING - если ты понимаешь, о чем я. Если решать тем способом, который выбрал ты - это будет изрядное костылетворчество.
    Кроме того, у тебя не рассматриваются варианты, когда в STRING присутствуют знаки, пробельные символы и т.п.

    Но, в общем, с некоторыми допущениями (без различения LETTER и STRING) и с учетом исправления некоторых твоих опечаток и ошибок, я слегка приблизился к твоему заданию:
    код
    import unittest
    import string
    
    
    def make_answer(arg):  # собирает строку, как в ответах
        result = None
        for element in arg:
            subresult = ' '.join(element)
            if not result:
                result = subresult
            else:
                result = result + ', ' + subresult
        result += '.'
        return result
    
    
    def lex(line, keywords):  # функция
        ret = []
        lines = line.split()
        for number, line in enumerate(lines):
            if line in keywords:
                ret.append((line, keywords[line]))
            elif line in string.digits:  # если цифры
                ret.append((line, 'INT'))
            elif line.strip().isalpha():  # если буквы
                ret.append((line, 'LETTER'))
            else:
                ret.append((line, '?'))  # если неизвестен кейворд
        return ret
    
    
    class TestStringMethods(unittest.TestCase):  # Это тестирование функции let()
    
        def test_lex(self):
            """
            подает на вход функции строки - ключи словаря true_results,
            сравнивает результат со строками - значениями этого словаря
            """
            true_results = {'var one = 123': 'var VARIABLE, one LETTER, = ZNAK, 123 INT.',
                            'var hi = Hello world': 'var VARIABLE, hi LETTER, = ZNAK, Hello LETTER, world LETTER.',
                            'func Main ()': 'func MAIN WORD, Main LETTER, () PARENTS.'}
            for key in true_results.keys():
                self.assertEqual(make_answer(lex(line=key, keywords=KEYWORDS)), true_results[key])
    
    
    if __name__ == '__main__':
        KEYWORDS = {
            'var': 'VARIABLE',
            '=': 'ZNAK',
            '==': 'EQUAL',
            '>': 'GT',
            '<': "LT",
            '(': 'LPARENT',
            ')': 'RPARENT',
            '()': 'PARENTS',
            'class': "MAIN WORD",
            'func': 'MAIN WORD'
        }
        unittest.main()  # запускает тест

    Это не решение задачи, которую ты перед собой поставил, но это пример, как можно было бы решить некоторую часть вопросов, которые возникают. Не надо брать это за основу, но можно покопаться.
    Ответ написан
    Комментировать
  • Как сделать, чтобы введенное имя пользователя сохранилось в текстовом файле?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    filename = 'guest.txt'
    
    with open(filename, 'w', encoding='utf-8')) as file_object:
        file_object.write(input('you name?'))
    Ответ написан
    Комментировать
  • KeyError: при реализации алгоритма поиска в ширину, что я делаю не так?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    У graph судя по строчке graph["you"] = ["alice", "bob", "claire", "mam"]
    только один ключ - “you”
    Поэтому оно и не находит среди ключей словаря graph ключ “alice”.
    Ответ написан
    6 комментариев
  • Почему возникает ошибка в self.egg_base = (dirs or {}).get('', os.curdir)?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Видимо, в переменной dirs приходит строка. А у неё нет метода get.
    Поставь перед этой строкой где-нибудь проверку на isinstant(dirs, str) и если вернётся True - надо искать, как в dirs попадает строка.
    Ответ написан
    Комментировать
  • Как дописать что-то в конец строчки в файле, Python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Строчку можно складывать со строчкой.
    source_string = 'hello'
    result = source_string + ' world'
    print(result)

    Строчки в файле можно перебирать по-очереди и делать с ними нужное:
    file = 'hello\nmy name is'
    for line in file.splitlines():
        print(line)

    Надеюсь, из этого сможешь слепить что надо?
    Ответ написан
    4 комментария