Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!

Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount

Βασικές Λειτουργίες Συμβολοσειράς


Τα strings είναι κομμάτια κειμένου. Μπορούν να οριστούν ως οτιδήποτε βρίσκεται ανάμεσα σε εισαγωγικά:

astring = "Hello world!"
astring2 = 'Hello world!'

Όπως μπορείτε να δείτε, το πρώτο πράγμα που μάθατε ήταν η εκτύπωση μιας απλής πρότασης. Αυτή η πρόταση αποθηκεύτηκε από την Python ως string. Ωστόσο, αντί να εκτυπώνουμε άμεσα strings, θα εξερευνήσουμε διάφορα πράγματα που μπορείτε να κάνετε με αυτά. Μπορείτε επίσης να χρησιμοποιήσετε απλά εισαγωγικά για να αναθέσετε ένα string. Ωστόσο, θα αντιμετωπίσετε προβλήματα εάν η τιμή που πρόκειται να ανατεθεί περιέχει η ίδια απλά εισαγωγικά. Για παράδειγμα, για να αναθέσετε το string μέσα σε αυτές τις αγκύλες (τα απλά εισαγωγικά είναι ' '), πρέπει να χρησιμοποιήσετε μόνο διπλά εισαγωγικά όπως αυτό

astring = "Hello world!"
print("single quotes are ' '")

print(len(astring))

Αυτό εκτυπώνει το 12, επειδή το "Hello world!" έχει μήκος 12 χαρακτήρες, συμπεριλαμβανομένης της στίξης και των κενών.

astring = "Hello world!"
print(astring.index("o"))

Αυτό εκτυπώνει το 4, επειδή η θέση της πρώτης εμφάνισης του γράμματος "o" είναι 4 χαρακτήρες μακριά από τον πρώτο χαρακτήρα. Παρατηρήστε πως υπάρχουν πραγματικά δύο "o" στη φράση - αυτή η μέθοδος αναγνωρίζει μόνο το πρώτο.

Αλλά γιατί δεν εκτύπωσε το 5; Δεν είναι το "o" ο πέμπτος χαρακτήρας στο string; Για να κάνουμε τα πράγματα πιο απλά, η Python (και οι περισσότερες άλλες γλώσσες προγραμματισμού) ξεκινούν από το 0 αντί για το 1. Έτσι, ο δείκτης του "o" είναι 4.

astring = "Hello world!"
print(astring.count("l"))

Για όσους χρησιμοποιούν ανόητες γραμματοσειρές, αυτό είναι ένα μικρό "l", όχι ένας αριθμός ένα. Αυτό μετράει τον αριθμό των "l" στο string. Επομένως, θα πρέπει να εκτυπώσει 3.

astring = "Hello world!"
print(astring[3:7])

Αυτό εκτυπώνει μια τομή του string, ξεκινώντας από το δείκτη 3 και τελειώνοντας στο δείκτη 6. Αλλά γιατί 6 και όχι 7; Και πάλι, οι περισσότερες γλώσσες προγραμματισμού το κάνουν αυτό - κάνει τον υπολογισμό των μαθηματικών μέσα σε αυτές τις αγκύλες πιο εύκολο.

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

Μπορείτε ακόμη και να βάλετε αρνητικούς αριθμούς μέσα στις αγκύλες. Είναι ένας εύκολος τρόπος για να ξεκινήσετε από το τέλος του string αντί από την αρχή. Με αυτόν τον τρόπο, το -3 σημαίνει "3ος χαρακτήρας από το τέλος".

astring = "Hello world!"
print(astring[3:7:2])

Αυτό εκτυπώνει τους χαρακτήρες του string από το 3 έως το 7 παραλείποντας έναν χαρακτήρα. Αυτή είναι η εκτεταμένη σύνταξη τομής. Η γενική μορφή είναι [start:stop:step].

astring = "Hello world!"
print(astring[3:7])
print(astring[3:7:1])

Σημειώστε ότι και οι δύο παράγουν την ίδια έξοδο.

Δεν υπάρχει συνάρτηση όπως η strrev στη C για να αντιστρέψετε ένα string. Αλλά με τον παραπάνω τύπο σύνταξης τομής μπορείτε εύκολα να αντιστρέψετε ένα string όπως αυτό

astring = "Hello world!"
print(astring[::-1])

Αυτό

astring = "Hello world!"
print(astring.upper())
print(astring.lower())

Αυτά φτιάχνουν ένα νέο string με όλα τα γράμματα μετατραπημένα σε κεφαλαία και πεζά, αντίστοιχα.

astring = "Hello world!"
print(astring.startswith("Hello"))
print(astring.endswith("asdfasdfasdf"))

Αυτό χρησιμοποιείται για να καθορίσει εάν το string ξεκινά με κάτι ή τελειώνει με κάτι, αντίστοιχα. Το πρώτο θα εκτυπώσει True, καθώς το string ξεκινά με "Hello". Το δεύτερο θα εκτυπώσει False, καθώς το string σίγουρα δεν τελειώνει με "asdfasdfasdf".

astring = "Hello world!"
afewwords = astring.split(" ")

Αυτό χωρίζει το string σε μια σειρά από strings συγκεντρωμένα σε μια λίστα. Δεδομένου ότι αυτό το παράδειγμα χωρίζει με βάση το κενό, το πρώτο στοιχείο στη λίστα θα είναι "Hello" και το δεύτερο "world!".

Άσκηση

Δοκιμάστε να διορθώσετε τον κώδικα για να εκτυπώσει τις σωστές πληροφορίες αλλάζοντας το string.

s = "Hey there! what should this string be?" # Length should be 20 print("Length of s = %d" % len(s)) # First occurrence of "a" should be at index 8 print("The first occurrence of the letter a = %d" % s.index("a")) # Number of a's should be 2 print("a occurs %d times" % s.count("a")) # Slicing the string into bits print("The first five characters are '%s'" % s[:5]) # Start to 5 print("The next five characters are '%s'" % s[5:10]) # 5 to 10 print("The thirteenth character is '%s'" % s[12]) # Just number 12 print("The characters with odd index are '%s'" %s[1::2]) #(0-based indexing) print("The last five characters are '%s'" % s[-5:]) # 5th-from-last to end # Convert everything to uppercase print("String in uppercase: %s" % s.upper()) # Convert everything to lowercase print("String in lowercase: %s" % s.lower()) # Check how a string starts if s.startswith("Str"): print("String starts with 'Str'. Good!") # Check how a string ends if s.endswith("ome!"): print("String ends with 'ome!'. Good!") # Split the string into three separate strings, # each containing only a word print("Split the words of the string: %s" % s.split(" ")) s = "Strings are awesome!" # Length should be 20 print("Length of s = %d" % len(s)) # First occurrence of "a" should be at index 8 print("The first occurrence of the letter a = %d" % s.index("a")) # Number of a's should be 2 print("a occurs %d times" % s.count("a")) # Slicing the string into bits print("The first five characters are '%s'" % s[:5]) # Start to 5 print("The next five characters are '%s'" % s[5:10]) # 5 to 10 print("The thirteenth character is '%s'" % s[12]) # Just number 12 print("The characters with odd index are '%s'" %s[1::2]) #(0-based indexing) print("The last five characters are '%s'" % s[-5:]) # 5th-from-last to end # Convert everything to uppercase print("String in uppercase: %s" % s.upper()) # Convert everything to lowercase print("String in lowercase: %s" % s.lower()) # Check how a string starts if s.startswith("Str"): print("String starts with 'Str'. Good!") # Check how a string ends if s.endswith("ome!"): print("String ends with 'ome!'. Good!") # Split the string into three separate strings, # each containing only a word print("Split the words of the string: %s" % s.split(" ")) test_object("s", incorrect_msg="Make sure you change the string assigned to `s` to match the exercise instructions.") success_msg("Great work!")

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!

Previous Tutorial Next Tutorial Take the Test
Copyright © learnpython.org. Read our Terms of Use and Privacy Policy