]]> ]]>
Править | Обсудить | История

Python

Русское название:
Пайтон (чаще Питон)
Дата создания:
1990
Создан под влиянием:
Повлиял на:
Парадигма:
Типизация:
Принятые расширения файлов:
.py, .pyc, .pyo
Реализации и версии (свернуть все | развернуть все):
Язык программирования

Интерпретируемый объектно-ориентированный язык программирования высокого уровня с динамической типизацией, автоматическим управлением памятью и удобными высокоуровневыми структурами данных, такими как словари (хэш-таблицы), списки, кортежи. Поддерживает классы, модули (которые могут быть объединены в пакеты), обработку исключений, а также многопоточные вычисления. Питон обладает простым и выразительным синтаксисом. Язык поддерживает несколько парадигм программирования: структурное, объектно-ориентированное, функциональное и аспектно-ориентированное.

Философия языка:

  • Красивое лучше уродливого.
  • Явное лучше неявного.
  • Простое лучше сложного.
  • Сложное лучше усложнённого.
  • Последовательное лучше вложенного.
  • Разрежённое лучше, чем плотное.
  • Удобочитаемость существенна.
  • Частные случаи не настолько существенны, чтобы нарушать правила.
  • Однако практичность важнее регулярности.
  • Ошибки никогда не должны умалчиваться.
  • Если явно не указано — умалчивать.
  • В случае неоднозначности сопротивляйтесь искушению угадать.
  • Должен существовать один — и, желательно, только один — очевидный способ.
  • Хотя он может быть с первого взгляда неочевиден, если ты не голландец (намёк на Гвидо ван Россума)
  • Сейчас — лучше, чем никогда.
  • Но никогда — часто бывает лучше, чем прямо сейчас.
  • Если реализацию идеи тяжело объяснить, она плоха.
  • Если реализацию идеи легко объяснить, она может быть хороша.
  • Пространства имён — великолепная идея, их должно быть много!

(описание взято из Википедии)

Элементы синтаксиса:

Комментарий до конца строки #
Регистрозависимость да
Регулярное выражение идентификатора переменной [_a-zA-Z][_a-zA-Z0-9]*
Присваивание значения переменной =
Объявление переменной variable
Объявление переменной с присваиванием значения variable = value
Группировка выражений ( ... )
Блок блоки выделяются отступами (пробелы или табуляции)
Равенство is
Неравенство is not
Тождественное равенство ==
Тождественное неравенство != <>
Сравнение < > <= >= cmp
Определение функции def f(p1, p2, ...): ...
Вызов функции f(a, b, ...)
Вызов функции без параметров f()
Последовательность ; или конец строки
Если - то if condition: ...
Если - то - иначе ... if condition else ...
Бесконечный цикл while True:
Цикл с предусловием while condition : ...
Цикл for - next для диапазона целых чисел с инкрементом на 1 for i in xrange(1, 11, 1) или for i in xrange(1, 11)
Цикл for - next для диапазона целых чисел с декрементом на 1 for i in xrange(10, 0, -1)

IDE/Редакторы:

Примеры:

Hello, World!:

Пример для версий Python 2.x
print "Hello world"

Hello, World!:

Пример для версий Python 3.x
print ("Hello, world!")

Квадратное уравнение:

Пример для версий Python 2.6.5
import math
import sys

A = float(raw_input("A = "))
if A == 0:
    print "Not a quadratic equation"
    sys.exit()

B = float(raw_input("B = "))
C = float(raw_input("C = "))

D = B * B - 4 * A * C
if D == 0:
    print "x =", -B / 2.0 / A
    sys.exit()
if D > 0: 
    print "x1 =", (-B + math.sqrt(D)) / 2.0 / A
    print "x2 =", (-B - math.sqrt(D)) / 2.0 / A
else:
    print "x1 = (", -B / 2.0 / A, ",", math.sqrt(-D) / 2.0 / A, ")"
    print "x2 = (", -B / 2.0 / A, ",", -math.sqrt(-D) / 2.0 / A, ")"

CamelCase:

Пример для версий Python 2.6.5

Используются функции стандартной библиотеки translate и title.

Для функции title все не-буквы считаются разделителями слов, так что нет необходимости предварительно заменять их пробелами.

non_letters = ''.join(c for c in map(chr, range(256)) if not c.isalpha())

def camel_case(s):
    return s.title().translate(None, non_letters)

print camel_case(raw_input())

Факториал:

Пример для версий Python 2.6.5

Используется итеративный способ вычисления факториала.

def factorial(n):
    if n == 0:
        return 1
    
    f = 1
    for i in range(1, n + 1):
        f *= i
    return f

for n in range(16 + 1):
    print "%d! = %d" % (n, factorial(n))

Факториал:

Пример для версий Python 2.6.5

Используется рекурсивное определение факториала.

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

for n in range(16 + 1):
    print "%d! = %d" % (n, factorial(n))

Числа Фибоначчи:

Пример для версий Python 2.6.5

Используется рекурсивное определение чисел Фибоначчи.

def fibonacci(n):
    if n < 3:
        return 1
    else:
        return fibonacci(n - 1) + fibonacci(n - 2)

for n in range(1, 16 + 1):
    print "%i," % fibonacci(n) ,
print "..."

Факториал:

Пример для версий Python 3.x

Используется функциональное определение факториала.

import functools

factorial = lambda n: functools.reduce(lambda a, b: a * b, range(1, n + 1), 1)

for n in range(16 + 1):
    print "%d! = %d" % (n, factorial(n))

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам