Skip to content

Lab python

Διαφάνειες από τον Marko Knöbl

Notebooks εισαγωγής στην Python

  1. Εισαγωγή
  2. Λεκτικά
  3. Λίστες, πλειάδες, λεξικά και σύνολα
  4. Η εντολή if
  5. Επαναλήψεις
  6. Comprehensions
  7. Εξαιρέσεις
  8. Αρχεία
  9. Συναρτήσεις
  10. Συναρτήσεις λάμδα
  11. Κλάσεις
  12. Logging
  13. Testing
  14. CSV
  15. Excel
  16. XML
  17. JSON
  18. YAML
  19. Αποθήκευση (serialize) αντικειμένων με το pickle
  20. Ημερομηνίες και ώρες
  21. Τυχαίες τιμές
  22. Κανονικές εκφράσεις
  23. Generators
  24. Iterators
  25. Το module itertools
  26. enums
  27. Το module urllib
  28. Το module requests
  29. bs4
  30. Το module collections
  31. PLY - Python Lex Yacc
  32. Aliasing
  33. AST
  34. Υπερφόρτωση τελεστών
  35. Τροποποιήσιμα και μη τροποποιήσιμα αντικείμενα
  36. numpy
  37. pandas
  38. matplotlib
  39. dataclasses
  40. Το module functools
  41. LEGB
  42. Το module os
  43. Easter eggs
  44. seaborn
  45. datasets

Βιβλία για Python

Online μαθήματα

Tutorials

Videos

Cheat sheets

Python roadmap

A mushroom-head robot

Αποσπάσματα κώδικα

ανάγνωση και εκτύπωση ημερομηνιών

datetime_example.py
from datetime import datetime

# διάβασε μια ημερομηνία της μορφής ΕΕΕΕ.ΜΜ.ΗΗ 
# και εμφάνισε την ημερομηνία σε άλλες μορφές, 
# δείτε το https://strftime.org/
date1 =datetime.strptime("2024.4.10", "%Y.%m.%d")
print(date1.strftime("%d/%m/%Y"))
print(date1.strftime("%-d|%-m|%y"))
print(date1.strftime("%d-%B-%y"))
print(date1.strftime("%a %-d %b %Y"))
Ένα παράδειγμα εκτέλεσης
$ python datetime_example.py
10/04/2024
10|4|24
10-April-24
Wed 10 Apr 2024

ορίσματα γραμμής εντολών με το sys.argv

command_line_arg_example1.py
1
2
3
4
5
6
7
import sys


if __name__ == "__main__":
    print(f"ΠΛΗΘΟΣ ΟΡΙΣΜΑΤΩΝ: {len(sys.argv)}")
    for i, argv in enumerate(sys.argv):
        print(f"όρισμα {i} με τιμή {argv}")
Ένα παράδειγμα εκτέλεσης
$ python command_line_arg_example1.py 1 a bcde
ΠΛΗΘΟΣ ΟΡΙΣΜΑΤΩΝ: 4
όρισμα 0 με τιμή /Users/.../command_line_arg_example1.py
όρισμα 1 με τιμή 1
όρισμα 2 με τιμή a
όρισμα 3 με τιμή bcde

ορίσματα γραμμής εντολών με το argparse

argparse_example.py
import argparse


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument('--input_file', '-i', type=str, help='διαδρομή προς αρχείο εισόδου')
    parser.add_argument('--output_file', '-o', type=str, help='διαδρομή προς αρχείο εξόδου')
    args = parser.parse_args()

    print('Αρχείο εισόδου:', args.input_file)
    print('Αρχείο εξόδου:', args.output_file)
Ένα παράδειγμα εκτέλεσης
$ python argparse_example.py -i a.txt -o b.txt
Αρχείο εισόδου: a.txt
Αρχείο εξόδου: b.txt

απλό γράφημα με το matplotlib

matplotlib_example1.py
1
2
3
4
5
6
7
import matplotlib.pyplot as plt

days = ['Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή']
values = [10, 40, 50, 20, 35]
plt.bar(days, values, color='skyblue')
plt.ylabel('Περιστατικά')
plt.show()
Ένα παράδειγμα εκτέλεσης (θα πρέπει να έχει προηγηθεί η εγκατάσταση με το pip της βιβλιοθήκης matplotlib)
$ python matplotlib_example1.py
matplotlib example 1

χρονομέτρηση κώδικα στην Python με το time.time()

time_execution1.py
import time
import random


def be_busy():
    sleep_time = random.uniform(1, 3)
    time.sleep(sleep_time)


start_time = time.time()
be_busy()
end_time = time.time()

elapsed_time = end_time - start_time
print(f"Execution time: {elapsed_time} seconds")
Ένα παράδειγμα εκτέλεσης
$ python time_execution1.py
Execution time: 2.0694435829936992 seconds

χρονομέτρηση κώδικα στην Python με το timeit.default_timer()

time_execution2.py
from timeit import default_timer

import time 
import random


def be_busy():
    sleep_time = random.uniform(1, 3)
    time.sleep(sleep_time)


start_time = default_timer()
be_busy()
end_time = default_timer()

elapsed_time = end_time - start_time
print(f"Execution time: {elapsed_time} seconds")
Ένα παράδειγμα εκτέλεσης
$ python time_execution2.py
Execution time: 1.9552855410147458 seconds

χρήση assert στην Python

assert_example.py
1
2
3
4
5
6
def divide(a, b):
    assert b != 0, "Denominator cannot be zero!"
    return a / b

print(divide(10, 2))  # 5.0
print(divide(10, 0))  # ZeroDivisionError: division by zero
Παραδείγμα εκτέλεσης 1
$ python assert_example.py
5.0
Traceback (most recent call last):
File "assert_example.py", line 6, in <module>
    print(divide(10, 0))  # AssertionError: Denominator cannot be zero!
File "assert_example.py", line 2, in divide
    assert b != 0, "Denominator cannot be zero!"
AssertionError: Denominator cannot be zero!
Παραδείγμα εκτέλεσης 2
$ python assert_example.py
5.0
Traceback (most recent call last):
File "assert_example.py", line 6, in <module>
    print(divide(10, 0))  # AssertionError: Denominator cannot be zero!
File "assert_example.py", line 3, in divide
    return a / b
ZeroDivisionError: division by zero