Πληροφορική Ι — Εβδομάδα 4

Ο Βρόχος For και Λίστες

Η εντολή for και range

break και continue

Λίστες και Πλειάδες

Δημιουργία και πρόσβαση

Λίστες με κατανόηση

Μεταβλητότητα και αντίγραφα

Σημαντικό

list2 = list1 δεν αντιγράφει. Χρησιμοποιήστε list1[:] ή list(list1).

Δισδιάστατες λίστες

Πλειάδες (tuples)

Αμετάβλητες· τις ορίζει το κόμμα, όχι οι παρενθέσεις.

f-strings και λίστες

Ταξινόμηση με επιλογή

Βρίσκει το ελάχιστο του υπόλοιπου τμήματος, γραμμή προς γραμμή:

def selection_sort(v):
    for i in range(len(v) - 1):
        min_index = i
        for j in range(i + 1, len(v)):
            if v[j] < v[min_index]:
                min_index = j
        v[i], v[min_index] = v[min_index], v[i]

Γραμμική αναζήτηση σε λίστα

Σάρωση στοιχείο-στοιχείο· return μόλις βρεθεί. Σε οποιαδήποτε λίστα:

Η δυαδική αναζήτηση (ταξινομημένη λίστα, μισό διάστημα κάθε φορά) ταιριάζει με τον while — Εβδομάδα 5.

Πρώτοι Αριθμοί

Έλεγχος πρώτων & κόσκινο Ερατοσθένη

Βήμα-βήμα: αρχικοποίηση, σβήσε πολλαπλάσια, συγκέντρωσε:

def sieve_of_eratosthenes(N):
    is_candidate = [True] * (N + 1)
    is_candidate[0] = is_candidate[1] = False
    for i in range(2, math.isqrt(N) + 1):
        if is_candidate[i]:
            for multiple in range(i * i, N + 1, i):
                is_candidate[multiple] = False
    return [n for n in range(N + 1) if is_candidate[n]]

Ελέγχουμε υποψήφιους πρώτους μόνο μέχρι \(\sqrt{N}\).

Σύνοψη

  • for, range, ένθετοι βρόχοι, break/continue
  • Λίστες: δημιουργία, πρόσβαση, τεμαχισμός, μεταβλητότητα/αντίγραφα
  • Λίστες με κατανόηση, δισδιάστατες λίστες
  • Πλειάδες: το κόμμα, packing/unpacking, ανταλλαγή τιμών, enumerate/zip
  • f-strings + λίστες: str.join, στοιχισμένα πινακάκια
  • Ταξινόμηση με επιλογή, γραμμική αναζήτηση (δυαδική → Εβδομάδα 5)
  • Έλεγχος πρώτων, κόσκινο του Ερατοσθένη

⤺ Πλήρεις σημειώσεις  ·  Πρόγραμμα μαθήματος