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

Πράξεις και Συμβολοσειρές

Αριθμητικοί τελεστές

Τελεστής Πράξη
+ - * πρόσθεση, αφαίρεση, πολλαπλασιασμός
/ διαίρεση (πάντα float)
// ακέραια διαίρεση
% υπόλοιπο
** ύψωση σε δύναμη

Προτεραιότητα: παρενθέσεις → ** (δεξιά→αριστερά) → * / // % → + -.

Προτεραιότητα στην πράξη

Επαυξημένη εκχώρηση

+= -= *= /= //= %= **=

ZeroDivisionError και υπερχείλιση

Σημείωση

x / 0 → ZeroDivisionError. Άλλες γλώσσες έχουν ακέραιους σταθερού μεγέθους που υπερχειλίζουν αθόρυβα — η Python όχι.

Συμβολοσειρές

Δείκτες και τεμαχισμός

Οι συμβολοσειρές είναι αμετάβλητες: text[0] = 'x' → TypeError.

Μέθοδοι συμβολοσειρών

Δομημένη εκτύπωση: f-strings

Πρόθεμα f · οποιαδήποτε έκφραση μέσα σε { } · μορφή μετά από :

Παλιότεροι τρόποι: '%.2f' % score (τύπου printf), '{:.2f}'.format(score). Οι f-strings (Python 3.6+) είναι ο προτιμώμενος — από την Εβδομάδα 3 παντού.

ord και chr

Βάση της λεξικογραφικής σύγκρισης: 'a' < 'b' επειδή ord('a') < ord('b').

Βιβλιοθήκες

Η εντολή import

Αποφεύγουμε το from math import * — γεμίζει το πρόγραμμα με ονόματα άγνωστης προέλευσης.

Η βιβλιοθήκη math

Εφαρμογές

Όγκος στερεών

Fahrenheit ⇄ Celsius

Το κρυπτοσύστημα του Καίσαρα

Βήμα-βήμα: μετατόπιση κάθε γράμματος, modulo 26:

def caesar_shift(text, k):
    result = ''
    for ch in text:
        if ch.isalpha():
            base = ord('A') if ch.isupper() else ord('a')
            result += chr(base + (ord(ch) - base + k) % 26)
        else:
            result += ch
    return result

Σύνοψη

  • Αριθμητικοί τελεστές, προτεραιότητα, επαυξημένη εκχώρηση
  • ZeroDivisionError, υπερχείλιση: αναπαράσταση ακεραίων/float
  • Συμβολοσειρές: δείκτες, τεμαχισμός, αμεταβλητότητα, μέθοδοι, ord/chr
  • f-strings: f'{x:.2f}', στοίχιση, βάσεις — δομημένη εκτύπωση
  • Βιβλιοθήκες: import (τρεις μορφές) και το math (sqrt, log, sin/cos, …)

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