Python/Kodo eilučių atitraukimas

Iš Wikibooks.
Jump to navigation Jump to search

Python funkcijos neturi aiškiai, simboliais išskirtos pradžios ir pabaigos, taip pat nėra riestinių skliaustų, kurie apibrėžtų, kur funkcijos kodas prasideda, o kur baigiasi. Vienintelis skiriamasis simbolis yra dvitaškis (:) ir pats savaime, kodo atitraukimas nuo krašto.


Pavyzdys 2.5. Funkcijos buildConnectionString codo atitraukimas nuo krašto

def buildConnectionString(params):
    """Build a connection string from a dictionary of parameters.

    Returns string."""
    return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

Kodo blokai apibrėžiami pagal jų eilučių atitraukimą nuo krašto. Sakydamas „kodo blokai“, kalbu apie funkcijas, if sakinius, for ciklus, while ciklus ir taip toliau. Eilutės atitraukimas nuo krašto pradeda bloką, o pritraukimas prie krašto, užbaigia. Nėra jokių raktinių žodžoių, riestinių ar paprastų skliaustelių. Tai reiškia kad tarpai turi prasmę ir jų naudojimas turi būti nuoseklus. Šiame pavyzdyje, funkcijos kodas (įskaitant dokumentavimo eilutę) yra atitrauktas nuo krašto per keturis tarpo simbolius. Nėra privaloma atitraukti per keturis tarpo simbolius, tiesiog atitraukimas turi būti vienodas. Pirmoji eilutė, kuri nebus atitraukta nuo krašto, jau bus už funkcijos ribų.

Pavyzdyje 2.6, „if sakinys“, parodytas kodo pavyzdys su if sakiniu.

Pavyzdys 2.6. if sakinys

def fib(n):                     (1)
    print 'n =', n              (2)
    if n > 1:                   (3)
        return n * fib(n - 1)
    else:                       (4)
        print 'end of the line'
        return 1

(1) Tai yra funkcija, pavadinimu fib, su vienu argumentu n. Visas kodas, esantis funkcijos viduje yra atitrauktas nuo krašto.

(2) Python kalboje, išvesti tekstą labai paprasta, užtenka tiesiog panaudoti print sakinį. print sakiniui galima perduoti, bet kokio tipo duomenis, įskaitant simbolių eilutes, skaičius ir kitus gimtuosius Python tipus, tokius kaip žodynai ar sąrašai, apie kuriuos mokysimės sekančiame skyrelyje. Galite net gi pateikti kelis skirtingų tipų duomenis išvedimui vienoje eilutėje, atskirtus kableliais. Kiekviena reikšmė (duomuo), bus išvesta toje pačioje eilutėje, atskirta tarpais (kableliai nebus išvesti). Tai gi, jei funkcijas fib bus iškviesta su parametru 5, tai bus išvedama: "n = 5".

(3) if sakiniai yra kodo blokų tipo. Jei if sąlygą bus patenkinta ir grąžins True, tai atitrauktas kodo blokas bus įvykdytas, priešingu atveju, bus peršokama į else bloką.

(4)