Basic Python
Βασικά του Python
Χρήσιμες πληροφορίες
list(xrange()) == range() --> Στο python3 το range είναι το xrange του python2 (δεν είναι μια λίστα αλλά ένας γεννήτορας) Η διαφορά μεταξύ ενός Tuple και μιας Λίστας είναι ότι η θέση μιας τιμής σε ένα tuple της δίνει νόημα, ενώ οι λίστες είναι απλά ταξινομημένες τιμές. Τα Tuples έχουν δομές, ενώ οι λίστες έχουν μια σειρά.
Κύριες λειτουργίες
Για να υψώσετε έναν αριθμό χρησιμοποιείτε: 3**2 (όχι 3^2) Αν κάνετε 2/3 επιστρέφει 1 επειδή διαιρείτε δύο ακέραιους (integers). Αν θέλετε δεκαδικούς αριθμούς θα πρέπει να διαιρέσετε δεκαδικούς (2.0/3.0). i >= j i <= j i == j i != j a and b a or b not a float(a) int(a) str(d) ord("A") = 65 chr(65) = 'A' hex(100) = '0x64' hex(100)[2:] = '64' isinstance(1, int) = True "a b".split(" ") = ['a', 'b'] " ".join(['a', 'b']) = "a b" "abcdef".startswith("ab") = True "abcdef".contains("abc") = True "abc\n".strip() = "abc" "apbc".replace("p","") = "abc" dir(str) = Λίστα με όλες τις διαθέσιμες μεθόδους help(str) = Ορισμός της κλάσης str "a".upper() = "A" "A".lower() = "a" "abc".capitalize() = "Abc" sum([1,2,3]) = 6 sorted([1,43,5,3,21,4])
Ένωση χαρακτήρων 3 * ’a’ = ‘aaa’ ‘a’ + ‘b’ = ‘ab’ ‘a’ + str(3) = ‘a3’ [1,2,3]+[4,5]=[1,2,3,4,5]
Μέρη μιας λίστας ‘abc’[0] = ‘a’ 'abc’[-1] = ‘c’ 'abc’[1:3] = ‘bc’ από [1] έως [2] "qwertyuiop"[:-1] = 'qwertyuio'
Σχόλια # Σχόλιο μιας γραμμής """ Πολλαπλές γραμμές σχολίων Άλλο ένα """
Βρόχοι
Πλειάδες
t1 = (1, '2', 'τρία') t2 = (5, 6) t3 = t1 + t2 = (1, '2', 'τρία', 5, 6) (4,) = Singelton d = () κενή πλειάδα d += (4,) --> Προσθήκη σε μια πλειάδα CANT! --> t1[1] == 'Νέα τιμή' list(t2) = [5, 6] --> Από πλειάδα σε λίστα
Λίστα (πίνακας)
d = [] κενή a = [1, 2, 3] b = [4, 5] a + b = [1, 2, 3, 4, 5] b.append(6) = [4, 5, 6] tuple(a) = (1, 2, 3) --> Από λίστα σε πλειάδα
Λεξικό
d = {} κενό monthNumbers={1: 'Ιαν', 2: 'φεβ', 'φεβ': 2} --> monthNumbers -> {1: 'Ιαν', 2: 'φεβ', 'φεβ': 2} monthNumbers[1] = 'Ιαν' monthNumbers['φεβ'] = 2 list(monthNumbers) = [1, 2, 'φεβ'] monthNumbers.values() = ['Ιαν', 'φεβ', 2] keys = [k for k in monthNumbers] a={'9': 9} monthNumbers.update(a) = {'9': 9, 1: 'Ιαν', 2: 'φεβ', 'φεβ': 2} mN = monthNumbers.copy() #Ανεξάρτητο αντίγραφο monthNumbers.get('key', 0) #Έλεγχος αν υπάρχει το κλειδί, Επιστροφή τιμής του monthNumbers["key"] ή 0 αν δεν υπάρχει
Σύνολα
Στα σύνολα δεν υπάρχουν επαναλήψεις myset = set(['α', 'β']) = {'α', 'β'} myset.add('γ') = {'α', 'β', 'γ'} myset.add('α') = {'α', 'β', 'γ'} #Χωρίς επαναλήψεις myset.update([1, 2, 3]) = set(['α', 1, 2, 'β', 'γ', 3]) myset.discard(10) #Αν υπάρχει, αφαίρεσέ το, αλλιώς τίποτα myset.remove(10) #Αν υπάρχει, αφαίρεσέ το, αλλιώς εμφάνισε εξαίρεση myset2 = set([1, 2, 3, 4]) myset.union(myset2) #Τιμές στο myset Ή myset2 myset.intersection(myset2) #Τιμές στο myset ΚΑΙ myset2 myset.difference(myset2) #Τιμές στο myset αλλά όχι στο myset2 myset.symmetric_difference(myset2) #Τιμές που δεν είναι ούτε στο myset ΟΥΤΕ στο myset2 (όχι σε κανένα) myset.pop() #Πάρε το πρώτο στοιχείο του συνόλου και αφαίρεσέ το myset.intersection_update(myset2) #myset = Στοιχεία και στα δύο myset και myset2 myset.difference_update(myset2) #myset = Στοιχεία στο myset αλλά όχι στο myset2 myset.symmetric_difference_update(myset2) #myset = Στοιχεία που δεν είναι σε κανένα από τα δύο
Κλάσεις
Η μέθοδος στο __It__ θα είναι αυτή που θα χρησιμοποιηθεί από τη συνάρτηση sort για να συγκρίνει αν ένα αντικείμενο αυτής της κλάσης είναι μεγαλύτερο από ένα άλλο
map, zip, filter, lambda, sorted και μία γραμμή
Map είναι σαν: [f(x) για x σε iterable] --> map(tutple,[α,β]) = [(1,2,3),(4,5)] m = map(lambda x: x % 3 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9]) --> [False, False, True, False, False, True, False, False, True]
Zip σταματά όταν το μικρότερο από το foo ή το bar σταματήσει:
Lambda χρησιμοποιείται για να ορίσετε μια συνάρτηση (lambda x,y: x+y)(5,3) = 8 --> Χρησιμοποιήστε το lambda ως απλή συνάρτηση sorted(range(-5,6), key=lambda x: x** 2) = [0, -1, 1, -2, 2, -3, 3, -4, 4, -5, 5] --> Χρησιμοποιήστε το lambda για να ταξινομήσετε μια λίστα m = filter(lambda x: x % 3 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9]) = [3, 6, 9] --> Χρησιμοποιήστε το lambda για φιλτράρισμα reduce (lambda x,y: x*y, [1,2,3,4]) = 24
Assert()
Αν η συνθήκη είναι ψευδής, το string θα εκτυπωθεί στην οθόνη
Γεννήτορες, yield
Ένας γεννήτορας, αντί να επιστρέφει κάτι, "αποδίδει" κάτι. Όταν τον προσπελάσετε, θα "επιστρέψει" την πρώτη τιμή που δημιουργήθηκε, στη συνέχεια, μπορείτε να τον προσπελάσετε ξανά και θα επιστρέψει την επόμενη τιμή που δημιουργήθηκε. Έτσι, όλες οι τιμές δεν δημιουργούνται ταυτόχρονα και μπορεί να εξοικονομηθεί πολύς χώρος μνήμης χρησιμοποιώντας αυτό αντί για μια λίστα με όλες τις τιμές.
Εάν το εκτελέσετε, θα δείτε κάτι παρόμοιο με το παρακάτω:
Last updated