Dalam artikel ini kita akan belajar mengenai interpolasi rentetan python. Python menyokong pelbagai cara untuk memformat rentetan teks dan ini merangkumi% -formatting, sys.format (), string. Template dan f-string.
Interpolasi rentetan adalah proses menggantikan nilai pemboleh ubah ke tempat letak dalam rentetan. Contohnya, jika anda mempunyai templat untuk bertanya khabar dengan orang seperti "Hello (Nama orang), berkenalan dengan anda!", Anda ingin mengganti placeholder untuk nama orang dengan nama sebenarnya. Proses ini dipanggil interpolasi rentetan.
tali-tali
Python 3.6 menambahkan kaedah interpolasi rentetan baru yang disebut interpolasi rentetan literal dan memperkenalkan awalan literal baru f
. Cara baru untuk memformat rentetan ini hebat dan mudah digunakan. Ia memberikan akses ke ungkapan Python yang tertanam di dalam pemalar rentetan.
Contoh 1:
name = 'World' program = 'Python' print(f'Hello (name)! This is (program)')
Apabila kita menjalankan program di atas, outputnya akan menjadi
Hai dunia! Ini adalah Python
Dalam contoh di atas, awalan literal f
memberitahu Python untuk mengembalikan nilai dua rentetan nama dan program dalam pendakap ()
. Jadi, apabila print
kita mendapat output di atas.
Interpolasi rentetan baru ini kuat kerana kita dapat menyisipkan ungkapan Python sewenang-wenangnya bahkan kita dapat melakukan aritmetik sebaris dengannya.
Contoh 2:
a = 12 b = 3 print(f'12 multiply 3 is (a * b).')
Apabila kita menjalankan program di atas, outputnya akan menjadi
12 darab 3 ialah 36.
Dalam program di atas, kami melakukan aritmetik sebaris yang hanya mungkin dilakukan dengan kaedah ini.
% -format
String di Python mempunyai operasi bawaan yang unik yang dapat diakses dengan %
operator. Dengan menggunakan %
kita dapat melakukan interpolasi rentetan mudah dengan mudah.
Contoh 3:
print("%s %s" %('Hello','World',))
Apabila kita menjalankan program di atas, outputnya akan menjadi
Hai dunia
Dalam contoh di atas kami menggunakan dua %s
penentu format rentetan dan dua rentetan Hello
dan World
dalam kurungan ()
. Kami mendapat Hello World
output. %s
penentu format rentetan memberitahu Python di mana untuk mengganti nilainya.
Sintaks pemformatan tali berubah sedikit, jika kita ingin membuat banyak penggantian dalam satu rentetan, dan kerana %
operator hanya mengambil satu argumen, kita perlu membungkus sisi kanan dalam tuple seperti yang ditunjukkan dalam contoh di bawah.
Contoh 4:
name = 'world' program ='python' print('Hello %s! This is %s.'%(name,program))
Apabila kita menjalankan program di atas, outputnya akan menjadi
Hai dunia! Ini adalah ular sawa.
Dalam contoh di atas kami menggunakan dua nama dan program pemboleh ubah rentetan. Kami membungkus kedua-dua pemboleh ubah dalam kurungan ()
.
Juga mungkin untuk merujuk kepada penggantian pemboleh ubah dengan nama dalam rentetan format kami, jika kami menyampaikan pemetaan kepada %
operator:
Contoh 5:
name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))
Apabila kita menjalankan program di atas, outputnya akan menjadi
Hai dunia! Ini adalah ular sawa.
Ini menjadikan rentetan format kami lebih mudah dijaga dan lebih mudah diubah pada masa akan datang. Kita tidak perlu risau tentang susunan nilai yang kita lalui dengan susunan nilai yang dirujuk dalam rentetan format.
Str.format ()
Dalam format string ini kita menggunakan format()
fungsi pada objek string dan pendakap ()
, objek string dalam format()
fungsi diganti sebagai pengganti pendakap ()
. Kita dapat menggunakan format()
fungsi untuk melakukan pemformatan posisi sederhana, seperti %
pemformatan.
Contoh 6:
name = 'world' print('Hello, ()'.format(name))
Apabila kita menjalankan program di atas, outputnya akan menjadi
Hai dunia
Dalam contoh ini kami menggunakan pendakap ()
dan format()
fungsi untuk melepasi objek nama. Kami mendapat nilai nama sebagai pengganti pendakap ()
dalam output.
Kami boleh merujuk kepada penggantian pemboleh ubah kami dengan nama dan menggunakannya mengikut urutan yang kami mahukan. Ini adalah ciri yang cukup kuat kerana memungkinkan untuk mengatur kembali susunan paparan tanpa mengubah argumen yang diteruskan ke fungsi format.
Contoh 7:
name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))
Apabila kita menjalankan program di atas, outputnya akan menjadi
Helo world! Ini python.
In this example we specified the variable substitutions place using the name of variable and pass the variable in format()
.
Template Strings
Template Strings is simpler and less powerful mechanism of string interpolation. We need to import Template
class from Python’s built-in string
module to use it.
Example 8:
from string import Template name = 'world' program ='python' new = Template('Hello $name! This is $program.') print(new.substitute(name= name,program=program))
When we run the above program, the output will be
Hello world! This is python.
In this example we import Template
class from built-in string
module and made a template which we used to pass two variable.
Key Points to Remember:
- %-format method is very old method for interpolation and is not recommended to use as it decrease the code readability.
- In str.format() method we pass the string object to the format() function for string interpolation.
- Dalam kaedah templat kita membuat templat dengan mengimport kelas templat dari modul rentetan terbina dalam.
- Kaedah Interpolasi Literal String adalah kaedah interpolasi kuat yang senang digunakan dan meningkatkan kebolehbacaan kod.