Informatika1-2013/Gyakorlat4

A MathWikiből
(Változatok közti eltérés)
(Listák kezelése)
 
(egy szerkesztő 5 közbeeső változata nincs mutatva)
59. sor: 59. sor:
 
</python>
 
</python>
 
* Függvényeknek akárhány paramétere (bemenete) lehet, akár 0 is.
 
* Függvényeknek akárhány paramétere (bemenete) lehet, akár 0 is.
 +
* Nagy különbség van a kiírás és érték visszaadás közt:
 +
<python>
 +
def fv1(x):
 +
    print x * x + 2 * x - 1
  
 +
def fv2(x):
 +
    return x * x + 2 * x - 1
 +
 +
ertek1 = fv1(5)
 +
ertek2 = fv2(5)
 +
</python>
 +
* Az '''ertek1''' értéke '''None''' mivel a '''fv1''' nem ad vissza semmilyen értéket, csak kiírja.
 +
* Az '''ertek2''' értéke 34, mert a '''fv2''' visszaadta azt az értéket ('''return''') és nem kiírta
 +
* Függvény csak egy értéket tud visszaadni, de akárhányat ki tud írni:
 +
<python>
 +
def pelda():
 +
    print 22
 +
    return 5
 +
    print 15
 +
 +
x = pelda()
 +
</python>
 +
* A 15 nem lesz kiírva, mert a '''return 5''' paranccsal visszatér a függvény, azaz ezt az értéket visszaadja és értékül adódik az 5 '''x'''-nek
  
 
== Feladatok ==
 
== Feladatok ==
72. sor: 94. sor:
 
* A részlistának is kérjétek le a méretét
 
* A részlistának is kérjétek le a méretét
  
===
+
=== Elágazások ===
 +
 
 +
=== Vezérlési szerkezetek (if, for, while) ===
 +
 
 +
* Egészítsd ki a függvényt, hogy ha az elsõ paraméter kisebb mint a második, akkor azt a karakterláncot adja vissza, hogy "kisebb", ha nagyobb, akkor azt, hogy "nagyobb" és ha egyenlõ akkor "egyenlo"-t!
 +
<!> hasonlit(a, b):
 +
    if a < b:
 +
        <!> "kisebb"
 +
    elif a > b:
 +
        <!> "nagyobb"
 +
    <!>:
 +
        <!> "egyenlo"
 +
 
 +
* Definiálj egy Sage függvényt ''elojel'' néven, amelynek egy bemenete van (''a''), és a "pozitiv" karakterláncot (vagyis stringet) írja ki ha a kapott paraméter pozitív, "negativ"-at ad vissza ha a szám negatív, és  "nulla"-ta ad ha nulla volt a paraméter értéke.
 +
 
 +
 
 +
=== Listák kezelése ===
 +
 
 +
* Egészítsd ki a kódot, hogy a függvény a kapott lista legkisebb elemét adja vissza:
 +
<python>
 +
def minimum(l):
 +
    minelem = <!>
 +
    <!> e in l:
 +
        if e < <!>:
 +
            minelem = e
 +
    <!> minelem
 +
</python>
 +
 
 +
* Írj függvényt ami a kapott lista elemeinek a szummáját visszaadja. (Ne használjátok a '''sum''' beépített függvényt.)
 +
 
 +
* Írj függvényt ''sokszorozo'' néven, amely bemenetként kap egy számot (''n'') és még egy paramétert, ''a''-t (ennek a típusa bármi lehet). A függvény adjon vissza egy listát, amiben ''n''-szer szerepel az ''a'' értéke. <br/>Például: ''sokszorozo(3, "bla")'' kimenete ["bla", "bla", "bla"] legyen.
 +
 
 +
* Írj Sage függvényt amely megfordít egy bemenetként kapott listát!
 +
 
 +
=== Házi elõkészítés ===
 +
 
 +
Mentsünk el egy notebookot, hogy háziban ne legyen ezzel gond.

A lap jelenlegi, 2013. október 10., 08:15-kori változata

Tartalomjegyzék

Ismétlés az elõzõ gyakról

  • String: 'kutya'
  • Lista: [1, 8, 'ketto', 1, 9]
  • Lista indexek 0-tól kezdõdnek, így az utolsó eleme egy n elemû listának n - 1
  • Listák 3. elemének lekérdezése, feltéve, hogy l a lista: l[2]
  • Listák hosszának lekérdezése: len(l)
  • Új elem hozzáadása: l.append('nyolc')
  • stb.

Ismétlés az elõadásról

3. elõadás

  • Szótár: {'one':1,'two':2}
  • Szótár elemének lekérdezése (d a szótár): d['one']
  • Elágazás:
if feltétel1:
    mûvelet1
elif feltétel2:
    mûvelet2
else:
    mûvelet3
  • Minden aminek igaz-hamis értéke van lehet feltétel. Pl: x > 5, vagy akár x * 6 + 16 == 15 * y + 1
  • For ciklus:
l = [4, 5, 2]
for e in l:
    print e * 2
  • Ennek az eredménye:
8
10
4
  • While ciklus:
i = 1
x = 254
while i <= x:
    if x % i == 0:
        print i
    i = i + 1
  • Ezt találjátok ki mit csinál!
  • Függvény definiálás:
def titok(x):
    i = 1
    while i <= x:
        if x % i == 0:
            print i
        i = i + 1
  • Függvény meghívása:
titok(4752)
  • Függvényeknek akárhány paramétere (bemenete) lehet, akár 0 is.
  • Nagy különbség van a kiírás és érték visszaadás közt:
def fv1(x):
    print x * x + 2 * x - 1
 
def fv2(x):
    return x * x + 2 * x - 1
 
ertek1 = fv1(5)
ertek2 = fv2(5)
  • Az ertek1 értéke None mivel a fv1 nem ad vissza semmilyen értéket, csak kiírja.
  • Az ertek2 értéke 34, mert a fv2 visszaadta azt az értéket (return) és nem kiírta
  • Függvény csak egy értéket tud visszaadni, de akárhányat ki tud írni:
def pelda():
    print 22
    return 5
    print 15
 
x = pelda()
  • A 15 nem lesz kiírva, mert a return 5 paranccsal visszatér a függvény, azaz ezt az értéket visszaadja és értékül adódik az 5 x-nek

Feladatok

Lista ismétlés

  • Készítsétek el a 2, 4, 'tizenot', 4 elemeket tartalmazó listát
  • Kérdezzétek le a méretét
  • Kérdezzétek le a 3. elemét
  • Fûzzétek a lista végére a 'negy' stringet
  • Kérdezzétek most le a 2. elemtõl utolsó elemig tartó részlistát, mentsétek ezt egy másik változóba
  • A részlistának is kérjétek le a méretét

Elágazások

Vezérlési szerkezetek (if, for, while)

  • Egészítsd ki a függvényt, hogy ha az elsõ paraméter kisebb mint a második, akkor azt a karakterláncot adja vissza, hogy "kisebb", ha nagyobb, akkor azt, hogy "nagyobb" és ha egyenlõ akkor "egyenlo"-t!
<!> hasonlit(a, b):
    if a < b:
        <!> "kisebb"
    elif a > b:
        <!> "nagyobb"
    <!>:
        <!> "egyenlo"
  • Definiálj egy Sage függvényt elojel néven, amelynek egy bemenete van (a), és a "pozitiv" karakterláncot (vagyis stringet) írja ki ha a kapott paraméter pozitív, "negativ"-at ad vissza ha a szám negatív, és "nulla"-ta ad ha nulla volt a paraméter értéke.


Listák kezelése

  • Egészítsd ki a kódot, hogy a függvény a kapott lista legkisebb elemét adja vissza:
def minimum(l):
    minelem = <!>
    <!> e in l:
        if e < <!>:
            minelem = e
    <!> minelem
  • Írj függvényt ami a kapott lista elemeinek a szummáját visszaadja. (Ne használjátok a sum beépített függvényt.)
  • Írj függvényt sokszorozo néven, amely bemenetként kap egy számot (n) és még egy paramétert, a-t (ennek a típusa bármi lehet). A függvény adjon vissza egy listát, amiben n-szer szerepel az a értéke.
    Például: sokszorozo(3, "bla") kimenete ["bla", "bla", "bla"] legyen.
  • Írj Sage függvényt amely megfordít egy bemenetként kapott listát!

Házi elõkészítés

Mentsünk el egy notebookot, hogy háziban ne legyen ezzel gond.

Személyes eszközök