Архив рубрики: Python

Установка питона и пакетов

В этой статье я попытаюсь описать процесс создания готового python окружения и работу с пакетами на пользовательском уровне. Статья расcчитана на новичков (в основном для студентов, слушающих мои курсы).

Задачи обычно возникающие при установки питона и его пакетов:

  • Выбор дистрибутив питона и его установка
  • Выбор IDE
  • Поиск и установка пакетов

Кроме этого я пробегусь по этим полезным вещам:

 

Выбор дистрибутив питона и его установка

Если вы используете linux, то лучше использовать python идущий в пакетах — как правило это немного измененный cpython. Для windows можно выбирать между стандартным питоном и дистрибутивом от Active State. Последний содержит расширенную документацию и некоторые дополнительные библиотеки. Мы не будем рассматривать PyPy/Stackless/etc — ограничимся только CPython. Дальше нужно сделать выбор между двумя ветками — 3.2/3.3 и 2.7. Пока что с 2.7 у вас будет меньше проблем, но третья версия по поддержке уже подбирается достаточно близко. x86 и amd64 версии выбираем по вкусу. Установка и под windows и совершенно стандартна и не должна вызывать проблем. В linux питон уже почти 100% установлен.

 

Выбор IDE

Динамический характер языка делает написание функциональных IDE достаточно сложным, а высокая компактность кода и pythonic подход заметно уменьшает в них необходимость. Так что не сложные проекты можно делать в продвинутых текстовых редакторах — [notepad++], sublime text (или vim/emacs). Хотя новичкам IDE будут оказывать заметную помошь встроенной подсказкой и каким ни каким статическим анализом. Из IDE я бы выделил eclipse + pydev и платные PyCharm и KomodoIDE. Также есть Python tools for VS, которые добавляет поддержку cpython и ironpython в VS2010/VS2012.

Я бы советовал выбирать между sublime text и eclipse + pydev.

 

Поиск и установка пакетов

Пакеты/модули в python это файлы с расширениями py/pyc/pyo/(pyd или so), или директории с такими файлами. Также весь пакет может быть в одном архиве (только если пакет не содержит pyd/so файлы). По умолчанию пакеты устанавливаются в системную папку — PYTHON_ROOTlibsite-packages для windows и /usr/local/lib/pythonXX/dist-packages для ubuntu (XX — версия питона, PYTHON_ROOT — корневая папка установки python, как правило С:PythonXX)

Если вы используете linux, то можно использовать пакеты из дистрибутива — в Ubuntu/Fedora есть практически все. Иначе искать пакеты в основном стоит на pypi или с помощью google. Пакеты могут быть в трех основных форматах: архив, exe/msi, egg.

Архив нужно распаковать, в корневой папке должен быть файл setup.py. Если его там нет, то можно просто скопировать содержимое архива в директорию с пакетами. Если setup.py есть, то нужно выполнить python setup.py install. При этом следует использовать тот интерпретатор питона, в который вы хотите установить пакет. Если пакет не предоставляет модулей написанных на С/С++, то установка должна пройти без особенных проблем. Иначе python будет пытаться собрать компилируемые расширения. В linux такой процесс проходит чаще всего безболезненно (максимум требуется установка пакетов с заголовочными файлами для для используемых C библиотек), а вот в windows путь компиляции может быть достаточно трудным.

При установке в windows проще использовать уже собранный exe/msi файл. Для большинства пакетов они доступны на pypi или на сайте библиотеки, также много бинарных пакетов можно найти на pythonlibs. При загрузке обратите внимание на архитектуру и версию python. Для установки такие пакеты нужно запустить. Библиотеки не содержащие компилируемого кода уставливаются без проблем на обеих системах.

egg это формат пакетов одного из пакетные менеджеров питона — setuptools. Грубо говоря это zip архив с дополнительной информацией о пакете и его зависимостях. Более новой и активно развиваемой альтернативой setuptools является pip. pip использует код setuptools(или distribute) и не поддерживает egg. Оба этих менеджера умеют находить пакеты по имени на pypi, по URL и локально. Поддерживаются разнообразные форматы архивов и автоматическая установка зависимостей. pip умеет деинсталлировать пакеты и поддерживает установку из svn/git/mercurial.

Установка pip — www.pip-installer.org/en/latest/installing.html

Установка setuptools

Оба этих менеджера предоставляют команду easy_install, pip кроме этого предоставляет команду pip.

Использование (примеры команд без их вывода):

Без подсветки синтаксиса

# pip install pylint # установим pylint
# easy_install install -U pylint # обновить пакет
# pip install --upgrade simplejson
# pip uninstall simplejson # удалить
# pip install http://my.package.repo/SomePackage-1.0.4.zip
# pip install git+https://github.com/simplejson/simplejson.git
# pip install svn+svn://svn.zope.org/repos/main/zope.interface/trunk/

 

# pip install pylint # установим pylint
# easy_install install -U pylint # обновить пакет
# pip install --upgrade simplejson
# pip uninstall simplejson # удалить
# pip install http://my.package.repo/SomePackage-1.0.4.zip
# pip install git+https://github.com/simplejson/simplejson.git
# pip install svn+svn://svn.zope.org/repos/main/zope.interface/trunk/

 

virtualenv

virtualenv позволяет делать на одной машине несколько независимых инсталляций python, каждая из которых имеет свой интерпретатор, набор настроек и библиотек. Некоторые из таких окружений могут использовать системную папку с дополнительными пакетами. Кроме этого virtualenv позволяет устанавливать питон и пакеты пользователям без прав root.

Без подсветки синтаксиса

$ sudo pip install virtualenv # или sudo apt-get install python-virtualenv
$ virtualenv --distribute ENV_NAME # или python virtualenv.py --distribute ENV_NAME

—distribute заставить virtualenv установить distribute вместо setuptools.

 

$ sudo pip install virtualenv # или sudo apt-get install python-virtualenv
$ virtualenv --distribute ENV_NAME # или python virtualenv.py --distribute ENV_NAME

—distribute заставить virtualenv установить distribute вместо setuptools.

 

Эта команда создаст папку ENV_NAME внутри которой будет интерпретатор python ENV_NAME/bin/python и каталог для пакетов ENV_NAME/lib/pythonX.X/site-packages. ENV_NAME/bin/python будет настроен на поиск пакетов в ENV_NAME/lib/pythonX.X/site-packages. Также virtualenv устанавливает в новое окружение pip. Что-бы активировать это окружений нужно исполнить скрипт activate.

Без подсветки синтаксиса

$ source ENV_NAME/bin/activate
> ENV_NAMEScriptsactivate # для windows

 

$ source ENV_NAME/bin/activate
> ENV_NAMEScriptsactivate # для windows

 

Теперь команда python будет приводить к запуску питона из ENV_NAME/bin/python, то же относится и к pip. После окончания работы нужно выполнить deactivate. virtualenv включили в стандартную библиотеку начиная с python3.3

 

lint’ы

Линтами называют средства статического анализа по имени первой такой утилиты, которая находила странно написанные участки C кода, потенциально содержащие ошибки. Из-за динамического характера python сделать для него очень хороший линт невозможно, а даже просто хороший очень сложно. Ошибки при которых С программа даже не скомпилируется могут легко загнать в угол python линты. Но тем не менее значительную часть (а у начинающих — практически все) ошибок/опечаток они найдут.

Три основных lint’а для python это pylint, pychecker и pyflakes. Из них pylint, наверное, наиболее сообразительный. Кроме этого он имеет большое количество настроек, которые позволяют изменить особенности проверок. Также pylint проверяет стиль кода, используя шаблоны из конфигурационного файла и собирает полезную статистику. Плюс большая часть IDE и даже sublime имеют интеграцию с pylint.

По умолчанию pylint слишком требовательный так что начинать его использование стоит с подстройки конфига под себя, кроме этого иногда он дает ложные срабатывания.

Как более легкую альтернативу можно использовать pep8, проверяющий код на соответствие основному python стандарту кодирования.

 

ipython

Чуть подробнее о установке ipython. Под linux с правами root все просто (ubuntu):

Без подсветки синтаксиса

$ sudo apt-get install ipython ipython-doc ipython-notebook ipython-qtconsole python-zmq

 

$ sudo apt-get install ipython ipython-doc ipython-notebook ipython-qtconsole python-zmq

 

или

Без подсветки синтаксиса

$ sudo apt-get install --install-suggests ipython

 

$ sudo apt-get install --install-suggests ipython

 

ipython готов к запуску —

Без подсветки синтаксиса

$ ipython qtconsole # GUI консоль
$ ipython notebook  # Web интерфейс
$ ipython # консольный интерфейс

 

$ ipython qtconsole # GUI консоль
$ ipython notebook  # Web интерфейс
$ ipython # консольный интерфейс

 

Под windows все не так просто — нужно загрузить все пакеты и зависимости вручную и установить их. pip поможет не сильно, поскольку большая часть пакетов С расширения с внешними зависимости и собирать их будет лишней сложностью. Зависимости ipython (поскольку мы не будем использовать pip то их придется выяснять и устанавливать самостоятельно) можно определить двумя способами — найти в документации по установке или пытаться запускать ipython и смотреть на ошибки импорта. Из документации находим зависимости:

  • pyqt или pyside
  • pyzmq
  • tornado
  • pygments
  • pyreadline
  • distribute или setuptools

Бинарные версии всех этих пакетов есть в pythonlibs. Загружаем и ставим в любом порядке. После чего выбираем из:

Без подсветки синтаксиса

> С:Python2.7Scriptsipython.bat qtconsole # GUI консоль
> С:Python2.7Scriptsipython.bat notebook # Web интерфейс
> С:Python2.7Scriptsipython.bat # консольный интерфейс

 

> С:Python2.7Scriptsipython.bat qtconsole # GUI консоль
> С:Python2.7Scriptsipython.bat notebook # Web интерфейс
> С:Python2.7Scriptsipython.bat # консольный интерфейс

 

pythonanywhere.com

Если поставить питон совсем никак нельзя, то можно воспользоваться web консолью на указанном сайте. После регистрации можно бесплатно запустить 2 python/ipython консоли в браузере и пробовать python без установки.

Ссылки:
pypi.python.org/pypi/virtualenv
www.python.org/download
www.activestate.com/activepython/downloads
pypi.python.org/pypi
www.lfd.uci.edu/~gohlke/pythonlibs
www.pip-installer.org/en/latest/index.html
ipython.org/ipython-doc/stable/install/install.html
pychecker.sourceforge.net
pytools.codeplex.com
launchpad.net/pyflakes
www.python.org/dev/peps/pep-0008
pypi.python.org/pypi/pylint
pypi.python.org/pypi/pep8
www.jetbrains.com/pycharm
pydev.org
pypi.python.org/pypi/setuptools
www.sublimetext.com
www.activestate.com/komodo-ide
pythonanywhere.com

Исходники этого и других постов со скриптами лежат тут — github.com/koder-ua. При использовании их, пожалуйста, ссылайтесь на koder-ua.blogspot.com.

Автор: konstantin danilov

Модули и импорты

Для разбития программы на модули удобно использовать импорты.

Для импорта какого-либо модуля нужно написать:

import имя_модуля
Например, чтобы использовать математические функции:
import math
Доступ к какой-то функции:
модуль.имя_функции
Например:
math.sqrt(9) # вернёт 3.0
Для того, чтобы узнать, что есть в модуле, гуглите «python имя_модуля». Либо можем сделать так:
>>> dir(math)
['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']
Функция dir покажет список доступных имён в модуле.

Обычно модули находятся в папке место_установки_питонаLib. Можете зайти и посмотреть. Только вряд ли вы найдёте там математический модуль, поскольку он написан на C (банально из-за скорости).

Можно импортировать отдельные вещи из модуля, например:
from math import sqrt, pi
Тогда уже можно обращаться с ним просто, как к sqrt и pi:
>>> sqrt(9)
3.0
>>> pi
3.141592653589793

Можно импортировать и всё:
from math import *
Но это считают плохим стилем, могут быть конфликты имён. И при чтении чужого кода с такими импортами может быть непонятно, откуда взята та или иная функция.

Как же использовать импорты для разбития программы на модули?
В одной папке создадим следующие файлы:
> module.py
# coding: utf-8

def func():
    print «Successfully imported.»


> main.py
# coding: utf-8
import module
def main():
    module.func()
if __name__ == '__main__':
    main()
Итак, что же на самом деле делает импорт? Импорт выполняет файл, все функции, классы, переменные и т.д. теперь доступны там, где выполнялся импорт.

Здесь используется такая конструкция:
if __name__ == '__main__':
    main()
Это нужно для того, чтобы главная функция программы (main()) выполнялась только тогда, когда мы запускаем саму программу, а не, например, импортируем её.


Если из меня хуёвый писатель или вы что-то не поняли, пишите в комментарии или заходите в нашу jabber-конференцию: python-b@conference.jabber.ru

Автор: Бихтсэ
Дата публикации: 2012-09-16T08:14:00.003-07:00

Списки, строки, словари, кортежи, наборы.

Списки (list), строки (str, unicode), словари(dict), кортежи(tuple), наборы(set) похожи несколькими вещами. Во первых, они итерируемые (по ним можно пройти с конструкцией for, и не только). Во вторых, для доступа к элементам у этих объектов используется одинаковый синтаксис.

Приведу его на примере списка:
list = [0, 1, 2, 3, 4]
Итак, мы объявили список из 5 элементов.
Чтобы получить это длину, воспользуемся функцией len.
len(list) # возвратит 5
Для доступа к какому-либо элементу списка используются квадратные скобки. Важно помнить, что нумерация начинается с нуля.
>>> list[0]
0
>>> list[1]
1
>>> list[2]
2
>>> list[3]
3
>>> list[4]
4
>>> list[5]
Traceback (most recent call last):
  File ««, line 1, in
IndexError: list index out of range

Можно получать доступ к элементам с конца. list[-1] будет концом, list[-len(list)] будет началом. Для наглядности, взгляните на картинку (почему-то не отображается, так что вот вам ссылочка). Для примера, возьмём строку «spurdo».

Можно получить и несколько элементов списка. Опять же, возьмём для примера строку «spurdo». Для того, что бы получить несколько элементов, нужно написать так: список[откуда:докуда]. Например: «spurdo»[1:5] вернёт «purd». Если нужно от начала или до конца списка, то вместо индекса ничего не пишите. Например: «spurdo»[3:] вернёт «rdo». Можно указать и третье число — шаг.
Например:

>>> a = range(10)
>>> a[::2] # от начала до конца с шагом 2
[0, 2, 4, 6, 8]
Полезная вещь: получить перевернутый список можно так:

>>> a = range(10)
>>> a[::-1] # от начала до конца с шагом -1
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

Если что-то осталось вам непонятно, пробуйте в интерпретаторе или спрашивайте.

Списки

Списки записываются с помощью квадратных скобок. Например:
a = [3, 5, 9]
Пустой список, соотве
тственно:
a = []
Важный момент: списки могут содержать любые объекты, в том числе, другие списки.
Списки изменяемы. Для того, чтобы добавить элемент в список, нужно воспользоваться методом append. Можно, конечно, сложить старый список и элемент, но, на самом деле, в таком случае будет создан новый список.
Итак, добавление элемента:

>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]

Для удаления элемента из списка используем метод pop. Без аргумента он удалит (и возвратит) последний элемент списка, с аргументом он удалит (и возвратит) элемент списка под номером аргумента.
Например:

>>> a = [1, 2, 3, 4]
>>> a.pop()
4
>>> a
[1, 2, 3]
>>> a.pop(0)
1
>>> a
[2, 3]

Сортировка списка делается с помощью функции reversed, либо с помощью метода sort. Эти способы отличаются в том, что функция не изменит исходный массив, а метод изменит. Меньше слов, больше примеров:

>>> a = [5, 8, 4, 3]
>>> sorted(a)
[3, 4, 5, 8]
>>> a
[5, 8, 4, 3]
>>> a.sort()
>>> a
[3, 4, 5, 8]

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

>>> a = [5, 8, 4, 3]
>>> sorted(a, reverse=True)
[8, 5, 4, 3]
>>> a
[5, 8, 4, 3]
>>> a.sort(reverse=True)
>>> a
[8, 5, 4, 3]

Ещё полезные функции при работе со списками: sum, min, max. Не думаю, что нужно описывать, что они делают, попробуйте сами.

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

Строки

Строки создаются с помощью 'одинарных кавычек', «двойных кавычек». «»»Вот так
мы можем
создать строку в несколько линий»»». Эти способы равноценны. Если вы хотите, чтобы в вашей строке был символ, которым ваша строка начинается, то поставьте перед ним обратную косую черту. Вот так:
>>> «burdo»barde»
'burdo»barde'
Если вы хотите перевод строки, то напишите n в строке. Вот т
ак:
>>> a = «somenstring»
>>> print a
some
string
Табуляции соответствует t.

Строки неизменяемы. Что это значит на практике? Попробуем изменить какой-нибудь элемент строки.
>>> a = «spurdo»
>>> a[0] = «d»
Traceback (most recent call last):
  File ««, line 1, in
TypeError: 'str' object does not support item assignment
Всё. Больше этого ничего не значит. На практическое использование почти не влияет.
Основные методы при работе со строками:

relpace(x, y). Этот метод заменяет все x в исходной строке на y (возвращая новую строку).
Пример:

>>> a = «Hello, World!»
>>> a.replace(«World», «2ch»)
'Hello, 2ch!'
>>> a
'Hello, World!'

Исходная строка не изменилась.

find(x). Находит индекс первого вхождения x в строку. Если его нет, то возвращает -1.

Пример:

>>> a = «spurdo»
>>> a.find(«o»)
5
>>> a.find(«x»)
-1

Для перевода букв в строчные используйте метод lower, в прописные — upper. Работает даже с русскими символами.

>>> a = u»сПуРдО»
>>> print a.lower()
спурдо
>>> print a.upper()
СПУРДО

u обозначает unicode, потому что в питоне 2 стандартная кодировка для строк — ASCII. Так что не забывайте добавлять u. Кстати в третьем питоне все строки юникодовые.

Словари

Словарь — это связанный набор пар ключ-значение. В других языках они могут называться хеш-таблицами.
Объявляется словарь с помощью фигурных скобок:

a = {}
Либо сразу с парами:
a = {«spurdo»: «sparde», «ebin»: «xdd»}
Типы могут быть какими угодно.
Получение значений:

>>> a[«spurdo»]
'sparde'
>>> a[«ebin»]
'xdd'

Добавление значения предельно просто:
>>> a[1] = True

>>> a
{'ebin': 'xdd', 1: True, 'spurdo': 'sparde'}
Заметьте, что нов
ый элемент не добавился в конец. Это издержки словарей, они сделаны так, чтобы работать крайне быстро.


Кортежи

Кортеж — неизменяемый список (ну или почти список). Создаётся с помощью круглых скобок (хотя можно и без них).
>>> a = (3, 5, 9)
>>> a = 3, 5, 9
>>> a
(3, 5, 9)

Зачем они нужны? Например, выполнять параллельное присваивание.
>>> x, y = 3, 5
>>> x, y
(3, 5)
>>> x, y = y, x
>>> x, y
(5, 3)

Можно, например, сделать список кортежей для удобного представления информации:
>>> beatles = [(«Paul», 1942),
…     («John», 1940),
…     («George», 1943),
…     («Ringo», 1940)]
>>> beatles
[('Paul', 1942), ('John', 1940), ('George', 1943), ('Ringo', 1940)]

Если в функции нужно вернуть несколько значений, то удобно сделать это с помощью кортежа.
>>> def somefunc():
…     return 3, 5, 9
>>> somefunc()
(3, 5, 9)

Да, хуёвый пример, но в голову больше ничего не лезет.

Наборы

Набор — список, в котором нет повторяющихся значений.
Можно создать с помощью фигурных скобок (тогда нужно сразу написать значения), или с помощью функции set.
>>> a = {3, 5, 9, 1, 1, 1}
>>> a
set([1, 3, 5, 9])
Вот такие вот пироги. Понятия не имею, где это нужно.


Проверка на вхождение элемента во множество

Чтобы проверить, входит ли какой-либо элемент во множество, используется ключевое слово in. Возвращается True или False.
>>> a = [3, 5, 9]
>>> 3 in a
True
>>> 4 in a
False
>>> b = «spurdo»
>>> «s» in b
True
>>> «spur» in b
True
>>> «barde» in b
False


Вот и всё. Длинноватый пост получился, но, что поделать. Если вы что-то не поняли, пишите в комментарии или заходите в нашу jabber-конфу: python-b@conference.jabber.ru

Автор: Бихтсэ
Дата публикации: 2012-09-15T10:55:00.002-07:00

Условия и циклы

Условия

Для условий используются ключевые слова if, elif, else.

Общий вид:

if условие:
    действия
else:
    действия, если условие не выполнено

Использование elif:

if условие:
    действия
elif другое условие:
    другие действия

Условия записываются с помощью операторов ==, !=, <, >, <=, >= и так далее.
Пример использования
i = raw_input(«Write number: «)
if float(i) < 0:
    print «Number is below 0»
else:
    print «Number is greater or equal to 0»

Ещё можно записывать составные условия с помощью and, ornot).
Например:
i = float(raw_input(«Write number: «))
if i > 0 and i < 10:
    print «Your number is bigger than 0 and lower than 10»
else:
    print «Your number is lower than 0 or bigger than 10»

Циклы

Для циклов используются ключевые слова while и for.
Общий вид использования while:
while условие:
    действия

Например:

i = 0
while i < 10:
    i += 1

После выполнения этого участка кода i будет равно 10.

Пока выполняется условие, будут выполнятся действия.
Общий вид использования for:
for переменная in последовательность:
    действия
Где последовательностью может быть список, строка, словарь и так далее. Любые итерируемые объекты. Проходя через цикл, переменная каждый раз будет принимать следующее значение из последовательности.

Например:

for i in range(10):
    print i

Напечатает числа от 0 до 9 включительно.
Здесь используется функция range. При вызове range(n) будет возвращён список из n чисел, от 0 до n — 1. Если вызвать range(m, n), то будет возвращён список из чисел от m до n — 1. Если вызвать range(m, n, k), то будет возвращен список чисел от m до n-1, но уже с шагом в k. Попробуйте сами, экспериментируйте с интерпретатором.

Выход из цикла

Для выхода из цикла используется ключевое слово break.
Если команда break выполнилась, то цикл прерывается.
Пример:
for i in range(10):
    print i
    if i == 5:
        break

Напечатает числа от 0 до 5 включительно.

Задания:
1. Напишите программу, которая решает квадратные уравнения (без комплексных чисел). Пользователь вводит a, b, c, программа выводит корни, или пишет, что среди вещественных чисел их нет. Для квадратного корня можно возводить в степень 0.5, или использовать функцию из математического корня:
import math
math.sqrt(25) # вернёт 5
Если не помните, как решать квадратные уравнения, гуглите.

2. Напишите программу, которая будет печатать то, что ввёл пользователь, пока он не введёт какое-нибудь число или фразу. Для сравнения строк можно использовать операторы == и !=.
Пример:
spurdo
> spurdo
sparde
> sparde
ebin
> ebin
stop

Если что-то осталось непонятным или есть вопросы: пишите в комментарии или заходите в нашу jabber-конференцию: python-b@conference.jabber.ru

Автор: Бихтсэ
Дата публикации: 2012-09-14T06:20:00.000-07:00

Функции

Общий вид записи функций в питоне:

def имя_функции(аргументы):
    тело_функции
 
def обозначает define, то есть «определение».
В функциях используется ключевое слово return, функция возвратит то, что будет стоять после этого слова.
Например, функция квадрата числа будет выглядеть так:
 
def square(x):
    return x ** 2
Вызов этой функции будет выглядеть так:
square(5) # вернёт 25
 
Что можно прочитать, как «квадрат числа x это x во второй степени».
 
Функция может не принимать аргументы, например, с помощью следующей функции мы можем «бросить» игральную кость:
 
import random
 
def dice():
    return random.randint(1, 6)
 
Вызов этой функции:
dice()
 
Функция может и не содержать слова return, тогда она возвратит None.
 

Автор: Бихтсэ
Дата публикации: 2012-09-14T01:51:00.000-07:00

Ввод-вывод

Для взаимодействия с пользователем из консоли программа может использовать ввод-вывод. Всё очень просто: для вывода используем print, для ввода — raw_input.
Например:

i = raw_input(«Enter something: «)
print «You entered: » + i

Попробуйте выполнить эту программу.
Просто? Более чем, на мой взгляд. Но некоторые моменты требует прояснения:
raw_input(«Enter something: «) — строка здесь то, что получит пользователь программы при вводе.
print «You entered: « + i — плюс здесь выступает, как оператор конкатенации (склейки) строк.

Задание читателям: напишите программу, в которой пользователь должен ввести число, программа должна вывести квадрат этого числа. Для преобразования строки в целое число используйте функцию int, для преобразования в число с плавающей точкой — float. Обратно в строку можно перевести с помощью функции str.

Если у вас что-то не получилось, пишите в комментарии или спрашивайте в конференции: python-b@conference.jabber.ru

Автор: Бихтсэ
Дата публикации: 2012-09-13T03:54:00.000-07:00