Python (programlingvo): Malsamoj inter versioj

[kontrolita revizio][nekontrolita versio]
Enhavo forigita Enhavo aldonita
e r2.5.4) (robota modifo de: mr:पायथॉन
(diskuto | kontribuoj)
syntaxhighlight http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi
Linio 17:
 
Jen simpla ekzemplo de Python-a programo:
<sourcesyntaxhighlight lang="python">
# Ekscii pri la primeco de nombro
import math
Linio 32:
else:
print '%s estas prima' % y
</syntaxhighlight>
</source>
 
== Filozofio ==
Linio 79:
 
[[C (programlingvo)|C:]]
<sourcesyntaxhighlight lang="c">
int factorial(int x) {
if (x == 0) {
Linio 87:
}
}
</syntaxhighlight>
</source>
 
'''Python:'''
<sourcesyntaxhighlight lang="python">
def factorial(x):
if x == 0:
Linio 96:
else:
return x * factorial(x-1)
</syntaxhighlight>
</source>
Iuj programistoj alkutimiĝintaj al [[Algol]]-stilaj lingvoj, en kiuj blankspaco estas semantike malplena, komence pensas, ke ĉi tio estas konfuza. Iuj jam faris nekomplimentajn komparojn al la laŭkolona stilo uzata ĉe [[truokarto|truokartaj]] [[Fortran]]-sistemoj: iam, estas grandega progreso havi "liberformajn" lingvojn, en kiu nur simboloj gravis kaj ne ties pozicio sur la linio.
 
Linio 104:
 
Kiel ĉi-supre menciite, alia forto de Python estas la havebleco de funkciaj sintaksaj eroj. Kiel oni povas antaŭvidi, ĉi tiuj ege faciligas labori je listoj kaj aliaj kunmetaĵoj. Unu tia konstruo estas la lista komprenumo, enkodukita de la funkcia lingvo [[Haskell]], kiel vidata jene kalkulante la unuajn kvin [[eksponentumo]]jn de du:
<sourcesyntaxhighlight lang="python">
nombroj = [1, 2, 3, 4, 5]
eksponentumoj_de_du = [ 2 ** n for n in nombroj ]
</syntaxhighlight>
</source>
Pro tio, ke Python permesas, ke funkcioj estu argumentoj, ankaŭ eblas esprimi eĉ pli subtilajn funkciajn konstruojn, ekz. la pludaŭrigon.
 
La ŝlosilvorto "lambda" de Python eble misdirektus iujn fanatikulojn de funkcia programado. Lambdo-blokoj en Python rajtas enhavi nur esprimojn, ne asertojn. Tial, ili ne estas la plej ĝenerala maniero, per kiu reliveri ĉe funkcio. Anstataŭe la kutima afero por fari estas simple difini kaj reliveri ĉe funkcio uzante lokregionan nomon, kiel en la jena ekzemploj de simpla sekca funkcio:
<sourcesyntaxhighlight lang="python">
def add_and_print_maker(x):
def temp(y):
print "%d + %d = %d" % (x, y, x+y)
return temp
</syntaxhighlight>
</source>
 
=== Traktado de esceptoj ===