Python 3 - String
String adalah salah satu jenis yang paling populer di Python. Kita dapat membuatnya hanya dengan melampirkan karakter dalam tanda kutip. Python memperlakukan tanda kutip tunggal sama dengan tanda kutip ganda. Membuat string sesederhana memberikan nilai ke variabel. Misalnya -
var1 = 'Hello World!'
var2 = "Python Programming"
Mengakses Nilai dalam String
Python tidak mendukung tipe karakter; ini diperlakukan sebagai string dengan panjang satu, sehingga juga dianggap sebagai substring.
Untuk mengakses substring, gunakan tanda kurung siku untuk mengiris bersama dengan indeks atau indeks untuk mendapatkan substring Anda. Misalnya -
#!/usr/bin/python3
var1 = 'Hello World!'
var2 = "Python Programming"
print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5])
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
var1[0]: H
var2[1:5]: ytho
Memperbarui String
Anda dapat "memperbarui" string yang ada dengan menetapkan (kembali) variabel ke string lain. Nilai baru dapat dikaitkan dengan nilai sebelumnya atau ke string yang sama sekali berbeda. Misalnya -
#!/usr/bin/python3
var1 = 'Hello World!'
print ("Updated String :- ", var1[:6] + 'Python')
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Updated String :- Hello Python
Karakter Escape
Tabel berikut adalah daftar karakter escape atau non-printable yang dapat ditunjukkan dengan notasi garis miring terbalik.
Karakter pelarian akan ditafsirkan; dalam satu string yang dikutip maupun yang dikutip ganda.
Notasi garis miring terbalik | Karakter heksadesimal | Deskripsi |
---|---|---|
\Sebuah | 0x07 | Bel atau waspada |
\ b | 0x08 | Menghapus |
\ cx | Kontrol-x | |
\ Cx | Kontrol-x | |
\ e | 0x1b | Melarikan diri |
\ f | 0x0c | Formfeed |
\ M- \ Cx | Kontrol-Meta-x | |
\ n | 0x0a | Garis baru |
\ nnn | Notasi oktal, dimana n berada pada kisaran 0.7 | |
\ r | 0x0d | Kereta kembali |
\ s | 0x20 | Ruang |
\ t | 0x09 | Tab |
\ v | 0x0b | Tab vertikal |
\ x | Karakter x | |
\ xnn | Notasi heksadesimal, di mana n berada di kisaran 0.9, af, atau AF |
Operator Khusus String
Asumsikan variabel string a memegang 'Halo' dan variabel b memegang 'Python', lalu -
Operator | Deskripsi | Contoh |
---|---|---|
+ | Concatenation - Menambahkan nilai di kedua sisi operator | a + b akan memberi HelloPython |
* | Repetition - Membuat string baru, menggabungkan beberapa salinan dari string yang sama | a * 2 akan memberikan -HaloHello |
[] | Slice - Memberikan karakter dari indeks yang diberikan | a [1] akan memberi e |
[:] | Range Slice - Memberikan karakter dari range yang diberikan | a [1: 4] akan memberi el |
di | Keanggotaan - Mengembalikan nilai true jika karakter ada dalam string yang diberikan | H in a akan memberi 1 |
tidak masuk | Keanggotaan - Mengembalikan nilai true jika karakter tidak ada dalam string yang diberikan | M tidak akan memberikan 1 |
r / R | String Mentah - Menekan arti sebenarnya dari karakter Escape. Sintaks untuk string mentah sama persis dengan string normal dengan pengecualian operator string mentah, huruf "r", yang mendahului tanda kutip. "R" dapat berupa huruf kecil (r) atau huruf besar (R) dan harus ditempatkan tepat sebelum tanda kutip pertama. | cetak r '\ n' cetakan \ n dan cetak R '\ n'cetak \ n |
% | Format - Melakukan pemformatan String | Lihat di bagian selanjutnya |
Operator Pemformatan String
Salah satu fitur paling keren dari Python adalah operator format string%. Operator ini unik untuk string dan membuat paket yang memiliki fungsi dari keluarga printf () C. Berikut adalah contoh sederhana -
#!/usr/bin/python3
print ("My name is %s and weight is %d kg!" % ('Zara', 21))
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
My name is Zara and weight is 21 kg!
Berikut adalah daftar lengkap dari simbol yang dapat digunakan bersama dengan% -
Sr.No. | Format Simbol & Konversi |
---|---|
1 | %c karakter |
2 | %s konversi string melalui str () sebelum pemformatan |
3 | %i bilangan bulat desimal bertanda |
4 | %d bilangan bulat desimal bertanda |
5 | %u bilangan bulat desimal tak bertanda |
6 | %o bilangan bulat oktal |
7 | %x integer heksadesimal (huruf kecil) |
8 | %X integer heksadesimal (huruf UPPERcase) |
9 | %e notasi eksponensial (dengan huruf kecil 'e') |
10 | %E notasi eksponensial (dengan UPPERcase 'E') |
11 | %f bilangan real floating point |
12 | %g yang lebih pendek dari% f dan% e |
13 | %G yang lebih pendek dari% f dan% E |
Simbol dan fungsionalitas lain yang didukung tercantum dalam tabel berikut ini -
Sr.No. | Simbol & Fungsi |
---|---|
1 | * argumen menentukan lebar atau presisi |
2 | - pembenaran kiri |
3 | + tampilkan tandanya |
4 | <sp> biarkan spasi kosong sebelum bilangan positif |
5 | # tambahkan nol di depan oktal ('0') atau heksadesimal di awal '0x' atau '0X', bergantung pada apakah 'x' atau 'X' digunakan. |
6 | 0 pad dari kiri dengan nol (bukan spasi) |
7 | % '%%' memberi Anda satu literal '%' |
8 | (var) variabel pemetaan (argumen kamus) |
9 | m.n. m adalah lebar total minimum dan n adalah jumlah digit yang akan ditampilkan setelah koma desimal (jika appl.) |
Kutipan Tiga
Kutipan rangkap tiga Python membantu menyelamatkan dengan memungkinkan string menjangkau beberapa baris, termasuk verbatim NEWLINEs, TABs, dan karakter khusus lainnya.
Sintaks untuk tiga kutipan terdiri dari tiga berturut-turut single or double tanda kutip.
#!/usr/bin/python3
para_str = """this is a long string that is made up of
several lines and non-printable characters such as
TAB ( \t ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [ \n ], or just a NEWLINE within
the variable assignment will also show up.
"""
print (para_str)
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut. Perhatikan bagaimana setiap karakter khusus telah diubah ke bentuk cetakannya, sampai yang terakhir NEWLINE di akhir string antara "atas". dan menutup tanda kutip tiga. Perhatikan juga bahwa NEWLINEs terjadi baik dengan carriage eksplisit kembali di akhir baris atau kode pelolosannya (\ n) -
this is a long string that is made up of
several lines and non-printable characters such as
TAB ( ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [
], or just a NEWLINE within
the variable assignment will also show up.
String mentah sama sekali tidak memperlakukan garis miring terbalik sebagai karakter khusus. Setiap karakter yang Anda masukkan ke string mentah tetap seperti Anda menulisnya -
#!/usr/bin/python3
print ('C:\\nowhere')
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
C:\nowhere
Sekarang mari kita gunakan string mentah. Kami akan memberikan ekspresir'expression' sebagai berikut -
#!/usr/bin/python3
print (r'C:\\nowhere')
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
C:\\nowhere
String Unicode
Dalam Python 3, semua string direpresentasikan dalam Unicode. Dalam Python 2 disimpan secara internal sebagai ASCII 8-bit, oleh karena itu diharuskan melampirkan 'u' untuk membuatnya menjadi Unicode. Sekarang tidak lagi diperlukan.
Metode String Bawaan
Python menyertakan metode bawaan berikut untuk memanipulasi string -
Sr.No. | Metode & Deskripsi |
---|---|
1 | kapitalisasi () Huruf kapital pertama dari string |
2 | tengah (lebar, fillchar) Mengembalikan string yang diisi dengan fillchar dengan string asli dipusatkan ke total kolom lebar . |
3 | hitung (str, beg = 0, end = len (string)) Menghitung berapa kali str terjadi dalam string atau dalam substring string jika memulai indeks mohon dan mengakhiri indeks akhir diberikan. |
4 | decode (encoding = 'UTF-8', kesalahan = 'ketat') Mendekode string menggunakan codec yang terdaftar untuk pengkodean. encoding default ke encoding string default. |
5 | encode (encoding = 'UTF-8', error = 'strict') Mengembalikan versi string yang dikodekan; pada kesalahan, defaultnya adalah menaikkan ValueError kecuali kesalahan diberikan dengan 'ignore' atau 'replace'. |
6 | endswith (suffix, beg = 0, end = len (string)) Menentukan apakah string atau substring dari string (jika memulai indeks mohon dan mengakhiri indeks akhir diberikan) diakhiri dengan sufiks; mengembalikan true jika demikian dan false sebaliknya. |
7 | expandtabs (tabsize = 8) Memperluas tab dalam string ke beberapa spasi; defaultnya adalah 8 spasi per tab jika ukuran tab tidak tersedia. |
8 | temukan (str, beg = 0 end = len (string)) Tentukan apakah str terjadi dalam string atau dalam substring string jika memulai indeks mohon dan mengakhiri indeks akhir diberikan indeks pengembalian jika ditemukan dan -1 sebaliknya. |
9 | indeks (str, beg = 0, end = len (string)) Sama seperti find (), tetapi memunculkan pengecualian jika str tidak ditemukan. |
10 | isalnum () Mengembalikan nilai benar jika string memiliki setidaknya 1 karakter dan semua karakter adalah alfanumerik dan salah jika sebaliknya. |
11 | isalpha () Mengembalikan nilai benar jika string memiliki setidaknya 1 karakter dan semua karakter adalah alfabet dan salah jika sebaliknya. |
12 | isdigit () Mengembalikan nilai benar jika string hanya berisi angka dan salah jika sebaliknya. |
13 | lebih rendah() Mengembalikan nilai benar jika string memiliki setidaknya 1 karakter berkursi dan semua karakter bersusun dalam huruf kecil dan salah jika sebaliknya. |
14 | isnumerik () Mengembalikan nilai benar jika string unicode hanya berisi karakter numerik dan salah jika sebaliknya. |
15 | isspace () Mengembalikan nilai benar jika string hanya berisi karakter spasi dan salah jika sebaliknya. |
16 | istitle () Mengembalikan nilai true jika string dengan benar "titlecased" dan false sebaliknya. |
17 | isupper () Mengembalikan nilai benar jika string memiliki setidaknya satu karakter berkurung dan semua karakter bersusun dalam huruf besar dan salah jika sebaliknya. |
18 | bergabung (seq) Menggabungkan (menggabungkan) representasi string dari elemen dalam urutan sekuens menjadi string, dengan string pemisah. |
19 | len (string) Mengembalikan panjang string |
20 | ljust (lebar [, fillchar]) Mengembalikan string berlapis spasi dengan string asli rata kiri ke total kolom lebar. |
21 | menurunkan() Mengonversi semua huruf besar dalam string menjadi huruf kecil. |
22 | lstrip () Menghapus semua spasi di depan dalam string. |
23 | maketrans () Mengembalikan tabel terjemahan untuk digunakan dalam fungsi terjemahan. |
24 | maks (str) Mengembalikan karakter alfabet maksimal dari string str. |
25 | min (str) Mengembalikan karakter alfabet min dari string str. |
26 | ganti (lama, baru [, maks]) Mengganti semua kemunculan lama dalam string dengan kemunculan baru atau paling banyak jika max diberikan. |
27 | rfind (str, beg = 0, end = len (string)) Sama seperti find (), tetapi mencari mundur dalam string. |
28 | rindex (str, beg = 0, end = len (string)) Sama seperti index (), tetapi cari mundur dalam string. |
29 | rjust (lebar, [, fillchar]) Mengembalikan string berlapis spasi dengan string asli rata kanan ke total kolom lebar. |
30 | rstrip () Menghapus semua spasi kosong dari string. |
31 | split (str = "", num = string.count (str)) Membagi string sesuai dengan pemisah str (spasi jika tidak tersedia) dan mengembalikan daftar substring; bagi menjadi paling banyak substring jika diberikan. |
32 | garis terpisah (num = string.count ('\ n')) Memisahkan string sama sekali (atau num) NEWLINEs dan mengembalikan daftar setiap baris dengan NEWLINEs dihapus. |
33 | startswith (str, beg = 0, end = len (string)) Menentukan apakah string atau substring dari string (jika memulai indeks mohon dan mengakhiri indeks akhir diberikan) dimulai dengan substring str; mengembalikan true jika demikian dan false sebaliknya. |
34 | strip ([karakter]) Melakukan lstrip () dan rstrip () pada string |
35 | swapcase () Membalik kasus untuk semua huruf dalam string. |
36 | judul() Mengembalikan versi string "titlecased", yaitu, semua kata dimulai dengan huruf besar dan sisanya adalah huruf kecil. |
37 | terjemahkan (table, deletechars = "") Menerjemahkan string sesuai dengan tabel terjemahan str (256 karakter), menghapus yang ada di string del. |
38 | atas() Mengonversi huruf kecil dalam string menjadi huruf besar. |
39 | zfill (lebar) Mengembalikan string asli yang ditinggalkan dengan nol ke total karakter lebar; ditujukan untuk angka, zfill () mempertahankan tanda apa pun yang diberikan (kurang satu nol). |
40 | isdecimal () Mengembalikan nilai benar jika string unicode hanya berisi karakter desimal dan salah jika sebaliknya. |