Показаны сообщения с ярлыком выражения. Показать все сообщения
Показаны сообщения с ярлыком выражения. Показать все сообщения

11 апреля 2013 г.

Создание собственных версий функций zip(...) и map(None, ...)


В предыдущих постах мы создавали якобы свои функции zip и map . Но это не совсем то, что нам нужно, так как создавая одну из них мы использовали вторую - которая встроена в язык программирования Python.

Поэтому в этом посте мы это полностью исправим. Кстати в разных версиях, map работает по разному, вот некоторые примеры для Python 2.x и Python 3.0.


C:\misc> c:\python26\python
>>> map(None, [1, 2, 3], [2, 3, 4, 5])
[(1, 2), (2, 3), (3, 4), (None, 5)]
>>> map(None, ‘abc’, ‘xyz123’)
[(‘a’, ‘x’), (‘b’, ‘y’), (‘c’, ‘z’), (None, ‘1’), (None, ‘2’), (None, ‘3’)]

8 октября 2012 г.

Выражение


Инструкции выражений

В качестве инструкций выражения используются
обычно в двух ситуациях:
 - Для вызова функций и методов
 - Для вывода значений в интерактивной оболочке


Наиболее часто используемые в языке Python инструкции 
выражений.

Операция   -    Интерпретация
spam(eggs, ham)   -    Вызов функции
spam.ham(eggs)     -    Вызов метода

spam                             -    Вывод значения переменной в интерактивной
                                             оболочке интерпретатора

print(a, b, c, sep=’’)          -   Операция ввода в Python 3.0
yield x ** 2                       -    Инструкция выражения yield


Инструкции выражений  и непосредственное изменение объектов:


>>> L = [1, 2]
>>> L.append(3)     # Метод append изменяет сам список
>>> L
[1, 2, 3]
-----------------------------------------------------------


>>> L = L.append(4)    # Но метод append возвращает значение None, а не L
>>> print L            # Поэтому мы теряем весь список!
None

Такая операция  дает  неверный результат  –  такие  методы списка, как apendsort и reverse, всегда выполняют непосредственное изменение объекта, но они не возвращают список, который был изменен с их помощью. В действительности они возвращают объект None.

-----------------------------------------------------------