Oled õppinud Pythoni põhitõed ja nüüd otsid projekte, millega oma oskusi proovile panna? Praktilised projektid on parim viis programmeerimise õppimiseks. Siin on viis põnevat projekti, mida iga Pythoni algaja võiks proovida.
1. Arva ära number
See on klassikaline projekt algajatele, mis õpetab tingimuslausete, juhuslikkuse ja kasutaja sisendi käsitlemist.
Projekti kirjeldus:
- Programm genereerib juhusliku numbri (näiteks 1-100)
- Kasutaja peab numbri ära arvama
- Programm annab vihjeid, kas pakutud number on liiga suur või väike
- Kui kasutaja arvab õige numbri ära, näitab programm, mitu katset läks
See projekt õpetab:
- Kasutaja sisendi töötlemist
- Tingimuslausete kasutamist
- Juhuslike arvude genereerimist (random moodul)
- Tsüklite kasutamist
Näide koodist:
import random
# Genereeri juhuslik number 1-100
saladus = random.randint(1, 100)
katseid = 0
arvatud = False
print("Arva ära number 1-100!")
# Mängu tsükkel
while not arvatud:
# Suurenda katsete arvu
katseid += 1
# Küsi kasutajalt pakkumist
pakkumine = int(input("Sinu pakkumine: "))
# Kontrolli pakkumist
if pakkumine < saladus:
print("Liiga väike!")
elif pakkumine > saladus:
print("Liiga suur!")
else:
arvatud = True
print(f"Õige! Arvasid ära {katseid} katsega.")
2. To-Do List rakendus
To-Do List on praktiline projekt, mis õpetab andmete salvestamist ja haldamist. See on kasulik tööriist, mida võid ka ise igapäevaselt kasutada.
Projekti kirjeldus:
- Kasutaja saab ülesandeid lisada
- Kasutaja saab ülesandeid märkida tehtuks
- Kasutaja saab ülesandeid kustutada
- Ülesanded salvestatakse failina, et need säiliksid ka pärast programmi sulgemist
See projekt õpetab:
- Andmestruktuuride (nagu listid ja sõnastikud) kasutamist
- Failide lugemist ja kirjutamist
- Funktsioonide loomist
- Kasutajaliidese disainimist
Alguses võid teha lihtsa käsurea rakenduse. Hiljem võid lisada graafilise kasutajaliidese, kasutades näiteks Tkinter teeki.
3. Ilmateate rakendus
Selle projekti käigus lood rakenduse, mis näitab ilmainfot kasutaja valitud asukoha kohta. See on suurepärane viis õppida, kuidas kasutada väliseid API-sid.
Projekti kirjeldus:
- Kasutaja sisestab linna nime
- Programm teeb päringu ilma API-le (nt OpenWeatherMap)
- Programm kuvab praeguse temperatuuri, ilma kirjelduse, õhuniiskuse jms
See projekt õpetab:
- API-de kasutamist
- HTTP päringute tegemist (requests teek)
- JSON andmete töötlemist
- Veatöötlust (mis juhtub, kui linna ei leita või internetiühendus puudub)
See projekt on suurepärane, sest see õpetab, kuidas luua rakendusi, mis suhtlevad välismaailmaga, mis on enamiku tänapäevaste rakenduste oluline osa.
4. Pildimanipulatsiooni tööriist
Pythonis on võimas teek nimega Pillow (PIL), mis võimaldab pilte töödelda. Selle projektiga saad õppida, kuidas pilte avada, muuta ja salvestada.
Projekti kirjeldus:
- Programm avab pildi
- Kasutaja saab valida erinevaid efekte (must-valge, pööramine, suuruse muutmine jms)
- Programm salvestab muudetud pildi
See projekt õpetab:
- Piltide töötlemist Pythonis
- Pillow teegi kasutamist
- Failide töötlemist
- Kasutajaliidese disainimist (kui lisad graafilise kasutajaliidese)
See on visuaalselt rahuldust pakkuv projekt, kus näed kohe oma koodi tulemusi.
5. Lihtne veebikraaper
Veebikraapimise eesmärk on automaatselt koguda andmeid veebilehtedelt. See on kasulik oskus, eriti kui oled huvitatud andmeanalüüsist.
Projekti kirjeldus:
- Programm külastab veebilehte (nt uudisteportaali)
- Programm eraldab pealkirjad ja/või artiklite lingid
- Programm salvestab andmed failina (nt CSV)
See projekt õpetab:
- Veebilehtede töötlemist Pythonis (requests ja BeautifulSoup teegid)
- HTML struktuuri mõistmist
- Andmete struktureerimist ja salvestamist
Näide koodist:
import requests
from bs4 import BeautifulSoup
import csv
# URL, mida kraapida
url = "https://www.näide.ee/uudised"
# Tee HTTP päring
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# Leia kõik uudiste pealkirjad (sõltub veebilehe struktuurist)
pealkirjad = soup.find_all('h2', class_='pealkiri')
# Salvesta andmed CSV faili
with open('uudised.csv', 'w', newline='', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['Pealkiri', 'Link'])
for pealkiri in pealkirjad:
link = pealkiri.find('a')
if link:
writer.writerow([pealkiri.text.strip(), link.get('href')])
NB! Veebikraapimisel järgi alati veebilehe kasutustingimusi ja ole eetiline. Mõned veebilehed keelavad automaatse andmete kogumise.
Kokkuvõte
Need viis projekti annavad sulle hea aluse Pythoni oskuste arendamiseks. Nad katavad erinevaid programmeerimise aspekte ja teeke, mis on Pythoni ökosüsteemis olulised.
Lõpuks, ära unusta, et programmeerimine on praktiline oskus. Mida rohkem projekte teed, seda paremaks saad. Ära karda teha vigu – need on õppimise olulised osad. Ja mis kõige tähtsam, naudi protsessi!
Kommentaarid (2)
Taavi Mets
1 päev tagasiProovisin teha "Arva ära number" mängu ja see töötas suurepäraselt! Nüüd plaanin proovida ilmateate rakendust. Kas on mingeid konkreetseid soovitusi, millist ilma API-d kasutada?
VastaJäta kommentaar