]]> ]]>

CPython

Реализация языка программирования Python

Основная реализация Python на языке C, мэйнстрим разработки. Версия диалекта языка определяется по реализации CPython. Поколение 3.X (“Python 3000”) не совместимо с предыдущими версиями транслятора. Реализация не может эффективно загружать работой многопроцессорные и многоядерные компьютеры с помощью потоков (thread) из-за глобальной блокировки интерпретатора. В стандартную библиотеку добавлен модуль multiprocessing для параллельного программирования, который запускает задания в отдельных процессах операционной системы.

Примеры:

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

]]>

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