42 Ερωτήσεις και απαντήσεις συνέντευξης Python σε πραγματικό χρόνο [2022]

Ετοιμάζεστε για συνεντεύξεις Python; Ή απλά θέλετε να μάθετε πόσα Python γνωρίζετε; Κανένα πρόβλημα. Εδώ καλύπτουμε τα προβλήματά σας με ερωτήσεις και απαντήσεις.

Το άρθρο θα σας βοηθήσει να καταλάβετε τι είδους ερωτήσεις μπορεί να αντιμετωπίσετε στις συνεντεύξεις. Ή σας βοηθά να αξιολογήσετε τις δεξιότητές σας στο Python. Φροντίστε να απαντήσετε στις ερωτήσεις πριν δείτε τις απαντήσεις για να αξιολογήσετε τον εαυτό σας με ακρίβεια. Χωρίς καμία άλλη καθυστέρηση, ας βουτήξουμε στις ερωτήσεις.

Οι ερωτήσεις χωρίζονται σε διαφορετικές ενότητες ανάλογα με το είδος των θεμάτων. Κάθε ενότητα έχει ερωτήσεις μαζί με επιμελημένες απαντήσεις. Μπορείτε να τροποποιήσετε την απάντηση στη δική σας γλώσσα με την ίδια σημασία. Έτσι, ο ερευνητής δεν θα νιώσει ότι διαβάζετε κάτι.

Πίνακας περιεχομένων

Γλώσσα Python

#1. Τι είναι η Python;

Η Python είναι μια ερμηνευμένη γλώσσα προγραμματισμού υψηλού επιπέδου, γενικής χρήσης. Μπορούμε να δημιουργήσουμε σχεδόν κάθε τύπο εφαρμογής χρησιμοποιώντας Python με βιβλιοθήκες και πλαίσια τρίτων. Η Python είναι μια από τις πιο δημοφιλείς γλώσσες προγραμματισμού σε προηγμένες τεχνολογίες όπως AI, Data Science κ.λπ.

#2. Ποια είναι η κύρια διαφορά μεταξύ ενός διερμηνέα και ενός μεταγλωττιστή;

Ο διερμηνέας μεταφράζει μια πρόταση τη φορά σε κώδικα μηχανής, ενώ ο μεταγλωττιστής μεταφράζει ολόκληρο τον κώδικα κάθε φορά σε κώδικα μηχανής.

#3. Είναι η Python στατικά ή δυναμικά πληκτρολογημένη γλώσσα;

Η Python είναι μια δυναμικά πληκτρολογημένη γλώσσα.

#4. Τι εννοείτε με τον όρο δυναμικά πληκτρολογημένη γλώσσα;

Οι δυναμικά πληκτρολογημένες γλώσσες ελέγχουν τους τύπους των μεταβλητών κατά την εκτέλεση. Ορισμένες δυναμικά πληκτρολογημένες γλώσσες είναι η Python, η JavaScript, η Ruby κ.λπ.

Μπόνους: Οι στατικά πληκτρολογημένες γλώσσες ελέγχουν τους τύπους των μεταβλητών κατά το χρόνο μεταγλώττισης. Μερικές στατικά πληκτρολογημένες γλώσσες είναι η C++, η C, η Java κ.λπ..,

#5. Δώστε μερικές εφαρμογές της Python.

Η Python έχει απλούστερη και εύκολη στην εκμάθηση σύνταξη. Μπορεί να μοιάζει με αγγλικό. Η κοινότητα των προγραμματιστών για την Python είναι τεράστια. Μπορούμε να βρούμε πολλά πακέτα τρίτων για να εργαστούμε με διαφορετικούς τύπους ανάπτυξης εφαρμογών. Όσον αφορά την ανάπτυξη, μπορούμε να δημιουργήσουμε εφαρμογές web, εφαρμογές GUI, εφαρμογές CLI, κ.λπ.,

Μία από τις πιο δημοφιλείς εφαρμογές της Python είναι η αυτοματοποίηση. Μπορούμε εύκολα να δημιουργήσουμε σενάρια στην Python για να αυτοματοποιήσουμε εργασίες όπως καθαρισμός δίσκου, αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου, λήψη δεδομένων σχετικά με τις τιμές προϊόντων κ.λπ.,

Η Python είναι μια από τις πιο δημοφιλείς γλώσσες για χρήση στον τομέα της Επιστήμης Δεδομένων.

#6. Ποιες εφαρμογές δημιουργήσατε χρησιμοποιώντας Python;

Έχω γράψει πολλά σενάρια αυτοματισμού για την εξάλειψη επαναλαμβανόμενων και βαρετών εργασιών. Και σενάρια για να λαμβάνετε πληροφορίες σχετικά με τις τιμές των προϊόντων, τη διαθεσιμότητα κ.λπ.

Έχω επίσης δουλέψει με τα πλαίσια όπως το Django, το Flask για τη δημιουργία διαδικτυακών εφαρμογών. Και δημιουργήστε μερικές εφαρμογές Ιστού χρησιμοποιώντας τόσο το Django όσο και το Flask.

  Διαβάστε & Αποθήκευση Τεχνικών Ειδήσεων που απευθύνονται ειδικά σε εσάς

Σημείωση: Η παραπάνω απάντηση είναι ένα παράδειγμα. Η απάντησή σας μπορεί να είναι εντελώς διαφορετική από την παραπάνω. Προσπαθήστε να εξηγήσετε διαφορετικούς τομείς στους οποίους έχετε εργαστεί χρησιμοποιώντας την Python. Δείξτε τις εφαρμογές εάν είναι διαθέσιμες.

Τύποι Δεδομένων

#7. Ποιοι είναι οι ενσωματωμένοι τύποι δεδομένων στην Python;

Υπάρχουν πολλοί ενσωματωμένοι τύποι δεδομένων στην Python. Είναι int, float, complex, bool, list, tuple, set, dict, str.

Σημείωση: Δεν χρειάζεται να πείτε όλους τους τύπους δεδομένων που υπάρχουν στην Python. Αναφέρετε μερικά από αυτά που χρησιμοποιείτε κυρίως. Ο ερευνητής μπορεί να κάνει ερωτήσεις με βάση την απάντησή σας.

#8. Ποια είναι η διαφορά μεταξύ λίστας και πλειάδας;

Τόσο η λίστα όσο και η πλειάδα χρησιμοποιούνται για την αποθήκευση της συλλογής αντικειμένων. Η κύρια διαφορά μεταξύ της λίστας και της πλειάδας είναι “η λίστα είναι μεταβλητό αντικείμενο ενώ η πλειάδα είναι ένα αμετάβλητο αντικείμενο”.

#9. Τι είναι οι μεταβλητοί και οι αμετάβλητοι τύποι δεδομένων;

Οι μεταβλητοί τύποι δεδομένων μπορούν να αλλάξουν μετά τη δημιουργία τους. Μερικά από τα μεταβλητά αντικείμενα στην Python είναι λίστα, σύνολο, dict.

Οι αμετάβλητοι τύποι δεδομένων δεν μπορούν να αλλάξουν μετά τη δημιουργία τους. Μερικά από τα αμετάβλητα αντικείμενα στην Python είναι str, tuple.

#10. Εξηγήστε μερικές μεθόδους της λίστας.

1. append – η μέθοδος χρησιμοποιείται για την προσθήκη ενός στοιχείου στη λίστα. Προσθέτει το στοιχείο στο τέλος της λίστας.

>>> a = [1, 2]
>>> a.append(3)
>>> a
[1, 2, 3]

2. pop – η μέθοδος χρησιμοποιείται για την αφαίρεση ενός στοιχείου από τη λίστα. Θα αφαιρέσει το τελευταίο στοιχείο εάν δεν παρέχουμε κανένα ευρετήριο ως όρισμα ή θα αφαιρέσει το στοιχείο στο ευρετήριο εάν παρέχουμε ένα όρισμα.

>>> a = [1, 2, 3, 4, 5]
>>> a.pop()
5
>>> a
[1, 2, 3, 4]
>>> a.pop(1)
2
>>> a
[1, 3, 4]

3. remove – η μέθοδος χρησιμοποιείται για την αφαίρεση ενός στοιχείου από τη λίστα. Πρέπει να παρέχουμε το στοιχείο ως όρισμα που θέλουμε να αφαιρέσουμε από τη λίστα. Καταργεί την πρώτη εμφάνιση του στοιχείου από τη λίστα.

>>> a = [1, 2, 2, 3, 4]
>>> a = [1, 2, 3, 2, 4]
>>> a.remove(1)
>>> a
[2, 3, 2, 4]
>>> a.remove(2)
>>> a
[3, 2, 4]

4. sort – η μέθοδος που χρησιμοποιείται για την ταξινόμηση της λίστας σε αύξουσα ή φθίνουσα σειρά.

>>> a = [3, 2, 4, 1]
>>> a.sort()
>>> a
[1, 2, 3, 4]
>>> a.sort(reverse=True)
>>> a
[4, 3, 2, 1]

5. reverse – η μέθοδος χρησιμοποιείται για την αντιστροφή των στοιχείων της λίστας.

>>> a = [3, 2, 4, 1]
>>> a.reverse()
>>> a
[1, 4, 2, 3]

Σημείωση: Υπάρχουν και άλλες μέθοδοι όπως διαγραφή, εισαγωγή, μέτρηση, κ.λπ.… Δεν χρειάζεται να εξηγήσετε κάθε μέθοδο της λίστας στον συνεντευκτή. Απλώς εξηγήστε δύο ή τρεις μεθόδους που χρησιμοποιείτε κυρίως.

#11. Εξηγήστε μερικές μεθόδους συμβολοσειράς

1. split – η μέθοδος χρησιμοποιείται για να χωρίσει τη συμβολοσειρά στα επιθυμητά σημεία. Επιστρέφει τη λίστα ως αποτέλεσμα. Από προεπιλογή, χωρίζει τη συμβολοσειρά σε κενά. Μπορούμε να παρέχουμε τον οριοθέτη ως όρισμα για τη μέθοδο.

>>> a = "This is grtechpc.org"
>>> a.split()
['This', 'is', 'Geekflare']
>>> a = "1, 2, 3, 4, 5, 6"
>>> a.split(", ")
['1', '2', '3', '4', '5', '6']

2. join – η μέθοδος χρησιμοποιείται για τον συνδυασμό της λίστας αντικειμένων συμβολοσειρών. Συνδυάζει τα αντικείμενα συμβολοσειράς με τον οριοθέτη που παρέχουμε.

>>> a = ['This', 'is', 'Geekflare']
>>> ' '.join(a)
'This is grtechpc.org'
>>> ', '.join(a)
'This, is, grtechpc.org'

Σημείωση: Μερικές άλλες μέθοδοι συμβολοσειρών είναι: κεφαλαία, isalnum, isalpha, isdigit, κάτω, άνω, κέντρο κ.λπ.,

#12. Ποια είναι η αρνητική ευρετηρίαση σε λίστες;

Το ευρετήριο χρησιμοποιείται για πρόσβαση στο στοιχείο από τις λίστες. Η κανονική ευρετηρίαση της λίστας ξεκινά από το 0.

Παρόμοια με την κανονική ευρετηρίαση, η αρνητική ευρετηρίαση χρησιμοποιείται επίσης για την πρόσβαση στα στοιχεία από τις λίστες. Όμως, η αρνητική ευρετηρίαση μας επιτρέπει να έχουμε πρόσβαση στο ευρετήριο από το τέλος της λίστας. Η αρχή της αρνητικής ευρετηρίασης είναι -1. Και συνεχίζει να αυξάνεται όπως -2, -3, -4, κ.λπ.., μέχρι το μήκος της λίστας.

>>> a = [1, 2, 3, 4, 5]
>>> a[-1]
5
>>> a[-3]
3
>>> a[-5]
1

#13. Εξηγήστε μερικές μεθόδους εντολών

1. αντικείμενα – η μέθοδος επιστρέφει κλειδί: ζεύγη τιμών λεξικών ως λίστα πλειάδων.

>>> a = {1: 'grtechpc.org', 2: 'grtechpc.org Tools', 3: 'grtechpc.org Online Compiler'}
>>> a.items()
dict_items([(1, 'Geekflare'), (2, 'Geekflare Tools'), (3, 'Geekflare Online Compiler')])

2. pop – η μέθοδος χρησιμοποιείται για την αφαίρεση του ζεύγους κλειδιού: τιμής από το λεξικό. Δέχεται το κλειδί ως όρισμα και το αφαιρεί από το λεξικό.

>>> a = {1: 2, 2: 3}
>>> a.pop(2)
3
>>> a
{1: 2}

Σημείωση: Μερικές άλλες μέθοδοι dict είναι: λήψη, κλειδιά, τιμές, διαγραφή κ.λπ.

#14. Τι είναι το slicing στην Python;

Το Slicing χρησιμοποιείται για πρόσβαση στην υποσυστοιχία από έναν τύπο δεδομένων ακολουθίας. Επιστρέφει τα δεδομένα από τον τύπο δεδομένων ακολουθίας με βάση τα ορίσματα που παρέχουμε. Επιστρέφει τον ίδιο τύπο δεδομένων με τον τύπο δεδομένων προέλευσης.

Το Slicing δέχεται τρία επιχειρήματα. Είναι ο δείκτης έναρξης, ο δείκτης τέλους και το βήμα αύξησης. Η σύνταξη του τεμαχισμού είναι μεταβλητή[start:end:step]. Τα επιχειρήματα δεν είναι υποχρεωτικά για τεμαχισμό. Μπορείτε να καθορίσετε μια κενή άνω και κάτω τελεία (:) η οποία επιστρέφει όλα τα δεδομένα ως αποτέλεσμα.

>>> a = [1, 2, 3, 4, 5]
>>> a[:]
[1, 2, 3, 4, 5]
>>> a[:3]
[1, 2, 3]
>>> a[3:]
[4, 5]
>>> a[0:5:2]
[1, 3, 5]

#15. Ποιοι τύποι δεδομένων επιτρέπουν τον τεμαχισμό;

Μπορούμε να χρησιμοποιήσουμε το slicing σε τύπους δεδομένων λίστας, πλειάδας και str.

  Πώς να ξεκλειδώσετε SIM Samsung Galaxy S8/S8+

#16. Τι είναι οι τελεστές αποσυσκευασίας στην Python; Πώς να τα χρησιμοποιήσετε;

Οι τελεστές * και ** αποσυσκευάζουν τελεστές στην Python.

Ο τελεστής αποσυσκευασίας * χρησιμοποιείται για την εκχώρηση πολλαπλών τιμών σε διαφορετικές τιμές κάθε φορά από τύπους δεδομένων ακολουθίας.

>>> items = [1, 2, 3]
>>> a, b, c = items
>>> a
1
>>> b
2
>>> c
3
>>> a, *b = items
>>> a
1
>>> b
[2, 3]

Ο τελεστής αποσυσκευασίας ** χρησιμοποιείται με τύπους δεδομένων dict. Η αποσυσκευασία στα λεξικά δεν λειτουργεί όπως η αποσυσκευασία με τους τύπους δεδομένων ακολουθίας.

Η αποσυσκευασία στα λεξικά χρησιμοποιείται κυρίως για την αντιγραφή στοιχείων κλειδιού: αξίας από το ένα λεξικό στο άλλο.

>>> a = {1:2, 3:4}
>>> b = {**a}
>>> b
{1: 2, 3: 4}
>>> c = {3:5, 5:6}
>>> b = {**a, **c}
>>> b
{1: 2, 3: 5, 5: 6}

Σημείωση: Μπορείτε να ανατρέξετε σε αυτό το άρθρο για περισσότερες πληροφορίες σχετικά με αυτούς τους τελεστές.

Προϋποθέσεις και βρόχοι

#17. Έχει η Python δηλώσεις διακόπτη;

Όχι, η Python δεν έχει εντολές διακόπτη.

#18. Πώς υλοποιείτε τη λειτουργικότητα των εντολών switch στην Python;

Μπορούμε να εφαρμόσουμε τη λειτουργικότητα των εντολών διακόπτη χρησιμοποιώντας εντολές if και elif.

>>> if a == 1:
...     print(...)
... elif a == 2:
...     print(....)

#19. Τι είναι οι δηλώσεις διακοπής και συνέχειας;

break – η εντολή break χρησιμοποιείται για τον τερματισμό του τρέχοντος βρόχου. Η εκτέλεση του κώδικα θα μεταπηδήσει στο εξωτερικό του βρόχου διακοπής.

>>> for i in range(5):
...     if i == 3:
...             break
...     print(i)
...
0
1
2

συνέχεια – η δήλωση συνεχίζει χρησιμοποιείται για να παραλείψει την εκτέλεση του υπόλοιπου κώδικα. Ο κώδικας μετά τη δήλωση συνέχειας δεν εκτελείται στην τρέχουσα επανάληψη και η εκτέλεση πηγαίνει στην επόμενη επανάληψη.

>>> for i in range(5):
...     if i == 3:
...             continue
...     print(i)
...
0
1
2
4

#20. Πότε εκτελείται ο κώδικας στο else με βρόχους while και for;

Ο κώδικας μέσα στο μπλοκ else με βρόχους while και for εκτελείται μετά την εκτέλεση όλων των επαναλήψεων. Και ο κώδικας μέσα στο μπλοκ else δεν εκτελείται όταν σπάμε τους βρόχους.

#21. Τι είναι η κατανόηση λίστας και λεξικού;

Κατανοήσεις λίστας και λεξικού είναι συντακτικό για τους βρόχους for.

>>> a = [i for i in range(10)]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a = {i: i + 1 for i in range(10)}
>>> a
{0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}
>>>

#22. Πώς λειτουργεί η συνάρτηση εύρους;

Η συνάρτηση εμβέλειας επιστρέφει την ακολουθία αριθμών μεταξύ της αρχής και της διακοπής με ένα βήμα αύξησης. Η σύνταξη της συνάρτησης εύρους είναι range(start, stop[, step]).

Το όρισμα στοπ είναι υποχρεωτικό. Τα ορίσματα αρχή και βήμα είναι προαιρετικά. Η προεπιλεγμένη τιμή έναρξης και βήματος είναι 0 και 1, αντίστοιχα.

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 10))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 10, 2))
[1, 3, 5, 7, 9]
>>>

Λειτουργίες

#23. Ποιες είναι οι παράμετροι και τα ορίσματα;

Οι παράμετροι είναι τα ονόματα που αναφέρονται στον ορισμό της συνάρτησης.

Ορίσματα είναι οι τιμές που μεταβιβάζονται στη συνάρτηση κατά την κλήση.

#24. Ποιοι είναι οι διαφορετικοί τύποι ορισμάτων στην Python;

Υπάρχουν κυρίως τέσσερις τύποι επιχειρημάτων. Είναι ορίσματα θέσης, προεπιλεγμένα ορίσματα, ορίσματα λέξεων-κλειδιών και αυθαίρετα ορίσματα.

Ορίσματα θέσης: τα κανονικά ορίσματα που ορίζουμε σε συναρτήσεις που ορίζονται από το χρήστη ονομάζονται ορίσματα θέσης. Όλα τα ορίσματα θέσης απαιτούνται κατά την κλήση της συνάρτησης.

>>> def add(a, b):
...     return a + b
...
>>> add(1, 2)
3
>>> add(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: add() missing 1 required positional argument: 'b'
>>>

Προεπιλεγμένα ορίσματα: μπορούμε να παρέχουμε την τιμή στα ορίσματα στον ίδιο τον ορισμό της συνάρτησης ως προεπιλεγμένη τιμή. Όταν ο χρήστης δεν πέρασε την τιμή, η συνάρτηση θα εξετάσει την προεπιλεγμένη τιμή.

>>> def add(a, b=3):
...     return a + b
...
>>> add(1, 2)
3
>>> add(1)
4

Ορίσματα λέξεων-κλειδιών: μπορούμε να καθορίσουμε το όνομα των ορισμάτων κατά την επίκληση της συνάρτησης και να εκχωρήσουμε τιμές σε αυτά. Τα ορίσματα λέξεων-κλειδιών μας βοηθούν να αποφύγουμε την παραγγελία που είναι υποχρεωτική σε ορίσματα θέσης.

>>> def add(a, b):
...     print("a ", a)
...     print("b ", b)
...     return a + b
...
>>> add(b=4, a=2)
a  2
b  4
6

Αυθαίρετα ορίσματα: χρησιμοποιούμε αυθαίρετα ορίσματα για να συλλέξουμε μια δέσμη τιμών σε μια στιγμή που δεν γνωρίζουμε τον αριθμό των ορισμάτων που θα λάβει η συνάρτηση. Εμείς * και ** τελεστές στον ορισμό της συνάρτησης για να συλλέξουμε τα ορίσματα.

>>> def add(*args):
...     return sum(args)
...
>>> add(1, 2, 3, 4, 5)
15
>>> def dict_args(**kwargs):
...     print(kwargs)
...
>>> dict_args(a="grtechpc.org", b='grtechpc.org Tools', c="grtechpc.org Online Compiler")
{'a': 'grtechpc.org', 'b': 'grtechpc.org Tools', 'c': 'grtechpc.org Online Compiler'}

#25. Ποια είναι η συνάρτηση λάμδα;

Οι συναρτήσεις λάμδα είναι μικρές ανώνυμες συναρτήσεις στην Python. Έχει μεμονωμένες εκφράσεις και δέχεται πολλαπλά ορίσματα.

>>> add = lambda a, b: a + b
>>> add(1, 3)
4

#26. Ποια είναι η διαφορά μεταξύ της κανονικής λειτουργίας και της λειτουργίας λάμδα;

Η λειτουργικότητα τόσο των κανονικών συναρτήσεων όσο και των συναρτήσεων λάμδα είναι παρόμοια. Όμως, πρέπει να γράψουμε κάποιο επιπλέον κώδικα σε κανονικές συναρτήσεις σε σύγκριση με τις συναρτήσεις λάμδα για την ίδια λειτουργικότητα.

  Κατανόηση των ορολογιών αποκατάστασης καταστροφών – RTO, RPO, Failover, BCP και άλλα

Οι συναρτήσεις λάμδα είναι χρήσιμες όταν υπάρχει μία μόνο έκφραση.

#27. Σε τι χρησιμοποιείται η λέξη-κλειδί pass;

Η λέξη-κλειδί pass χρησιμοποιείται για να αναφέρει ένα κενό μπλοκ στον κώδικα. Η Python δεν μας επιτρέπει να αφήνουμε τα μπλοκ χωρίς κώδικα. Έτσι, η δήλωση pass μας επιτρέπει να ορίσουμε κενά μπλοκ (όταν αποφασίσουμε να συμπληρώσουμε τον κώδικα αργότερα).

>>> def add(*args):
...
...
  File "<stdin>", line 3

    ^
IndentationError: expected an indented block
>>> def add(*args):
...     pass
...
>>>

#28. Τι είναι η αναδρομική συνάρτηση;

Η συνάρτηση που καλεί τον εαυτό της ονομάζεται αναδρομική συνάρτηση.

Τι είναι οι χειριστές συσκευασίας στην Python; Πώς να τα χρησιμοποιήσετε;

Οι τελεστές συσκευασίας χρησιμοποιούνται για τη συλλογή πολλαπλών ορισμάτων σε συναρτήσεις. Είναι γνωστά ως αυθαίρετα επιχειρήματα.

Σημείωση: μπορείτε να ανατρέξετε σε αυτό το άρθρο για περισσότερες πληροφορίες σχετικά με τους τελεστές συσκευασίας στην Python.

#29. OOPs στην Python

Ποια λέξη-κλειδί χρησιμοποιείται για τη δημιουργία κλάσεων στην Python;

Η λέξη-κλειδί class χρησιμοποιείται για τη δημιουργία κλάσεων στην Python. Θα πρέπει να ακολουθήσουμε την περίπτωση pascal για την ονομασία των τάξεων στην Python ως πρακτική του κλάδου.

>>> class Car:
...     pass
...

#30. Πώς να δημιουργήσετε μια κλάση στην Python;

Μπορούμε να δημιουργήσουμε ένα στιγμιότυπο μιας κλάσης στην Python καλώντας το απλώς σαν συνάρτηση. Μπορούμε να περάσουμε τα απαιτούμενα χαρακτηριστικά για το αντικείμενο με τον ίδιο τρόπο που κάνουμε για τα ορίσματα συνάρτησης.

>>> class Car:
...     def __init__(self, color):
...             self.color = color
...
>>> red_car = Car('red')
>>> red_car.color
'red'
>>> green_car = Car('green')
>>> green_car.color
'green'
>>>

#31. Τι είναι ο εαυτός στην Python;

Ο εαυτός αντιπροσωπεύει το αντικείμενο της κλάσης. Χρησιμοποιείται για την πρόσβαση στα χαρακτηριστικά και τις μεθόδους αντικειμένου μέσα στην κλάση για το συγκεκριμένο αντικείμενο.

#32. Τι είναι η μέθοδος __init__;

Το __init__ είναι η μέθοδος κατασκευής παρόμοια με τους κατασκευαστές σε άλλες γλώσσες OOP. Εκτελείται αμέσως όταν δημιουργούμε ένα αντικείμενο για την κλάση. Χρησιμοποιείται για την προετοιμασία των αρχικών δεδομένων για το παράδειγμα.

#33. Τι είναι το docstring στην Python;

Οι συμβολοσειρές τεκμηρίωσης ή οι συμβολοσειρές εγγράφων χρησιμοποιούνται για την τεκμηρίωση ενός μπλοκ κώδικα. Χρησιμοποιούνται επίσης ως σχόλια πολλαπλών γραμμών.

Αυτές οι συμβολοσειρές εγγράφων χρησιμοποιούνται στις μεθόδους μιας κλάσης για να περιγράψουν τι κάνει μια συγκεκριμένη μέθοδος. Και μπορούμε να δούμε τη μέθοδο docstring χρησιμοποιώντας τη μέθοδο βοήθειας.

>>> class Car:
...     def __init__(self, color):
...             self.color = color
...
...     def change_color(self, updated_color):
...             """This method changes the color of the car"""
...             self.color = updated_color
...
>>> car = Car('red')
>>> help(car.change_color)
Help on method change_color in module __main__:

change_color(updated_color) method of __main__.Car instance
    This method changes the color of the car

>>>

#34. Τι είναι οι μέθοδοι dunder ή μαγικές;

Οι μέθοδοι που έχουν δύο υπογράμμιση προθέματος και επιθήματος ονομάζονται dunder ή μαγικές μέθοδοι. Χρησιμοποιούνται κυρίως για να παρακάμψουν τις μεθόδους. Μερικές από τις μεθόδους που μπορούμε να παρακάμψουμε σε κλάσεις είναι οι __str__, __len__, __setitem__, __getitem__, κ.λπ..,

>>> class Car:
...     def __str__(self):
...             return "This is a Car class"
...
>>> car = Car()
>>> print(car)
This is a Car class
>>>

Σημείωση: Υπάρχουν πολλές άλλες μέθοδοι που μπορείτε να παρακάμψετε. Είναι χρήσιμα όταν θέλετε να προσαρμόσετε τον κώδικα σε βάθος. Εξερευνήστε την τεκμηρίωση για περισσότερες πληροφορίες.

#35. Πώς υλοποιείτε την κληρονομικότητα στην Python;

Μπορούμε να περάσουμε την κλάση γονέα στην κλάση θυγατρική ως όρισμα. Και μπορούμε να καλέσουμε τη γονική κλάση της μεθόδου init στη θυγατρική κλάση.

>>> class Animal:
...     def __init__(self, name):
...             self.name = name
...
>>> class Animal:             e):
...     def __init__(self, name):
...             self.name = name
...
...     def display(self):
...             print(self.name)
>>> class Dog(Animal):        e):ame)
...     def __init__(self, name):
...             super().__init__(name)
...
>>> doggy = Dog('Tommy')
>>> doggy.display()
Tommy
>>>

#36. Πώς να αποκτήσετε πρόσβαση στην τάξη γονέα μέσα στην τάξη παιδιού στην Python;

Μπορούμε να χρησιμοποιήσουμε την super() που αναφέρεται στη γονική κλάση μέσα στην κλάση θυγατρικού. Και μπορούμε να έχουμε πρόσβαση σε χαρακτηριστικά και μεθόδους με αυτό.

Διάφορα

#37. Πώς να χρησιμοποιήσετε σχόλια μονής και πολλών γραμμών στην Python;

Χρησιμοποιούμε κατακερματισμό (#) για σχόλια μιας γραμμής. Και τριπλά εισαγωγικά (“”σχόλιο””) ή τριπλά διπλά εισαγωγικά (“””σχόλιο””) για σχόλια πολλών γραμμών.

#38. Τι είναι ένα αντικείμενο στην Python;

Τα πάντα στην Python είναι ένα αντικείμενο. Όλοι οι τύποι δεδομένων, οι συναρτήσεις και οι κλάσεις είναι αντικείμενα.

#39. Ποια είναι η διαφορά μεταξύ is και ==;

Ο τελεστής == χρησιμοποιείται για να ελέγξει εάν δύο αντικείμενα έχουν την ίδια τιμή ή όχι. Ο τελεστής is χρησιμοποιείται για να ελέγξει εάν δύο αντικείμενα αναφέρονται στην ίδια θέση μνήμης ή όχι.

>>> a = []
>>> b = []
>>> c = a
>>> a == b
True
>>> a is b
False
>>> a is c
True
>>>

#40. Τι είναι το ρηχό και βαθύ αντίγραφο;

Shallow Copy: δημιουργεί το ακριβές αντίγραφο ως το πρωτότυπο χωρίς να αλλάζει τις αναφορές των αντικειμένων. Τώρα, τόσο τα αντιγραμμένα όσο και τα πρωτότυπα αντικείμενα αναφέρονται στις ίδιες αναφορές αντικειμένων. Έτσι, η αλλαγή ενός αντικειμένου θα επηρεάσει το άλλο.

Η μέθοδος αντιγραφής από τη μονάδα αντιγραφής χρησιμοποιείται για το ρηχό αντίγραφο.

>>> from copy import copy
>>> a = [1, [2, 3]]
>>> b = copy(a)
>>> a[1].append(4)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3, 4]]

Deep Copy: αντιγράφει τις τιμές του αρχικού αντικειμένου αναδρομικά στο νέο αντικείμενο. Πρέπει να χρησιμοποιήσουμε τη λειτουργία slicing ή deepcopy από τη μονάδα αντιγραφής για τη βαθιά αντιγραφή.

>>> from copy import deepcopy
>>> a = [1, [2, 3]]
>>> b = deepcopy(a)
>>> a[1].append(4)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3]]
>>> b[1].append(5)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3, 5]]
>>>

#41. Τι είναι οι επαναλήπτες;

Οι επαναλήπτες είναι αντικείμενα στην Python που θυμούνται την κατάσταση επανάληψης τους. Αρχικοποιεί τα δεδομένα με τη μέθοδο __iter__ και επιστρέφει το επόμενο στοιχείο χρησιμοποιώντας τη μέθοδο __next__.

Πρέπει να καλέσουμε το next(iterator) για να πάρουμε το επόμενο στοιχείο από τον επαναλήπτη. Και μπορούμε να μετατρέψουμε έναν τύπο δεδομένων ακολουθίας σε επαναλήπτη χρησιμοποιώντας την ενσωματωμένη μέθοδο iter.

>>> a = [1, 2]
>>> iterator = iter(a)
>>> next(iterator)
1
>>> next(iterator)
2
>>> next(iterator)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration
>>>

#42. Τι είναι οι γεννήτριες;

Οι γεννήτριες είναι οι συναρτήσεις που επιστρέφουν έναν επαναλήπτη όπως ένα αντικείμενο γεννήτριας. Χρησιμοποιεί την απόδοση για τη δημιουργία των δεδομένων.

>>> def numbers(n):
...     for i in range(1, n + 1):
...             yield i
...
>>> _10 = numbers(10)
>>> next(_10)
1
>>> next(_10)
2
>>> next(_10)
3
>>> next(_10)
4

Συμπέρασμα 👨‍💻

Οι ερωτήσεις δεν είναι περιορισμένες, όπως βλέπουμε σε αυτό το άρθρο. Αυτό το άρθρο δείχνει πώς μπορούν να τεθούν διαφορετικοί τύποι ερωτήσεων από διάφορα θέματα στην Python. Αλλά, δεν περιορίζεται στο σύνολο των ερωτήσεων που έχουμε συζητήσει σε αυτό το άρθρο.

Ένας τρόπος για να είστε προετοιμασμένοι κατά τη μάθηση είναι να αμφισβητείτε τον εαυτό σας για διαφορετικά θέματα. Προσπαθήστε να κάνετε διαφορετικούς τύπους ερωτήσεων από μια έννοια. Και απαντήστε τους μόνοι σας. Με αυτόν τον τρόπο, πιθανότατα δεν θα εκπλαγείτε από τις ερωτήσεις στη συνέντευξη. Μπορείτε επίσης να ελέγξετε τον διαδικτυακό μεταγλωττιστή Python για να εξασκήσετε τον κώδικα.

Ό,τι καλύτερο για την επερχόμενη συνέντευξή σας στην Python! 👍