Ciklusok a Pythonban

Mi az a ciklus?

A ciklus egy olyan programozási szerkezet, amely lehetővé teszi, hogy ugyanazt a kódrészt többször végrehajtsuk anélkül, hogy többször leírnánk. Ez különösen hasznos, amikor ugyanazt a műveletet szeretnénk végrehajtani többször, vagy végig akarunk menni egy sorozaton.

For ciklus

Akkor használjuk, amikor előre tudjuk, hányszor szeretnénk ismételni valamit.

# For ciklus példa
for i in range(5):
    print(i)  # 0-tól 4-ig kiírja a számokat

While ciklus

Akkor használjuk, amikor egy feltétel teljesüléséig szeretnénk ismételni valamit.

# While ciklus példa
szam = 1
while szam <= 5:
    print(szam)  # 1-től 5-ig kiírja a számokat
    szam += 1

Próbáld ki!

Mikor használjunk ciklust?

Sorozatok feldolgozása

Amikor listákon, szövegeken vagy más sorozatokon szeretnénk végigmenni.

Ismétlődő műveletek

Amikor ugyanazt a műveletet többször kell végrehajtani.

Feltételes ismétlés

Amikor addig kell ismételni valamit, amíg egy feltétel teljesül.

For Ciklus

A For ciklus működése

A For ciklus egy számlálós ciklus, amely előre meghatározott számú ismétlést hajt végre. Pythonban gyakran használjuk listák, sztringek bejárására vagy egy művelet többszöri végrehajtására.

Szintaxis

for változó in sorozat:
    # Végrehajtandó utasítások
    utasítások...
A változó minden körben felveszi a sorozat következő értékét.
A sorozat lehet lista, string, range() vagy bármilyen iterálható objektum.

Csillagok rajzolása

# Csillagok rajzolása a képernyőre
darab = int(input("Hány sornyi csillagot akarsz? "))

for sor in range(darab+1):
    print("*"*sor)

Karakterek kiírása egyesével

# Karakterek kiíratása egyesével
szoveg = input("Add meg a szöveget: ")

for karakter in szoveg:
    print(karakter)

Számok összege

# Számok összege
bekert_szam = int(input("Adja meg, hogy meddig szeretné összeadni a számokat: "))

osszeg = 0
for szam in range(bekert_szam+1):
    osszeg += szam

print(f"Az összeg: {osszeg}")

While Ciklus

A While ciklus működése

A While ciklus egy feltételes ciklus, amely addig ismétli a benne lévő utasításokat, amíg a megadott feltétel igaz. Ez különösen hasznos olyan esetekben, amikor nem tudjuk előre, hány ismétlésre lesz szükség.

Szintaxis

while feltétel:
    # Végrehajtandó utasítások
    utasítások...
Vigyázz! A feltételnek valamikor hamissá kell válnia, különben végtelen ciklusba kerülsz!
A feltétel bármilyen logikai kifejezés lehet, ami True vagy False értéket ad.

Számok kiírása amíg el nem éri a 10-et

# Számláló while ciklussal
szam = 1
while szam <= 10:
    print(szam)
    szam += 1

Jelszavas belépés

# Jelszavas belépés
jelszo = ""
while jelszo != "titok":
    jelszo = input("Írd be a jelszót: ")

print("Helyes jelszó!")

Számok visszaírása nulláig

# Számok visszaírása amíg nem nulla
bekert_szam = 1
while bekert_szam != 0:
    bekert_szam = int(input("Kérem adjon meg egy számot. A kilépéshez adjon 0-t: "))
    print(f"Az általad adott szám: {bekert_szam}")

Gyakorló feladatok

Feladatok megoldása

Az alábbi feladatok segítenek a ciklusok gyakorlásában. Minden feladatnál megtalálod a leírást, a példakódot, és ki is próbálhatod őket.

1. Feladat: Szorzótábla

Készíts egy programot, amely kiírja egy tetszőleges szám szorzótábláját 1-től 10-ig!

# Szorzótábla készítése
bekert_szam = int(input("Melyik szám szorzótábláját szeretnéd? "))

for i in range(10+1):
    print(f"{i}*{bekert_szam}={i*bekert_szam}")

Próbáld ki!

2. Feladat: Páros számok listázása

Írd ki az összes páros számot egy megadott határig!

# Páros számok kiírása
hatar = int(input("Add meg a határt: "))

for szam in range(2, hatar + 1, 2):
    print(szam)

Próbáld ki!

3. Feladat: Szavak ismétlése

Írj egy programot, amely egy megadott szót többször kiír egymás után!

# Szó ismétlése
szo = input("Adj meg egy szót: ")
ismetles = int(input("Hányszor ismételjem? "))

for i in range(ismetles):
    print(szo)

Próbáld ki!

Kombinált példák

Találd ki a számot játék

Ez a példa a while és for ciklusok együttes használatát mutatja be egy egyszerű számkitalálós játékban.

# Számkitaláló játék
import random

# Generálunk egy véletlenszámot 1 és 100 között
gondolt_szam = random.randint(1, 100)
tippek_szama = 0
max_probalkozas = 7

print("Gondoltam egy számra 1 és 100 között.")
print(f"Maximum {max_probalkozas} tipped lehet!")

# While ciklus a játék futtatásához
while tippek_szama < max_probalkozas:
    try:
        tipp = int(input("Mi a tipped? "))
        tippek_szama += 1

        if tipp == gondolt_szam:
            print(f"Gratulálok! Kitaláltad {tippek_szama} próbálkozásból!")
            break
        elif tipp < gondolt_szam:
            print("A gondolt szám nagyobb!")
        else:
            print("A gondolt szám kisebb!")

        # For ciklussal jelezzük a maradék próbálkozások számát
        print("Még ", end="")
        for i in range(max_probalkozas - tippek_szama):
            print("♥", end="")
        print(" életed van.")

    except ValueError:
        print("Kérlek számot adj meg!")
Próbálkozások: 7 Tippelt számok: -
Életek:
♥♥♥♥♥♥♥
Gondoltam egy számra 1 és 100 között...
1 50 100

Karácsonyi fa rajzoló

Ez a példa a for ciklusok egymásba ágyazásával rajzol egy karácsonyfát.

# Karácsonyfa rajzoló
def karacsonyfa(magassag):
    # Fa koronája
    for i in range(magassag):
        # Szóközök a behúzáshoz
        for j in range(magassag - i - 1):
            print(" ", end="")
        # Csillagok a fa ágaihoz
        for k in range(2 * i + 1):
            print("*", end="")
        print()  # Új sor

    # Fa törzse
    for i in range(2):
        for j in range(magassag - 2):
            print(" ", end="")
        print("|||")

magassag = int(input("Add meg a fa magasságát: "))