Начинающему использовать Python

Bash, Python и другие языки программирования в системном администрировании и сами по себе

Начинающему использовать Python

Сообщение Al Ср фев 24, 2010 12:39 pm

Десять ценных подсказок новичку в Python

Kunal Deo. Пруф: http://www.linuxuser.co.uk/news/ten-ess ... beginners/


1. Запуск Питоньих скриптов.
В большинстве UNIX-систем это делается так:

Код: Выделить всё
    $ python mypyprog.py


2. Запуск Питоньих скриптов из интерактивного интерпретатора
Вводите строки одну за другой в интерактивном режиме и анализируйте вывод. Запустить интерактивный интерпретатор можно так:

Код: Выделить всё
    $ python
    kunal@ubuntu:~$ python
    Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41)
    [GCC 4.3.3] on linux2
    Type “help”, “copyright”, “credits” or “license” for more information.
    >>> <type commands here>


Такая штука >>> - это приглашение командной строки Python-интерпретатора. Помните, что Python очень серьезно относится к отступам. Если неправильно отступать в теле функции, цикла и т.д., будет сообщение об ошибке.

3. Динамическая типизация
В Java, C++, других хорошо типизированных языках нужно явно задавать типы возвращаемых значений и аргументов. Python - это язык с динамической типизацией. Тут нет необходимости явно определять тип чего бы то ни было. Определение типа базируется на виде данных, определяемом в момент присвоения.

4. Python-определения
Python использует перевод строки для разделения операторов и двоеточие с отступами для отделения блоков кода (то есть тел циклов, функций и т.д.). Большинство других языков использует точку с запятой и фигурные скобки для этих целей.

5. Операторы == и =
Python использует ‘==’ для сравнения и ‘=’ для присвоения.

6. Конкатенация строк
Для слияния строк можно использовать ‘+’ по типу этого примера:

Код: Выделить всё
    >>> print ‘kun’+’al’
    kunal


7. Метод __init__
Метод __init__ вызывается как только создается объект экземпляра класса. Этот метод удобен для производства всяких действий инициализации при создании объекта экземпляра. Это аналог конструктора в C++, C# и Java.

Код: Выделить всё
    [Example]
    class Person:
       def __init__(self, name):
          self.name = name
       def sayHi(self):
          print ‘Hello, my name is’, self.name
          p = Person(‘Kunal’)
          p.sayHi()

    [Output]
    [~/src/python $:] python initmethod.py
    Hello, my name is Kunal


8. Модули
Для сохранения управляемости кода при его разрастании возникает желание разбить его на просто отлаживаемые блоки. Практически это означает разбить на разные файлы. Питон позволяет задать определения функций и классов в отдельном файле и затем импортировать этот файл в основную программу. Расширение имен файлов модулей должно быть .py

Код: Выделить всё
    [Example]
    # file my_function.py
    def minmax(a,b):
       if a <= b:
          min, max = a, b
       else:
          min, max = b, a
       return min, max
   
    [Module Usage]
    import my_function
    x,y = my_function.minmax(25, 6.3)


9. Имена, заданные в модуле
Встроенная функция ‘dir()’ может быть использована для вывода имен, определенных в модуле. Возвращает сортированный список имен.

Код: Выделить всё
    [Example]
    >>> import time
    >>> dir(time)
    [‘__doc__’, ‘__file__’, ‘__name__’, ‘__package__’, ‘accept2dyear’, ‘altzone’, ‘asctime’, ‘clock’, ‘ctime’, ‘daylight’, ‘gmtime’, ‘localtime’, ‘mktime’, ‘sleep’, ‘strftime’, ‘strptime’, ‘struct_time’, ‘time’, ‘timezone’, ‘tzname’, ‘tzset’]


10. Встроенная документация модуля
Встроенную документацию модуля (если есть) можно просмотреть с помощью .__doc__.

Код: Выделить всё
    [Example]
    >>> import time
    >>> print time.clock.__doc__
    clock() -> floating point number


В этом примере вызов возвращает информацию о функции clock() модуля time.
Al
 
Сообщения: 124
Зарегистрирован: Пн окт 22, 2007 9:41 pm

Re: Начинающему использовать Python

Сообщение Al Чт фев 25, 2010 12:41 pm

Другие десять подсказок новичку в Python

Пруф: http://www.linuxuser.co.uk/tutorials/te ... thon-tips/


1. Передача аргументов в скрипт Python
Питон позволяет обратиться к любому аргументу командной строки, с помощью которой был запущен скрипт. Все ее элементы хранятся в списке sys.argv.

Код: Выделить всё
    import sys
    print sys.argv



2. Загрузка модулей или команд при старте скрипта.
Вы можете загрузить предопределенные модули или команды во время старта скрипта с помощью переменной окружения $PYTHONSTARTUP. В качестве значения переменной может быть ссылка на файл, содержащий инструкции по загрузке модулей и команд, необходимых для выполнения текущей программы.


3. Вы можете использовать встроенную функцию datetime для конвертации строки в объект даты.

Код: Выделить всё
    [Syntax]
    datetime.strptime(date_string, format)



4. Конвертация списка в строку для отображения.
Вы можете конвертировать список в строку любым из следующих методов.

1-й метод:

Код: Выделить всё
    >>> mylist = [‘spam’, ‘ham’, ‘eggs’]
    >>> print ‘, ‘.join(mylist)
    spam, ham, eggs



2-й метод:

Код: Выделить всё
    >>> print ‘\n’.join(mylist)
    spam
    ham
    eggs



5. Автодополнение команды по нажатию Tab в интерпретаторе Python
Для того, чтобы заработало автодополнение, нужно в ваш файл .pythonrc (или файл, который вы указали читать при старте Python) добавить следующее:

Код: Выделить всё
    import rlcompleter, readline
    readline.parse_and_bind(‘tab: complete’)


Автодополняются имена функций, методов и переменных.


6. Утилита документации Python
Вы можете вызвать окошко для поиска документации, используя команду:

Код: Выделить всё
    $ pydoc -g


Для того, чтобы это работало, должен быть установлен пакет python-tk.


7. Сервер документации Python
Вы можете запустить встроенный HTTP сервер на специальном порту локальной машины. Это даст доступ к хорошо оформленной и полной документации:

Код: Выделить всё
    $ pydoc -p <portNumber>



8. Программное обеспечение разработчика
Несколько действительно полезных инструментов:

IDLE: Встроенная интегрированная среда Python IDE, с автодополнениями, всплывающими подсказками для функций, редактированием файлов.
IPython: Альтернативная оболочка для Python с автодополнениями и другими полезными функциями.
Eric3: Графическая среда Python IDE с автодополнениями, обозревателем классов, встроенной оболочкой и отладчиком.
WingIDE: Коммерческая Python IDE, доступная разработчикам открытого ПО под свободной лицензией.

9. Выполнение фукнций во время выгрузки интерпретатора Python.

Код: Выделить всё
    [Example]
    def sum():
       print(4+5)
    def message():
       print(“Executing Now”)
       
    import atexit
    atexit.register(sum)
    atexit.register(message)
   
    [Output:]
    Executing Now
    9



10. Конвертирование десятичных целых чисел в двоичные, шестнадцатиричные и восьмеричные.
Python предоставляет для этих операций простые в использовании функции: bin(), hex() и oct()

Код: Выделить всё
    [Example]
    >>> bin(24)
    ‘0b11000’
    >>> hex(24)
    ‘0×18’
    >>> oct(24)
    ‘030’
Al
 
Сообщения: 124
Зарегистрирован: Пн окт 22, 2007 9:41 pm

Re: Начинающему использовать Python

Сообщение Al Ср апр 07, 2010 12:19 am

Еще другие десять подсказок новичку в Python

1. Конвертирование любой кодировки в UTF-8

Код: Выделить всё
    data.decode(“input_charset_here”).encode(‘utf-8’)



2. Удаление дубликатов из списков
Для удаления дубликатов из списка поместите каждый его элемент в словарь в качестве ключа, например со значением none, и затем проверьте dict.keys().

Код: Выделить всё
    from operator import setitem
    def distinct(l):
       d = {}
       map(setitem, (d,)*len(l), l, [])
       return d.keys()


И намного проще с помощью семантики set:

Код: Выделить всё
>>> l = [1,2,2,3,4,4,5]
>>> set(l)
set([1, 2, 3, 4, 5])



3. Циклы do-while
Поскольку Python не предоставляет конструкций do-while или do-until (возможно, пока не предоставляет), вы можете использовать следующий подход:

Код: Выделить всё
    while True:
       do_something()
       if condition():
          break



4. Определение системной платформы
Для выполнения платформно-зависимых функций полезно определить, где выполняется интерпретатор. Для этого используется ‘sys.platform’.

Код: Выделить всё
    [Example On Ubuntu Linux]
    >>> import sys
    >>> sys.platform
    ‘linux2’

    [On Mac OS X Snow Leopard]
    >>> import sys
    >>> sys.platform
    ‘darwin’



5. Включение и отключение сборки мусора
Используйте модуль ‘gc’ для включения и отключения сборки мусора.

Код: Выделить всё
    [Example]
    >>> import gc
    >>> gc.enable
    <built-in function enable>
    >>> gc.disable
    <built-in function disable>



6. Для решения проблем производительности используйте модули на С
В сложных случаях полезно использовать модули на С для решения проблем узких мест в производительности.

Код: Выделить всё
    [Example]
    cPickle instead of Pickle, cStringIO instead of StringIO .



7. Вычисление максимума, минимума и суммы любого списка или последовательности (итератора)
Для этого имеются встроенные функции:

Код: Выделить всё
    max: Returns the largest element in the list.
    min: Returns the smallest element in the list.
    sum: This function returns the sum of all elements in the list. It accepts an optional second argument: the value to start with when summing (defaults to 0).



8. Реализация дробной последовательности
Экземпляр дроби может быть создан с помощью следующего конструктора:

Код: Выделить всё
Fraction([numerator [,denominator]])



9. Выполнение математических операций
Модуль ‘math’ предоставляет множество математических функций. Все они работают с целыми и вещественными, за исключением комплексных чисел. Для комплексных используется специальный модуль, называемый ‘cmath’.
Например:

Код: Выделить всё
    math.acos(x): Возвращает arccos(x).
    math.cos(x): Возвращает cos(x).
    math.factorial(x) : Возвращает х факториал.



10. Работа с массивами
Модуль ‘array’ предоставляет эффективный путь использования массивов в ваших программах. Модуль определяет массив следующим образом:

Код: Выделить всё
    array(typecode [, initializer])


Единожды создав объект массива, вы можете применять к нему ряд полезных методов. Наиболее важные:

Код: Выделить всё
    myarray.count(x): Возвращает количество вхождений x в массив.
    myarray.extend(x): Добавляет х в конец массива.
    myarray.reverse(): Инвертирует порядок массива на обратный.
Al
 
Сообщения: 124
Зарегистрирован: Пн окт 22, 2007 9:41 pm


Вернуться в Bash, Python и прочие

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1