Python: відмінності між версіями

Матеріал з Файна Меморії
Перейти до навігації Перейти до пошуку
Surikoff (обговорення | внесок)
Немає опису редагування
м Редагування користувача 95.132.221.35 (обговорення) відкинуті до версії користувача Vox
 
(Не показані 13 проміжних версій 4 користувачів)
Рядок 19: Рядок 19:
Умовний оператор if, оператори циклів while і for і т.д. До речі, цикл for одна з сильних сторін Пітона. Він відрізняється від циклів в, наприклад [[Сі]], тим що, замість того ітеруватися поки якась змінна не набуде значення чи функція поверне потрібне значення, ми керуємо ітерованим об'єктом(список і т.д.).
Умовний оператор if, оператори циклів while і for і т.д. До речі, цикл for одна з сильних сторін Пітона. Він відрізняється від циклів в, наприклад [[Сі]], тим що, замість того ітеруватися поки якась змінна не набуде значення чи функція поверне потрібне значення, ми керуємо ітерованим об'єктом(список і т.д.).
====if====
====if====
Оператор if схожий на [[Сі|сюшний]], тільки умову не треба брати в дужки:<br />
Оператор if схожий на [[Сі|сюшний]], тільки умову не треба брати в дужки:
<code>if x == 'fuck off':<br />&nbsp;&nbsp;&nbsp;&nbsp;DoSomething()<br />else:<br />&nbsp;&nbsp;&nbsp;&nbsp;DoSomethingElse()</code>
<pre>
if x == 'fuck off':
    DoSomething()
else:
    DoSomethingElse()</pre>
====Цикли====
====Цикли====
While у пітоні звичайний:<br />
While у пітоні звичайний:<br />
<code>while x == 'fuck off':<br />&nbsp;&nbsp;&nbsp;&nbsp;doSomeThing()</code>
<pre>while x == 'fuck off':
<br />
    doSomeThing()</pre>
А от for тут з цукром:<br /><code>
А от for тут з цукром:
x = ['fuck', 'off']#список - ітерований об'єкт<br />for i in x:<br />&nbsp;&nbsp;&nbsp;&nbsp;print i#виведе всі елементи списку х</code>
<pre>
x = ['fuck', 'off']#список - ітерований об'єкт
for i in x:
    print i#виведе всі елементи списку х</pre>
====Математичні, логічні====
====Математичні, логічні====
*<code><nowiki>==</nowiki></code> - х дорівнює у
{| align="center" class="wikitable"
*<code><nowiki>!=</nowiki></code> - х не орівнює у
|+
*<code><nowiki>=</nowiki></code> - присвоїти змінній х значення у
! |Оператор
*<code><nowiki>></nowiki></code> - х більше у
! |Значення
*<code><nowiki><</nowiki></code> - х менше у
|-----
*<code><nowiki>>=</nowiki></code> - х більше або дорівнює у
| <code><nowiki>==</nowiki></code>
*<code><nowiki><=</nowiki></code> - x менше або дорівнює y
| х дорівнює у
*і т.д.
|-----
| <code><nowiki>!=</nowiki></code>
| х не орівнює у
|-----
| <code><nowiki>=</nowiki></code>
| присвоїти змінній х значення у
|-----
| <code><nowiki>></nowiki></code>
| х більше у
|-----
| <code><nowiki><</nowiki></code>
| х менше у
|-----
| <code><nowiki>>=</nowiki></code>
| х більше або дорівнює у
|-----
| <code><nowiki><=</nowiki></code>
| x менше або дорівнює y
|-----
| <code><nowiki>is</nowiki></code>
| об’єкт х є посиланням на об’єкт у
|+
|}


===Директиви===
===Директиви===
Рядок 41: Рядок 70:
<br/><code># -*- coding: utf-8 -*-</code>. Хоча якщо не юзаєш українські чи москальські символі в програмі, це робити не обов'язково.
<br/><code># -*- coding: utf-8 -*-</code>. Хоча якщо не юзаєш українські чи москальські символі в програмі, це робити не обов'язково.


===Зрізи===
Також, одна з фіч патона — зрізи, які прийшли ще з [[Fortran|фортрана]]. Він працює десь так:
<pre>
x[звідки:куди:крок]#  x - рядок, список, або set
</pre>
Це дозволяє отримувати об’єкти, або букви з списків і рядків. Це також дозволяє перевертати списки та рядки, ось так:
<pre>
x = "Shit!"
print(x[::-1])#виведе "!thiS"
</pre>
Тобто зріз з кінця рядка, до початку, з кроком -1.


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


== Недоліки ==
== Недоліки ==
*Неможливість модифікації стандартних класів.
*Неможливість модифікації стандартних класів.
*У порівнянні з компільованими мовами, низька швидкість виконання програм. <ref>Хоча Пітон теж можна компілювати. freeze'ом.</ref>
*У порівнянні з компільованими мовами, низька швидкість виконання програм. <ref>Хоча Пітон теж можна компілювати. freeze'ом.</ref>
Рядок 70: Рядок 108:
== Приклади коду ==
== Приклади коду ==
*"[[Hello, world!]]":<br />{{Блок|print"Hello, world!!!"}} або {{Блок|print("Hello, world!")}} для Python3k.
*"[[Hello, world!]]":<br />{{Блок|print"Hello, world!!!"}} або {{Блок|print("Hello, world!")}} для Python3k.
*[[Числа Фібоначчі]]([[Рекурсія|рекурсивно]]): {{Блок|def fibo(n):<br />&nbsp;&nbsp;&nbsp;&nbsp;if n < 2:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return n<br />&nbsp;&nbsp;&nbsp;&nbsp;else:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return fibo(n - 1) + fibo(n - 2)}}<br />І використання:<br /><code>fib(5)<br />
*[[Числа Фібоначчі]]([[Рекурсія|рекурсивно]]):  
<pre>def fibo(n):
    if n < 2:
        return n
    else:
        return fibo(n - 1) + fibo(n - 2)
</pre>
<br />І використання:<br />
<code>fib(5)<br />
5</code>
5</code>


Рядок 85: Рядок 131:
{{reflist}}
{{reflist}}


{{Navbox|name = Мови програмування |state = autocollapse |title = Мови програмування |image = |above = |group1 = [[Мови програмування#Промислові|Промислові]] |list1 = [[Ассемблер]] · [[Сі]] · [[C++]] · [[Lisp]] · [[Haskell]] · [[Java]] · [[Javascript]] · [[Pascal|Поцкаль]] · [[Perl]] · [[PHP]] · [[Python]] · [[Ruby]] · [[Scheme]] · [[Visual Basic]] |group2 = [[Мови програмування#Езотеричні|Езотеричні]] |list2 = [[HQ9+]] · [[INTERCAL]] · [[Brainfuck]] · [[Befunge]] · [[Malbolge]] · [[Piet]] · [[Spoon]] · [[Whitespace]]}}
{{Мови програмування|topic = - юзай його, [[Сі|Сюшник]]}}


[[Категорія:Мови програмування]]
[[Категорія:Мови програмування]]

Поточна версія на 19:55, 14 червня 2011

Python™

Python (Пайтон, Пітон) - інтерпретована мова програмування створена Гвідо Ван Россумом. Дуже зручна, але деякі цим зловживають. [1] Названа на честь британскої скетч-группи "Монті Пайтон".

Огляд

Коментарі

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

Імена

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

Форматування коду

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

Типи даних

В Пітоні присутні звичайні для мов програмування типи: Int, Str, Bool і т.д., але окрім цього він взяв дещо він функціональних мов програмування(Lisp, Haskell): списки, ассоціативі массиви [3], lambda і т.д. [4]

Основні оператори

Умовний оператор 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 [5]
  • Код на Пітоні також короткий.
  • Зрізи.

Недоліки

  • Неможливість модифікації стандартних класів.
  • У порівнянні з компільованими мовами, низька швидкість виконання програм. [6]


Графічні бібліотеки

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


Реалізації

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

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


Приклади коду

print"Hello, world!!!"

або

print("Hello, world!")

для Python3k.

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


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


Використання

Використовується достатньо широко: в комп'ютерних іграх [7], прикладних програмах та іншому.

Посилання

Примітки

  1. ↑ Наприклад 1 <= a < 10 and 1 <= b < 20
  2. ↑ А якщо не індентиш, ти - школота.
  3. ↑ в яких значення знаходиться за ключем(Наприклад: {ключ:'значення'})
  4. ↑ А ще рядок Юнікод: u'Значення'.
  5. ↑ Це, до речі, теж з функціональних мов.
  6. ↑ Хоча Пітон теж можна компілювати. freeze'ом.
  7. ↑ Наприклад Civilization.