Έλεγχος τύπου αντικειμένου στην Python

Για να ελέγξετε τον τύπο ενός στοιχείου, πρέπει να εφαρμόσετε τη συνάρτηση isinstance. Παίρνει ως πρώτη παράμετρο το στοιχείο και ως δεύτερη - τον τύπο στον οποίο ελέγχεται. Σε αυτήν την περίπτωση ως όνομα για τη δεύτερη παράμετρο λαμβάνονται τα ονόματα συναρτήσεων που μετατρέπουν δεδομένα στον αντίστοιχο τύπο: για συμβολοσειρές - str, αριθμών - int, λιστών - list κ.λπ. Η συνάρτηση isinstance επιστρέφει boolean τιμές: αν το στοιχείο αντιστοιχεί στον τύπο, τότε θα επιστραφεί True, διαφορετικά περίπτωση - False.

Παράδειγμα

Ας υποθέσουμε ότι έχουμε μια μεταβλητή tst. Ας ελέγξουμε αν η τιμή της είναι συμβολοσειρά. Για να το κάνετε αυτό, γράψτε στα δεξιά του if τη συνάρτηση isinstance. Στις παραμέτρους της περνάμε το tst και τον τύπο str. Αν η τιμή και ο τύπος δεδομένων ταιριάζουν, τότε ας εμφανιστεί το αντίστοιχο μήνυμα:

pythontst = 'a'
if isinstance(tst, str):
  print('string')

Αποτέλεσμα εκτέλεσης του κώδικα:

python'string'

Παράδειγμα

Τώρα ας ελέγξουμε αν η μεταβλητή είναι ακέραιος αριθμός:

pythontst = 12
if isinstance(tst, int):
  print('integer')

Αποτέλεσμα εκτέλεσης του κώδικα:

python'integer'

Παράδειγμα

Για να ελέγξετε αν το tst είναι αριθμός κινητής υποδιαστολής, στη δεύτερη παράμετρο του isinstance θα πρέπει να περάσετε τον τύπο float:

pythontst = 12.0
if isinstance(tst, float):
  print('float')

Αποτέλεσμα εκτέλεσης του κώδικα:

python'float'

Παράδειγμα

Τώρα ας γράψουμε μια συνθήκη για να ελέγξουμε το tst ως λίστα:

pythontst = [1, 2, 3]
if isinstance(tst, list):
  print('list')

Αποτέλεσμα εκτέλεσης του κώδικα:

python'list'

Παράδειγμα

Ας ελέγξουμε αν η μεταβλητή είναι tuple:

pythontst = (1, 2, 3)
if isinstance(tst, tuple):
  print('tuple')

Αποτέλεσμα εκτέλεσης του κώδικα:

python'tuple'

Παράδειγμα

Τώρα ας ορίσουμε μια συνθήκη για να μάθουμε αν η τιμή της μεταβλητής είναι λεξικό:

pythontst = {'a': 1, 'b': 2, 'c': 3}
if isinstance(tst, dict):
  print('dictionary')

Αποτέλεσμα εκτέλεσης του κώδικα:

python'dictionary'

Πρακτικές ασκήσεις

Задание 1

Ας υποθέσουμε ότι έχετε μια μεταβλητή. Ελέγξτε αν η τιμή της είναι ακέραιος αριθμός.

Задание 2

Μάθετε αν η δεδομένη μεταβλητή είναι αριθμός κινητής υποδιαστολής.

Задание 3

Ελέγξτε αν η μεταβλητή περιέχει τιμή συμβολοσειράς.

Задание 4

Ελέγξτε αν η δεδομένη μεταβλητή είναι λεξικό.

Задание 5

Ελέγξτε αν η δεδομένη μεταβλητή είναι σύνολο.

Задание 6

Ελέγξτε αν η δεδομένη μεταβλητή είναι tuple.

Задание 7

Ελέγξτε αν η δεδομένη μεταβλητή είναι λίστα.