• 2 вопроса по функциям. Python?

    @zelan
    Кратко обо мне не получится.
    Списки в питоне передаются по ссылке. Это значит, что передавая список в функцию, будет меняться переданный список, а не создаваться "копия" внутри функции.

    Если же ты хочешь создавать новый список, то в функцию надо передавать полную(глубокую) копию исходного списка, или создавать такую копию внутри функции и выполнять операции над ней.
    Ответ написан
    6 комментариев
  • Почему программа не работает?

    @fireSparrow
    Если вы хотите, чтобы у вас именно открылось окно Ворда с файлом в нём, то посмотрите эту ссылку:
    Как запустить файл excel из python?
    Ответ написан
    Комментировать
  • Хорошая практика для Python?

    aRegius
    @aRegius
    Python Enthusiast
    Здравствуйте!

    Лутца читать лучше после Доусона. А вот читая Доусона, вы и сделаете первый шаг к тому, чтобы не "тупить в экран", если, конечно, подойдете к работе (именно работе, а не просто чтению) с этой книгой серьезно - там достаточное количество интересных и практичных задач.
    Ответ написан
    4 комментария
  • Используют ли python в игровой индустрии?

    @vilgeforce
    Раздолбай и программист
    EVE online, 4-я цива определенно используют Питон.
    Ответ написан
    Комментировать
  • 2 примера: генератор списка и yield - разницы не видно. Некорректные примеры?

    @deliro
    В добавок к ответу Pavel Denisov вброшу такой вариант:
    def forever(lst):
        while True:
            for item in lst:
                yield item

    Будет йелдить бесконечно элементы списка, если список закончится - заново. Генератором генератора (generator comprehension) такого не добьёшься. В общем, generator comprehension - это как лямбды. Сокращённая запись для удобства, ведь намного удобнее и нагляднее написать
    ','.join(str(x) for x in lst)
    Чем
    def str_gen(lst):
        for item in lst:
            yield str(item)
    
    ','.join(str_get(lst))

    Хотя, суть одна.
    Но некоторые вещи обычным generator comprehension не реализовать.

    P.S. Генератор списков создаёт список. Это вот так: [x**2 for x in range(5)]
    Ответ написан
    2 комментария
  • 2 примера: генератор списка и yield - разницы не видно. Некорректные примеры?

    @lega
    В данном случае, генератор списков - это по сути частный случай yield.

    yield позволяет множественный вход и выход из функции, это позволяет делать разные возможности, например потоковая передача данных или "корутины" для асинхронных приложений.
    Ответ написан
    Комментировать
  • Как правильно импортировать модуль в python 3.5?

    Duha666
    @Duha666
    У вас themiy.py написан неправильно, о чем и говорит Python при импорте.
    Конкретнее в нем должно быть написано что-то такое:
    a = 'miy'
    b = 'mua'
    c = 'biy'
    print(a, b, c)
    Ответ написан
    5 комментариев
  • Как запустить файл excel из python?

    TomasHuk
    @TomasHuk Автор вопроса
    В итоге нашел четыре способа для запуска любых файлов (правда у всех общая проблема - не запускаются файлы, если есть пробелы в имени или пути):
    1. Самый простой и правильный, через subprocess:
    import subprocess
    subprocess.call("d:\\2014.xlsx", shell=True)

    или
    import subprocess
    subprocess.Popen("d:\\2014.xlsx", shell=True)

    Нашел в интернете:
    Для запуска команд системы используется две функции subprocess.call() и subprocess.Popen(). Основное отличие этих функций между собой: функция subprocess.call() блокирует выполнение сценария до получения ответа, в то время как функция subprocess.Popen() - нет.
    subprocess.call() - используется, если нужно просто запустить команду, а вывод от нее сохранять не требуется.
    subprocess.Popen() - используется, если требуется захватить вывод команды

    Все ОК, просто и четко.
    2. Другой отличный вариант:
    os.startfile('recomendations.log')
    Эта функция открывает файл с помощью программы, указанной в реестре Windows для файлов этого типа.
    3. Через win32com.client и WScript.Shell:
    import win32com.client
    shell = win32com.client.Dispatch("WScript.Shell")
    shell.Run('d:\meridian.jpg')

    4. Метод, который не советую, через os:
    import os
    os.system(r'd:\2014.xlsx')

    Выскакивает окно cmd.exe что плохо.
    Ответ написан
    Комментировать