Ответы пользователя по тегу Python
  • Почему возникает исключение "One of the parameters specified was missing or invalid"?

    aRegius
    @aRegius
    Python Enthusiast
    Попробуйте в словаре ключ 'messages' изменить на 'message'
    Ответ написан
  • Почему не работает этот код?

    aRegius
    @aRegius
    Python Enthusiast
    В переменной symbols, на мой взгляд, смысла особого нет, ввиду наличия модуля punctuation.

    Проверку на наличие символа/ов можно сделать при помощи list comprehension, например, и, в зависимости от результата, выводить, условно, Да или Нет.

    Итого, попробуйте:
    >>> from string import punctuation
    >>> def check_spec_characters(text):
    	     res = [i for i in punctuation if i in text]
    	     if res:
    		        print('YES')
    	     else:
    		        print('NO')
    
    >>> text = 'Expression syntax is straightforward: the operators +, -, * and / work as expected'
    >>> check_spec_characters(text)
    YES
    >>> text = 'Expression syntax is straightforward the operators work as expected'
    >>> check_spec_characters(text)
    NO

    Если нужны также сами найденные символы, просто добавьте переменную res в print к выводу:
    ......
    if res:
        print('Special characters found in text: {}'.format(res))
    ......
    >>> text = 'Expression syntax is straightforward: the operators +, -, * and / work as expected'
    >>> check_spec_characters(text)
    Special characters found in text: ['*', '+', ',', '-', '/', ':']
    Ответ написан
    2 комментария
  • Как получить список имен переменных в функции с помощью ast?

    aRegius
    @aRegius
    Python Enthusiast
    func.__code__.co_varnames

    >>> def my_func():
    	     x = 'spam'
    	     y = 5
    	     print(x*y)
    	
    >>> my_func.__code__.co_varnames
    ('x', 'y')
    Ответ написан
    Комментировать
  • Как на Python Сделать свою сортировку?

    aRegius
    @aRegius
    Python Enthusiast
    Добрый день, Олег.

    Свою сортировку, реально, можно делать как угодно, в зависимости от задачи: и sort(), и sorted(), и слайсы, и пр. Что касается вашего конкретного примера с картами, вот, например, простой вариант:
    >>> symbols_start = '23456789TJQKA'
    >>> symbols_heap = 'A926K'
    >>> symbols_heap_sort = ''.join(i for i in symbols_start if i in symbols_heap)
    >>> symbols_heap_sort
    '269KA'
    Ответ написан
    4 комментария
  • Python 3 | Как правильно сортировать список из чисел и строк?

    aRegius
    @aRegius
    Python Enthusiast
    Пробуйте:
    >>> import re
    >>> data = ['15', 5, '34k', 'de', '120', 40, 18.6, 've', 'v8', 'v200', 'a10c', 'a5b']
    
    # Выбираем числа и строки, с чисел начинающиеся
    >>> numbers_mix = [i for i in data if str(i)[0].isdigit()]
    >>> numbers_mix
    ['15', 5, '34k', '120', 40, 18.6]
    
    # Сортируем
    >>> digit = '(\d+)'
    >>> numbers_mix_sort = sorted(numbers_mix, key=lambda x: int(re.split(digit, str(x))[1]))
    >>> numbers_mix_sort
    [5, '15', 18.6, '34k', 40, '120']
    
    # Выбираем оставшиеся строки
    >>> text_mix = [i for i in data if i not in numbers_mix]
    >>> text_mix
    ['de', 've', 'v8', 'v200', 'a10c', 'a5b']
    
    #Сортируем
    >>> text_mix_sort = sorted(text_mix, key=lambda x: (re.split(digit, x)[0], int(re.split(digit, x+'0')[1])))
    >>> text_mix_sort
    ['a5b', 'a10c', 'de', 'v8', 'v200', 've']
    
    # Итого
    >>> result = numbers_mix_sort + text_mix_sort
    >>> result
    [5, '15', 18.6, '34k', 40, '120', 'a5b', 'a10c', 'de', 'v8', 'v200', 've']
    Ответ написан
    2 комментария
  • Как использовать свои функции в ipython --pylab?

    aRegius
    @aRegius
    Python Enthusiast
    Напишите свою функцию:
    def my_func():
            return 'This is my func result'

    Сохраните в модуле, скажем, my_file.py
    Положите в директорию, находящуюся в Python module search path (или сделайте свою и добавьте).
    Пользуйтесь (через import my_file или from my_file import my_func ):
    In [1]: import my_file
    
    In [2]: result = my_file.my_func()
    
    In [3]: result
    Out[3]: 'This is my func result'
    
    In [4]: from my_file import my_func
    
    In [5]: result = my_func()
    
    In [6]: result
    Out[6]: 'This is my func result'
    Ответ написан
    Комментировать
  • Что такое @view_config?

    aRegius
    @aRegius
    Python Enthusiast
    Данная строчка означает, что соответствующая (обрамленная этим декоратором) вьюха вызывается при методе запроса GET.
    Сам декоратор @view_config, в общем, используется для определения тех или иных параметров (передаваемых ему в качестве аргументов) вызова view.
    Ответ написан
    Комментировать
  • Как исключить из диапазона число в языке Python?

    aRegius
    @aRegius
    Python Enthusiast
    Добрый день!

    Если чисел три:
    >>> a = 1
    >>> b = 5
    >>> c = 3
    >>> x_min, x_avg, x_max = sorted((a, b, c))
    >>> x_min
    1
    >>> x_max
    5
    >>> x_avg
    3

    Если больше трех:
    >>> a = 1
    >>> b = 5
    >>> c = 3
    >>> d = 2
    >>> x_min, *x_avg, x_max = sorted((a, b, c, d))
    >>> x_min
    1
    >>> x_max
    5
    >>> x_avg
    [2, 3]
    Ответ написан
    Комментировать
  • Python: как найти "общие" части среди элементов списка?

    aRegius
    @aRegius
    Python Enthusiast
    Привет.
    Пробуйте.
    # my_list = your_list
    >>> import itertools
    >>> grouped_values = []
    >>> my_values = []
    >>> value = ''
    >>> for _, group in itertools.groupby(my_list, len):
    	        grouped_values.append(list(group))
    	
    >>> zipped_values = [list(zip(*i)) for i in grouped_values]
    >>> for i in zipped_values:
    	        for u in i:
    		            if len(set(u)) == 1:
    			                value += u[0]
    		            else:
    			                my_values.append(value)
    			                value = ''
    			                break
    # for i in my_values: print(i)
    Ответ написан
    Комментировать
  • Книги по Python для начинающих?

    aRegius
    @aRegius
    Python Enthusiast
    Доброго, Кузя!
    решил окончательно, холивары не нужны

    Отличный выбор и правильная позиция, так держать! :)

    Лутц - хорош. Лично мне он очень нравится. Лишь хочу дополнить:
    1. Я бы начинал с Доусона. Доусон крайне практичен, компактен, легко читаем и интересен для новичка. Он поможет довольно быстро стартовать. После него Лутц "зайдет" гораздо проще.
    2. Если у вас все в порядке с английским (а если нет, то это должен быть пункт № 1 в списке приоритетов), то ищите 5-е издание Лутца (одна из моих настольных книг).
    Успехов!
    Ответ написан
    2 комментария
  • Как заключить одно сложное выражение if-if в другое?

    aRegius
    @aRegius
    Python Enthusiast
    Почему бы не воспользоваться циклом while, создав конструкцию наподобие:
    while True:
        question = int(input('Введите число: '))
        # some code
        if question == some_value:
            break

    Например:
    while True:
        question = int(input('Введите число: '))
        if question == 1:
            print('I am 1')
        elif question == 2:
            print('I am 2')
        elif question == 3:
            break
    input()
    Ответ написан
    Комментировать
  • Как использовать в модуле random python3 данные с ввода клавиатуры?

    aRegius
    @aRegius
    Python Enthusiast
    Доброго!
    Оберните оба inputint-ом:
    a = int(input('Введи число '))
    ...
    Ответ написан
    2 комментария
  • Вывод на Python?

    aRegius
    @aRegius
    Python Enthusiast
    Оберните list-ом:
    list(combinations)
    Ответ написан
    2 комментария
  • Что означает acpitz в контексте температуры пк?

    aRegius
    @aRegius
    Python Enthusiast
    Ответ написан
    Комментировать
  • Как Подсчитать количество предложений в тексте - Python?

    aRegius
    @aRegius
    Python Enthusiast
    >>> import re
    >>> def sent_count(text):
    	        new_text = re.sub(r'[.!?]\s', r'|', text)
    	        sent_num = len(new_text.split('|'))
    	        print('В этом тексте {} предложения.'.format(sent_num))
    
    	
    >>> text = 'Чиполлино был сыном Чиполлоне. И было у него семь братьев: Чиполлетто и так далее – самые подходящие имена. Люди они были хорошие, да только не везло им в жизни.'
    >>> sent_count(text)
    В этом тексте 3 предложения.
    >>> text = "Чиполлино был сыном Чиполлоне?! И было у него семь братьев: Чиполлетто и так далее – самые подходящие имена. Люди они были хорошие, да только не везло им в жизни... Правда?"
    >>> sent_count(text)
    В этом тексте 4 предложения.
    Ответ написан
    Комментировать
  • В чем отличие pypiwin32 от pywin32?

    aRegius
    @aRegius
    Python Enthusiast
    Pypiwin32 is a repackaging of pywin32 to use sane packaging tools (namely
    wheels). As of March 2015, pywin32 is available on PyPI in the wheel format. That means it can be installed by pip. Note that in order to get the PyPI version, we must tell pip to install package pypiwin32, not pywin32.
    Ответ написан
    2 комментария
  • Почему в Питоне нельзя складывать строки?

    aRegius
    @aRegius
    Python Enthusiast
    Можно, но это некрасиво/плохо читаемо. Много лишнего "шума": плюсы, кавычки, экранирование, все это вперемешку с переменными, а значит более error prone...

    Судите сами:
    >>> name = "NAME"
    >>> input_path = "INPUT_PATH"
    
    >>> print("\""+name+"\" - ERROR! File not found in \""+input_path+"\"")
    "NAME" - ERROR! File not found in "INPUT_PATH"
    
    # не лучше ли, "мальчики-налево, девочки-направо" ?
    >>> print('"{0}" - ERROR! File not found in "{1}"'.format(name, input_path))
    "NAME" - ERROR! File not found in "INPUT_PATH"


    Плюс ко всему, допустим, вам нужно добавить пусть даже всего одну переменную между словами "File" и "not". Ну, к примеру, пусть еще раз имя ненайденного файла name. В приведенном вами варианте, мы еще больше "устрашим" себя и своих коллег кодом, осознание которого требует нечеловеческой концентрации:
    >>> print("\""+name+"\" - ERROR! File \""+name+"\" not found in \""+input_path+"\"")
    "NAME" - ERROR! File "NAME" not found in "INPUT_PATH"


    В то время как применяя метод format() все, что нам нужно - добавить дополнительную пару curly braces:
    >>> print('"{0}" - ERROR! File "{0}" not found in "{1}"'.format(name, input_path))
    "NAME" - ERROR! File "NAME" not found in "INPUT_PATH"


    Согласитесь, выгода очевидна.
    Ответ написан
    7 комментариев
  • Истина в Python?

    aRegius
    @aRegius
    Python Enthusiast
    Предлагаю заменить вопросительный знак на восклицательный!
    Ответ написан
    Комментировать
  • Как вывести числа в пермешку?

    aRegius
    @aRegius
    Python Enthusiast
    В зависимости от контекста, два варианта на выбор:

    1. Функция sample.
    >>> import random
    >>> numbers = range(100)
    >>> random.sample(numbers, 10)
    [0, 14, 94, 93, 22, 7, 45, 20, 61, 3]
    >>> random.sample(numbers, 10)
    [72, 73, 26, 11, 19, 71, 76, 45, 80, 23]


    2. Функция shuffle.
    >>> numbers = list(range(10))
    >>> random.shuffle(numbers)
    >>> numbers
    [2, 1, 7, 6, 9, 4, 0, 8, 3, 5]
    >>> random.shuffle(numbers)
    >>> numbers
    [1, 6, 7, 9, 3, 8, 2, 5, 4, 0]
    Ответ написан
    Комментировать
  • Есть ли книги по ФП в python3?

    aRegius
    @aRegius
    Python Enthusiast
    Ответ написан
    Комментировать