Rentetan Python (Dengan Contoh)

Dalam tutorial ini, anda akan belajar membuat, memformat, mengubah dan menghapus rentetan di Python. Anda juga akan diperkenalkan dengan pelbagai operasi dan fungsi tali.

Video: Python Strings

Apa itu String di Python?

Rentetan adalah rentetan watak.

Watak hanyalah simbol. Contohnya, bahasa Inggeris mempunyai 26 aksara.

Komputer tidak berurusan dengan watak, mereka berurusan dengan nombor (binari). Walaupun anda mungkin melihat watak-watak di skrin anda, secara dalaman ia disimpan dan dimanipulasi sebagai kombinasi 0 dan 1.

Penukaran watak ini ke nombor disebut pengekodan, dan proses sebaliknya adalah penyahkodan. ASCII dan Unicode adalah beberapa pengekodan popular yang digunakan.

Dalam Python, rentetan adalah urutan watak Unicode. Unicode diperkenalkan untuk memasukkan setiap watak dalam semua bahasa dan membawa keseragaman dalam pengekodan. Anda boleh mengetahui mengenai Unicode dari Python Unicode.

Bagaimana cara membuat rentetan di Python?

Rentetan dapat dibuat dengan melampirkan watak di dalam satu petikan atau petikan ganda. Malah petikan tiga boleh digunakan di Python tetapi umumnya digunakan untuk mewakili rentetan dan tali multiline.

 # defining strings in Python # all of the following are equivalent my_string = 'Hello' print(my_string) my_string = "Hello" print(my_string) my_string = '''Hello''' print(my_string) # triple quotes string can extend multiple lines my_string = """Hello, welcome to the world of Python""" print(my_string)

Semasa anda menjalankan program, outputnya adalah:

 Hello Hello Hello Hello, selamat datang ke dunia Python

Bagaimana cara mengakses watak dalam rentetan?

Kita boleh mengakses watak individu menggunakan pengindeksan dan pelbagai watak menggunakan potongan. Indeks bermula dari 0. Mencuba untuk mengakses watak di luar julat indeks akan menaikkan IndexError. Indeks mestilah bilangan bulat. Kami tidak boleh menggunakan pelampung atau jenis lain, ini akan mengakibatkan TypeError.

Python membenarkan pengindeksan negatif untuk urutannya.

Indeks -1merujuk kepada item terakhir, -2item terakhir kedua dan seterusnya. Kita dapat mengakses pelbagai item dalam rentetan dengan menggunakan operator pemotong :(titik dua).

 #Accessing string characters in Python str = 'programiz' print('str = ', str) #first character print('str(0) = ', str(0)) #last character print('str(-1) = ', str(-1)) #slicing 2nd to 5th character print('str(1:5) = ', str(1:5)) #slicing 6th to 2nd last character print('str(5:-2) = ', str(5:-2))

Apabila kita menjalankan program di atas, kita mendapat output berikut:

 str = programiz str (0) = p str (-1) = z str (1: 5) = rogr str (5: -2) = pagi

Sekiranya kita cuba mengakses indeks di luar jangkauan atau menggunakan nombor selain bilangan bulat, kita akan mendapat kesilapan.

 # index must be in range >>> my_string(15)… IndexError: string index out of range # index must be an integer >>> my_string(1.5)… TypeError: string indices must be integers

Potongan dapat digambarkan dengan baik dengan mempertimbangkan indeks berada di antara elemen seperti yang ditunjukkan di bawah.

Sekiranya kita ingin mengakses julat, kita memerlukan indeks yang akan memotong bahagian dari rentetan.

String Slicing di Python

Bagaimana menukar atau menghapus rentetan?

Rentetan tidak berubah. Ini bermaksud bahawa elemen tali tidak dapat diubah setelah mereka diberikan. Kita hanya boleh menetapkan semula rentetan yang berbeza dengan nama yang sama.

 >>> my_string = 'programiz' >>> my_string(5) = 'a'… TypeError: 'str' object does not support item assignment >>> my_string = 'Python' >>> my_string 'Python'

Kami tidak dapat menghapus atau membuang watak dari rentetan. Tetapi menghapus rentetan sepenuhnya mungkin menggunakan delkata kunci.

 >>> del my_string(1)… TypeError: 'str' object doesn't support item deletion >>> del my_string >>> my_string… NameError: name 'my_string' is not defined

Operasi Python String

Terdapat banyak operasi yang dapat dilakukan dengan rentetan yang menjadikannya salah satu jenis data yang paling banyak digunakan di Python.

Untuk mengetahui lebih lanjut mengenai jenis data yang terdapat di Python, lawati: Jenis Data Python

Gabungan Dua atau Lebih Rentetan

Bergabung dengan dua atau lebih rentetan menjadi satu disebut penggabungan.

The + operator melakukan ini di dalam Python. Cukup menulis dua literal string bersama-sama juga menggabungkannya.

The * operator boleh digunakan untuk mengulangi rentetan bagi nombor yang diberikan masa.

 # Python String Operations str1 = 'Hello' str2 ='World!' # using + print('str1 + str2 = ', str1 + str2) # using * print('str1 * 3 =', str1 * 3)

Apabila kita menjalankan program di atas, kita mendapat output berikut:

str1 + str2 = HelloWorld! str1 * 3 = HelloHelloHello

Menulis dua literal string juga menggabungkannya seperti operator + .

Sekiranya kita mahu menggabungkan rentetan dalam baris yang berbeza, kita boleh menggunakan tanda kurung.

 >>> # two string literals together >>> 'Hello ''World!' 'Hello World!' >>> # using parentheses >>> s = ('Hello '… 'World') >>> s 'Hello World'

Pengulangan Melalui tali

Kita boleh melakukan lelang melalui rentetan menggunakan gelung untuk. Berikut adalah contoh untuk mengira bilangan l dalam rentetan.

 # Iterating through a string count = 0 for letter in 'Hello World': if(letter == 'l'): count += 1 print(count,'letters found')

Apabila kita menjalankan program di atas, kita mendapat output berikut:

 3 huruf dijumpai

Ujian Keahlian String

We can test if a substring exists within a string or not, using the keyword in.

 >>> 'a' in 'program' True >>> 'at' not in 'battle' False

Built-in functions to Work with Python

Various built-in functions that work with sequence work with strings as well.

Some of the commonly used ones are enumerate() and len(). The enumerate() function returns an enumerate object. It contains the index and value of all the items in the string as pairs. This can be useful for iteration.

Similarly, len() returns the length (number of characters) of the string.

 str = 'cold' # enumerate() list_enumerate = list(enumerate(str)) print('list(enumerate(str) = ', list_enumerate) #character count print('len(str) = ', len(str))

When we run the above program, we get the following output:

 list(enumerate(str) = ((0, 'c'), (1, 'o'), (2, 'l'), (3, 'd')) len(str) = 4

Python String Formatting

Escape Sequence

If we want to print a text like He said, "What's there?", we can neither use single quotes nor double quotes. This will result in a SyntaxError as the text itself contains both single and double quotes.

 >>> print("He said, "What's there?"")… SyntaxError: invalid syntax >>> print('He said, "What's there?"')… SyntaxError: invalid syntax

One way to get around this problem is to use triple quotes. Alternatively, we can use escape sequences.

An escape sequence starts with a backslash and is interpreted differently. If we use a single quote to represent a string, all the single quotes inside the string must be escaped. Similar is the case with double quotes. Here is how it can be done to represent the above text.

 # using triple quotes print('''He said, "What's there?"''') # escaping single quotes print('He said, "What\'s there?"') # escaping double quotes print("He said, "What's there? "")

When we run the above program, we get the following output:

 He said, "What's there?" He said, "What's there?" He said, "What's there?"

Here is a list of all the escape sequences supported by Python.

Escape Sequence Description
ewline Backslash and newline ignored
\ Backslash
\' Single quote
" Double quote
a ASCII Bell
 ASCII Backspace
f ASCII Formfeed
ASCII Linefeed
ASCII Carriage Return
ASCII Horizontal Tab
v ASCII Vertical Tab
ooo Character with octal value ooo
xHH Character with hexadecimal value HH

Here are some examples

 >>> print("C:\Python32\Lib") C:Python32Lib >>> print("This is printedin two lines") This is printed in two lines >>> print("This is x48x45x58 representation") This is HEX representation

Raw String to ignore escape sequence

Sometimes we may wish to ignore the escape sequences inside a string. To do this we can place r or R in front of the string. This will imply that it is a raw string and any escape sequence inside it will be ignored.

 >>> print("This is x61 good example") This is a good example >>> print(r"This is x61 good example") This is x61 good example

The format() Method for Formatting Strings

The format() method that is available with the string object is very versatile and powerful in formatting strings. Format strings contain curly braces () as placeholders or replacement fields which get replaced.

We can use positional arguments or keyword arguments to specify the order.

 # Python string format() method # default(implicit) order default_order = "(), () and ()".format('John','Bill','Sean') print('--- Default Order ---') print(default_order) # order using positional argument positional_order = "(1), (0) and (2)".format('John','Bill','Sean') print('--- Positional Order ---') print(positional_order) # order using keyword argument keyword_order = "(s), (b) and (j)".format(j='John',b='Bill',s='Sean') print('--- Keyword Order ---') print(keyword_order)

When we run the above program, we get the following output:

 --- Default Order --- John, Bill and Sean --- Positional Order --- Bill, John and Sean --- Keyword Order --- Sean, Bill and John

The format() method can have optional format specifications. They are separated from the field name using colon. For example, we can left-justify <, right-justify > or center ^ a string in the given space.

Kita juga dapat memformat bilangan bulat sebagai binari, heksadesimal, dll. Dan apungan dapat dibundarkan atau dipaparkan dalam format eksponen. Terdapat banyak format yang boleh anda gunakan. Lawati di sini untuk semua format rentetan yang ada dengan format()kaedah ini.

 >>> # formatting integers >>> "Binary representation of (0) is (0:b)".format(12) 'Binary representation of 12 is 1100' >>> # formatting floats >>> "Exponent representation: (0:e)".format(1566.345) 'Exponent representation: 1.566345e+03' >>> # round off >>> "One third is: (0:.3f)".format(1/3) 'One third is: 0.333' >>> # string alignment >>> "|(:10)|".format('butter','bread','ham') '|butter | bread | ham|'

Pemformatan gaya lama

Kita bahkan boleh memformat rentetan seperti sprintf()gaya lama yang digunakan dalam bahasa pengaturcaraan C. Kami menggunakan %operator untuk mencapai ini.

 >>> x = 12.3456789 >>> print('The value of x is %3.2f' %x) The value of x is 12.35 >>> print('The value of x is %3.4f' %x) The value of x is 12.3457

Kaedah Rentetan Python Biasa

Terdapat banyak kaedah yang tersedia dengan objek rentetan. The format()kaedah yang telah dinyatakan di atas adalah salah satu daripada mereka. Beberapa kaedah yang biasa digunakan ialah lower(), upper(), join(), split(), find(), replace()dan lain-lain Berikut adalah senarai lengkap semua terbina dalam kaedah untuk bekerja dengan tali dalam Python.

 >>> "PrOgRaMiZ".lower() 'programiz' >>> "PrOgRaMiZ".upper() 'PROGRAMIZ' >>> "This will split all words into a list".split() ('This', 'will', 'split', 'all', 'words', 'into', 'a', 'list') >>> ' '.join(('This', 'will', 'join', 'all', 'words', 'into', 'a', 'string')) 'This will join all words into a string' >>> 'Happy New Year'.find('ew') 7 >>> 'Happy New Year'.replace('Happy','Brilliant') 'Brilliant New Year'

Artikel menarik...