Powtarzanie operacji za pomoca petli for i funkcji range()
ð Podstawa programowa: II.1Petla for sluzy do powtarzania fragmentu kodu okreslona liczbe razy lub do przechodzenia po elementach kolekcji (listy, napisu, zakresu). Jest to tzw. iteracja.
for, gdy wiesz z gory, ile razy chcesz powtorzyc operacje. Gdy nie wiesz - uzyj petli while (nastepna lekcja).
Funkcja range() generuje ciag liczb calkowitych:
# range(stop) - od 0 do stop-1
for i in range(5):
print(i) # 0, 1, 2, 3, 4
# range(start, stop) - od start do stop-1
for i in range(2, 7):
print(i) # 2, 3, 4, 5, 6
# range(start, stop, step) - z krokiem
for i in range(0, 10, 2):
print(i) # 0, 2, 4, 6, 8
# Odliczanie w dol
for i in range(10, 0, -1):
print(i) # 10, 9, 8, ..., 1
imie = "Python"
for litera in imie:
print(litera) # P, y, t, h, o, n
owoce = ["jablko", "banan", "wisnia"]
for owoc in owoce:
print(f"Lubie {owoc}!")
# Z indeksem - enumerate()
for i, owoc in enumerate(owoce):
print(f"{i+1}. {owoc}")
Czesty wzorzec: zbieranie wynikow w zmiennej (suma, iloczyn, lista):
# Suma liczb od 1 do 100
suma = 0
for i in range(1, 101):
suma += i
print(f"Suma = {suma}") # 5050
# Silnia n!
n = 5
silnia = 1
for i in range(1, n + 1):
silnia *= i
print(f"{n}! = {silnia}") # 120
# Tabliczka mnozenia 1-5
for i in range(1, 6):
for j in range(1, 6):
print(f"{i*j:4}", end="")
print() # nowa linia po kazdym wierszu
Napisz program, ktory wczytuje od uzytkownika n liczb (n podaje uzytkownik), a nastepnie oblicza i wyswietla ich sume oraz srednia arytmetyczna.
n = int(input("Ile liczb chcesz podac? "))
suma = 0
for i in range(n):
liczba = float(input(f"Podaj liczbe {i+1}: "))
suma += liczba
print(f"Suma: {suma}")
print(f"Srednia: {suma / n:.2f}")
Napisz program, ktory dla podanego n rysuje trojkat z gwiazdek. Np. dla n=5:
*
**
***
****
*****
n = int(input("Podaj wysokosc trojkata: "))
for i in range(1, n + 1):
print("*" * i)
Napisz program, ktory wyswietla tabliczke mnozenia od 1 do 10 w formie ladnej tabeli. Uzyj petli zagniezdzonej i formatowania f-string z wyrownaniem.
print(" ", end="")
for j in range(1, 11):
print(f"{j:4}", end="")
print()
print("-" * 44)
for i in range(1, 11):
print(f"{i:2} |", end="")
for j in range(1, 11):
print(f"{i*j:4}", end="")
print()
Napisz program, ktory wczytuje tekst od uzytkownika i wyswietla: a) liczbe znakow, b) liczbe samoglosek, c) liczbe spacji, d) liczbe cyfr. Uzyj petli for po napisie.
tekst = input("Podaj tekst: ")
samogloski = "aeiouAEIOU"
liczba_samoglosek = 0
liczba_spacji = 0
liczba_cyfr = 0
for znak in tekst:
if znak in samogloski:
liczba_samoglosek += 1
elif znak == " ":
liczba_spacji += 1
elif znak.isdigit():
liczba_cyfr += 1
print(f"Liczba znakow: {len(tekst)}")
print(f"Samogloski: {liczba_samoglosek}")
print(f"Spacje: {liczba_spacji}")
print(f"Cyfry: {liczba_cyfr}")