„Python kezdőknek kurzus 2. lecke” változatai közötti eltérés

A Ubuwiki wikiből

a
a (magyartalanságok javítása)
18. sor: 18. sor:
 
|
 
|
 
  for i in range(1, 6) :
 
  for i in range(1, 6) :
     print "Hello világ!"
+
     print "Helló világ!"
 
|
 
|
 
  for i in range(1,6):
 
  for i in range(1,6):
     print("Hello világ!")  
+
     print("Helló világ!")  
 
|}
 
|}
  
40. sor: 40. sor:
 
Nem szükséges szóközt tennünk a kettőspont elé. A Python programozók egy része tesz elé, másik része nem. Ez csak a programozó döntésén múlik.
 
Nem szükséges szóközt tennünk a kettőspont elé. A Python programozók egy része tesz elé, másik része nem. Ez csak a programozó döntésén múlik.
  
Minden alkalommal, amikor az <code>i</code> új értéket kap, még egyszer kiíródik, hogy "Hello világ".  
+
Minden alkalommal, amikor az <code>i</code> új értéket kap, még egyszer kiíródik, hogy "Helló világ".  
  
 
Nézzük most mit is takar <code>range()</code>
 
Nézzük most mit is takar <code>range()</code>
48. sor: 48. sor:
 
Tehát fenti ciklus az alábbit jelenti:
 
Tehát fenti ciklus az alábbit jelenti:
  
For minden számra a list [1, 2, 3, 4, 5] listából:
+
Lépkedj végig a [1, 2, 3, 4, 5] listán és minden számra hajtsd végre az alábbit:
  
  
57. sor: 57. sor:
 
|-
 
|-
 
|
 
|
  print "Hello, world!"
+
  print "Helló világ!"
 
|
 
|
 
  print("Helló világ!")
 
  print("Helló világ!")
73. sor: 73. sor:
 
|
 
|
 
  for i in range(1, 6) :
 
  for i in range(1, 6) :
     print "Hello, world! i =", i
+
     print "Helló világ! i =", i
 
|
 
|
 
  for i in range(1, 6) :
 
  for i in range(1, 6) :
     print("Hello, world! i =", i)
+
     print("Helló világ i =", i)
 
|}
 
|}
  
139. sor: 139. sor:
 
  for i in range(1, 6) :
 
  for i in range(1, 6) :
 
     if i == 3 :
 
     if i == 3 :
         print "Hello, world! i =", i
+
         print "Helló világ! i =", i
 
|
 
|
 
  for i in range(1, 6) :
 
  for i in range(1, 6) :
 
     if i == 3 :
 
     if i == 3 :
         print("Hello, world! i =", i)
+
         print("Helló világ! i =", i)
 
|}
 
|}
Az if utasítás meglehetősen egyszerű. Ha az i értéke 3, akkor végrehajtódnak az if után következő parancsok (minden sor, ami beljebb van húzva).
+
A fenti if utasítás meglehetősen egyszerű. Ha az i értéke 3, akkor végrehajtódnak az if után következő parancsok (minden sor, ami beljebb van húzva).
  
 
Az egyetlen trükkös rész a dupla egyenlőségjel. Hogy miért dupla? Azért mert az egyszeres egyenlőségjellel a változók értékét állíthatjuk be, ahogy ezt az első leckében szerepelt:
 
Az egyetlen trükkös rész a dupla egyenlőségjel. Hogy miért dupla? Azért mert az egyszeres egyenlőségjellel a változók értékét állíthatjuk be, ahogy ezt az első leckében szerepelt:
 
name = "Amelia Earhart"
 
name = "Amelia Earhart"
  
Így ha két értéket (az előző esetben az i-t és a 3-at) szeretnénk összehasonlítani, akkor ==-t kell használnunk, ellenkező esetben szintaktikai hibát jelez a Python. A legtöbb moder nyelvben szerepel a ==, így hasznos megismernünk.
+
Így ha két értéket (az előző esetben az i-t és a 3-at) szeretnénk összehasonlítani, akkor ==-t kell használnunk, ellenkező esetben szintaktikai hibát jelez a Python. A legtöbb modern nyelvben szerepel a ==, így hasznos megismernünk.
  
 
Megadhatunk több feltételt is az "elif" illetve "else" segítségével.
 
Megadhatunk több feltételt is az "elif" illetve "else" segítségével.
162. sor: 162. sor:
 
  for i in range(1, 6) :
 
  for i in range(1, 6) :
 
     if i == 3 :
 
     if i == 3 :
         print "Az i erteke harom !"
+
         print "Az i értéke három !"
 
     elif i == 4 :
 
     elif i == 4 :
         print "most negy!"
+
         print "most négy!"
 
     else :
 
     else :
         print "Hello vilag! i =", i
+
         print "Helló világ! i =", i
 
|
 
|
 
  for i in range(1, 6) :
 
  for i in range(1, 6) :
 
     if i == 3 :
 
     if i == 3 :
         print("Az i erteke harom !")
+
         print("Az i értéke három !")
 
     elif i == 4 :
 
     elif i == 4 :
         print("most negy!")
+
         print("most négy!")
 
     else :
 
     else :
         print("Hello vilag! i =", i)
+
         print("Helló világ! i =", i)
 
|}
 
|}
  
180. sor: 180. sor:
 
1. írjunk egy programot, a „Tíz kicsi néger” című versikéhez kapcsolódva. A program valami ilyesmit írjon ki:
 
1. írjunk egy programot, a „Tíz kicsi néger” című versikéhez kapcsolódva. A program valami ilyesmit írjon ki:
 
<code>
 
<code>
     10 kicsi neger
+
     10 kicsi néger
     9 kicsi neger
+
     9 kicsi néger
     8 kicsi neger
+
     8 kicsi néger
</code>  ... mígnem elérjük az 1-et.
+
</code>  ... míg el nem érjük az 1-et.
  
 
2. Milyen  sorozatot ad a range(0, 10, -1) /  list(range(0,10,-1))?  Próbáljuk ki és próbáljuk megtalálni a választ, hogy miért ezt kaptuk.<br/>
 
2. Milyen  sorozatot ad a range(0, 10, -1) /  list(range(0,10,-1))?  Próbáljuk ki és próbáljuk megtalálni a választ, hogy miért ezt kaptuk.<br/>
A 3-as házi opcionális – ez kicsit nehezebb a korábbiaknál, de próbálkozzunk azért vele. Ha nem sikerül megoldani, nézzük meg mások mire jutottak vele.
+
A 3-as házi opcionális – ez kicsit nehezebb a korábbiaknál, de próbálkozzunk meg vele. Ha nem sikerül megoldani, nézzük meg mások mire jutottak vele.
  
 
3. Írjunk egy ciklust a <code>range()</code> segítségével, ami kiírja az első 5 számot betűkkel:
 
3. Írjunk egy ciklust a <code>range()</code> segítségével, ami kiírja az első 5 számot betűkkel:

A lap 2019. április 26., 13:41-kori változata

Mai leckénk a for ciklusról és a változókról szól.

Egyszerű ciklus

A ciklus egy egyszerű fogalom: valami, amit újra és újra végrehajtatunk.

A ciklusoknak sok fajtája van. Nézzük elsőnek a számláló ciklust, amit akkor használunk, ha a valamit megadott számú alkalommal szeretnénk futtatni

Tegyük fel, hogy szeretnénk kiírni a "Hello világ!"-ot egy helyett ötször. Pythonban ennek a legegyszerűbb módja:


Python 2.x Python 3.x
for i in range(1, 6) :
    print "Helló világ!"
for i in range(1,6):
   print("Helló világ!") 

Először is, mi az i?

Az i egy változó, ahogy az előző leckében a 'name' is az volt, azzal a különbséggel, hogy ebben az esetben az i egy egész számot tárol. Először ez a szám 1, majd 2, majd 3, majd 4 és 5 … ekkor megáll, mielőtt a 6-ig elérkezne, mert az első sorban megszabott intervallum az (1,6).

Általában a számláló ciklusban i-nek szokás a változót választani, de ez nem kötelező. Ugyanúgy működne a fenti ciklus, ha így írnánk:

for hippopotamus in range(1, 6) :

Megjegyzés: figyeljünk a print sorának behúzására. A példákban a behúzás négy szóköz, de lehet kettő, három vagy akármennyi. Az a fontos, hogy legyünk következetesek. Python nyelven számít a behúzás, vagyis ha elfelejtjük kitenni a megfelelő számú szóközt az adott szinten, akkor a programunk nem fog helyesen működni.

Ez elsőre feleslegesnek tűnhet, pedig valójában egy jó dolog. Azokban a nyelvekben, ahol nem számít a behúzás, könnyen írhatunk olyan kódot, ami jónak tűnik, de a behúzás hiánya miatt nem vesszük észre benne a hibá(ka)t. Emellett a nem megfelelően formázott kódot nagyon nehéz elolvasni, értelmezni.

A sor végén szereplő kettőspont szintén fontos, ez mondja meg a Pythonnak, hogy egy többsoros utasításunk van. A for ciklusnak nincs értelme, ha nincsenek utasításaink a cikluson belül; a kettőspont jelzi, hogy az utána következő behúzott sorok a cikluson belül kerülnek végrehajtásra.

Nem szükséges szóközt tennünk a kettőspont elé. A Python programozók egy része tesz elé, másik része nem. Ez csak a programozó döntésén múlik.

Minden alkalommal, amikor az i új értéket kap, még egyszer kiíródik, hogy "Helló világ".

Nézzük most mit is takar range()

A range(1, 6) számok egy listáját adja, ami 1-el kezdődik és a 5-el ér véget: [1, 2, 3, 4, 5].

Tehát fenti ciklus az alábbit jelenti:

Lépkedj végig a [1, 2, 3, 4, 5] listán és minden számra hajtsd végre az alábbit:


Python 2.x Python 3.x
print "Helló világ!"
print("Helló világ!")


Ha követni szeretnénk mi az i értéke, kiírathatjuk azt is:


Python 2.x Python 3.x
for i in range(1, 6) :
    print "Helló világ! i =", i
for i in range(1, 6) :
    print("Helló világ i =", i)

Python parancssor és további példák a range()-re

Ha még nem világos mi is a range, használjuk közvetlenül Pythonban. Futtasuk a python parancsot fájlnév illetve paraméterek nélkül. Ha látjuk a >>> promptot, gépeljük be:


Python 2.x Python 3.x
range(1, 6)
list(range(1,6))

és nézzük mit kapunk.

A Python parancsértelmezője könnyen kezelhető és bármikor ha valamilyen egyszerű parancsot szeretnénk kipróbálni használhatjuk, nem szükséges hogy új fájlt készítsünk a teszteléshez. Ha szeretnénk, akár egy teljes ciklust is begépelhetünk, csak ne feledkezzünk meg a behúzásról!

A range nem csak egyesével tud számlálni. A range(0, 10, 2) például kettesével számol. Próbáljuk ki, gépeljük be a >>> prompt után

Python 2.x Python 3.x
range(0,10, 2)
[2, 4, 6, 8]
list(range(0,10,2))
[2, 4, 6, 8]


Akár visszafele is lépkedhetünk a számokon, például így:

Python 2.x Python 3.x
range(5, 0, -1)
list(range(5,0,-1))

Mi is történik itt? Minden új szám esetén az előző számhoz -1-et hozzáadunk. Ha elértünk a végponthoz a 0-hoz, akkor megállunk. A 0-t nem tartalmazza a sorozat.

if utasítás

Egy maradt még a mai leckéből: az if utasítás.

Python 2.x Python 3.x
for i in range(1, 6) :
   if i == 3 :
       print "Helló világ! i =", i
for i in range(1, 6) :
   if i == 3 :
       print("Helló világ! i =", i)

A fenti if utasítás meglehetősen egyszerű. Ha az i értéke 3, akkor végrehajtódnak az if után következő parancsok (minden sor, ami beljebb van húzva).

Az egyetlen trükkös rész a dupla egyenlőségjel. Hogy miért dupla? Azért mert az egyszeres egyenlőségjellel a változók értékét állíthatjuk be, ahogy ezt az első leckében szerepelt: name = "Amelia Earhart"

Így ha két értéket (az előző esetben az i-t és a 3-at) szeretnénk összehasonlítani, akkor ==-t kell használnunk, ellenkező esetben szintaktikai hibát jelez a Python. A legtöbb modern nyelvben szerepel a ==, így hasznos megismernünk.

Megadhatunk több feltételt is az "elif" illetve "else" segítségével.

Python 2.x Python 3.x
for i in range(1, 6) :
    if i == 3 :
        print "Az i értéke három !"
    elif i == 4 :
        print "most négy!"
    else :
        print "Helló világ! i =", i
for i in range(1, 6) :
    if i == 3 :
        print("Az i értéke három !")
    elif i == 4 :
        print("most négy!")
    else :
        print("Helló világ! i =", i)

Házi feladat

1. írjunk egy programot, a „Tíz kicsi néger” című versikéhez kapcsolódva. A program valami ilyesmit írjon ki:

   10 kicsi néger
   9 kicsi néger
   8 kicsi néger

... míg el nem érjük az 1-et.

2. Milyen sorozatot ad a range(0, 10, -1) / list(range(0,10,-1))? Próbáljuk ki és próbáljuk megtalálni a választ, hogy miért ezt kaptuk.
A 3-as házi opcionális – ez kicsit nehezebb a korábbiaknál, de próbálkozzunk meg vele. Ha nem sikerül megoldani, nézzük meg mások mire jutottak vele.

3. Írjunk egy ciklust a range() segítségével, ami kiírja az első 5 számot betűkkel:

  egy
  ketto
  harom
  negy
  ot

További leckék

Személyes eszközök