Bu yazıda python string interpolasyonu hakkında bilgi edineceğiz. Python, metin dizelerini biçimlendirmenin birden çok yolunu destekler ve bunlar,% -formatting, sys.format (), string.Template ve f-dizelerini içerir.
Dize enterpolasyonu, değişkenlerin değerlerini bir dizedeki yer tutuculara ikame eden bir işlemdir. Örneğin, "Merhaba (kişinin adı), tanıştığımıza memnun oldum!" Gibi bir kişiye merhaba demek için bir şablonunuz varsa, kişinin adı için yer tutucuyu gerçek bir adla değiştirmek istersiniz. Bu işleme dizi enterpolasyonu denir.
f dizeleri
Python 3.6, değişmez dize enterpolasyonu adı verilen yeni dize enterpolasyon yöntemi ekledi ve yeni bir değişmez önek tanıttı f
. Dizeleri biçimlendirmenin bu yeni yolu güçlü ve kullanımı kolaydır. Dize sabitleri içindeki gömülü Python ifadelerine erişim sağlar.
Örnek 1:
name = 'World' program = 'Python' print(f'Hello (name)! This is (program)')
Yukarıdaki programı çalıştırdığımızda çıktı
Selam Dünya! Bu Python
Yukarıdaki örnekte değişmez önek f
Python'a iki dize değişkeninin değerini ve ayraçlar içindeki programı geri yüklemesini söyler ()
. Yani, print
yukarıdaki çıktıyı aldığımızda.
Bu yeni dize enterpolasyonu güçlüdür çünkü rastgele Python ifadelerini gömebiliriz, hatta onunla satır içi aritmetik bile yapabiliriz.
Örnek 2:
a = 12 b = 3 print(f'12 multiply 3 is (a * b).')
Yukarıdaki programı çalıştırdığımızda çıktı
12 çarpma 3, 36'dır.
Yukarıdaki programda, yalnızca bu yöntemle mümkün olan satır içi aritmetik yaptık.
% biçimlendirme
Python'daki dizeler, %
operatörle erişilebilen benzersiz bir yerleşik işleme sahiptir . Kullanarak %
çok kolay bir şekilde basit dizi enterpolasyonu yapabiliriz.
Örnek 3:
print("%s %s" %('Hello','World',))
Yukarıdaki programı çalıştırdığımızda çıktı
Selam Dünya
Yukarıdaki örnekte, iki %s
dizge biçimi belirticisi ve iki dizge Hello
ve World
parantez içinde kullandık ()
. Hello World
Çıktı olarak aldık . %s
string format belirticisi, Python'a değeri nerede değiştireceğini söyler.
Dize biçimlendirme sözdizimi biraz değişir, tek bir dizede birden çok ikame yapmak istiyorsak ve %
operatör yalnızca bir argüman aldığından, aşağıdaki örnekte gösterildiği gibi sağ tarafı bir tuple içinde sarmamız gerekir.
Örnek 4:
name = 'world' program ='python' print('Hello %s! This is %s.'%(name,program))
Yukarıdaki programı çalıştırdığımızda çıktı
Selam Dünya! Bu bir python.
Yukarıdaki örnekte iki değişken adı ve program kullandık. Her iki değişkeni de parantez içine aldık ()
.
%
Operatöre bir eşleme iletirsek, biçim dizgimizde değişken ikamelerine isimleriyle başvurmak da mümkündür :
Örnek 5:
name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))
Yukarıdaki programı çalıştırdığımızda çıktı
Selam Dünya! Bu bir python.
Bu, biçim dizelerimizin bakımını ve gelecekte değiştirilmesini kolaylaştırır. Biçim dizesinde referans verilen değerlerin sırasına göre geçirdiğimiz değerlerin sırası hakkında endişelenmemize gerek yok.
Str.format ()
Kullandığımız biçimlendirme bu dizede format()
bir dize nesne ve parantez üzerine işlevi ()
, dize nesne format()
işlevi parantez yerine ikame edilir ()
. format()
Biçimlendirme gibi basit konumsal biçimlendirme yapmak için işlevi kullanabiliriz %
.
Örnek 6:
name = 'world' print('Hello, ()'.format(name))
Yukarıdaki programı çalıştırdığımızda çıktı
Selam Dünya
Bu örnekte isim nesnesine geçmek için parantez ()
ve format()
fonksiyon kullandık ()
. Çıktıda parantez yerine name değerini aldık .
Değişken ikamelerimize isimleriyle başvurabilir ve onları istediğimiz sırayla kullanabiliriz. Bu, format işlevine iletilen argümanları değiştirmeden görüntüleme sırasını yeniden düzenlemeye izin verdiği için oldukça güçlü bir özelliktir.
Örnek 7:
name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))
Yukarıdaki programı çalıştırdığımızda çıktı
Merhaba dünya! Bu 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.
- Şablon yönteminde, yerleşik dizge modülünden şablon sınıfını içe aktararak bir şablon oluştururuz.
- Değişmez String Interpolation yöntemi, kullanımı kolay ve kod okunabilirliğini artıran güçlü bir interpolasyon yöntemidir.