Python

Матеріал з Файна Меморії
Перейти до навігації Перейти до пошуку
Python™

Python (Пайтон, Пітон) - інтерпретована мова програмування створена Гвідо Ван Россумом. Дуже зручна, але деякі цим зловживають. <ref>Наприклад 1 <= a < 10 and 1 <= b < 20</ref> Названа на честь британскої скетч-группи "Монті Пайтон".

Огляд[ред.]

Коментарі[ред.]

Лише до кінця рядка - "#комент".

Імена[ред.]

Імена процедур та змінних мають починатись з латинської букви і далі можуть містити букви і цифри. НЕ можуть містити пробілів.

Форматування коду[ред.]

Пітон - друга мова у якій використовуються символи табуляції для виділення блоків, а не begin'и і end'и як в поцкалі чи фігурні дужки як в Сі. Багато сюшників, що не осилили такий синтаксис, вийобуються наче це незручно. Брехня! По-перше це зменшує кількість коду(як мінімум на 1 рядок), по-друге символ табуляції набирається на клаві набагато швидше ніж begin'и і end'и, і по-третє ти все одно ідентиш код, то яка різниця? <ref>А якщо не індентиш, ти - школота.</ref>

Типи даних[ред.]

В Пітоні присутні звичайні для мов програмування типи: Int, Str, Bool і т.д., але окрім цього він взяв дещо він функціональних мов програмування(Lisp, Haskell): списки, ассоціативі массиви <ref>в яких значення знаходиться за ключем(Наприклад: {ключ:'значення'})</ref>, lambda і т.д. <ref>А ще рядок Юнікод: u'Значення'.</ref>

Основні оператори[ред.]

Умовний оператор if, оператори циклів while і for і т.д. До речі, цикл for одна з сильних сторін Пітона. Він відрізняється від циклів в, наприклад Сі, тим що, замість того ітеруватися поки якась змінна не набуде значення чи функція поверне потрібне значення, ми керуємо ітерованим об'єктом(список і т.д.).

if[ред.]

Оператор if схожий на сюшний, тільки умову не треба брати в дужки:

if x == 'fuck off':
    DoSomething()
else:
    DoSomethingElse()

Цикли[ред.]

While у пітоні звичайний:

while x == 'fuck off':
    doSomeThing()

А от for тут з цукром:

x = ['fuck', 'off']#список - ітерований об'єкт
for i in x:
    print i#виведе всі елементи списку х

Математичні, логічні[ред.]

Оператор Значення
== х дорівнює у
!= х не орівнює у
= присвоїти змінній х значення у
> х більше у
< х менше у
>= х більше або дорівнює у
<= x менше або дорівнює y
is об’єкт х є посиланням на об’єкт у

Директиви[ред.]

Починаючи з Пітон 2.3 на початку сорсу треба вказувати кодування символів:
# -*- coding: utf-8 -*-. Хоча якщо не юзаєш українські чи москальські символі в програмі, це робити не обов'язково.

Зрізи[ред.]

Також, одна з фіч патона — зрізи, які прийшли ще з фортрана. Він працює десь так:

x[звідки:куди:крок]#  x - рядок, список, або set

Це дозволяє отримувати об’єкти, або букви з списків і рядків. Це також дозволяє перевертати списки та рядки, ось так:

x = "Shit!"
print(x[::-1])#виведе "!thiS"

Тобто зріз з кінця рядка, до початку, з кроком -1.

Переваги[ред.]

  • Код на Пітоні виглядає просто і зрозуміло, хоча для Сюшника й трохи незвично.
  • ГЕНЕРАТОРИ!!!!1 <ref>Це, до речі, теж з функціональних мов.</ref>
  • Код на Пітоні також короткий.
  • Зрізи.

Недоліки[ред.]

  • Неможливість модифікації стандартних класів.
  • У порівнянні з компільованими мовами, низька швидкість виконання програм. <ref>Хоча Пітон теж можна компілювати. freeze'ом.</ref>


Графічні бібліотеки[ред.]

  • Tkinter - epic fail. Гівно.
  • wxPython - графічна бібліотека на основі wxWidgets.
  • і т.д. Тисячі їх!


Реалізації[ред.]

Реалізацій у Пітона достатньо, ось основні:

  • Ну, звісно ж, оригінальна реалізація by Gvido Van Rossum.
  • Jython - реалізація Пітона на Жабі. Одне незрозуміло - навіщо комусь знадобилось реалізувати Пітон на тормозній Жабі??


Приклади коду[ред.]

print"Hello, world!!!"

{{#if: |Шаблон:1 cell table row }}

або

print("Hello, world!")

{{#if: |Шаблон:1 cell table row }}

для Python3k.

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


І використання:
fib(5)
5


Використання[ред.]

Використовується достатньо широко: в комп'ютерних іграх <ref>Наприклад Civilization.</ref>, прикладних програмах та іншому.

Посилання[ред.]

Примітки[ред.]

<references/>
{{#if: |}} {{#if:Ассемблер · Сі · C++ · Lisp · Haskell · Java · Javascript · Поцкаль · Perl · PHP · Python · Ruby · Tcl · Visual Basic | {{#if:Промислові |}} {{#if:Programming.jpg|}} }} {{#if:HQ9+ · INTERCAL · Brainfuck · Befunge · Malbolge · Piet · Spoon · Whitespace | {{#if:Езотеричні |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: |}}