Aradaki Fark Ve Python.
-
Merhaba arakdaşlar benim sorum python'da string değişkenler ve metinlerde yapılan replace işlemi hakkında
örnek 1;
a="Burası çok güzel"
print a.replace('Burası','Şurası')
örnek 2;
import string
a="Burası çok güzel"
print string.replace(a,"Burası","Şurası")
aradaki kullanım farkını ve işlev açıklarsanız sevinirim,şimdiden sağolun. -
ilkinde a değeri değişiyor, ikincisinde sadece a yı kullanıyor, a değişmiyor
edit:değilmiş :)
edit2: splitte böyle bişe vardı ama (sıçtık bari sıvıyalım :) )
-
pythonda mantık aramıcan hacı,
ama burda büyük ihtimalle,
__built-in__ 'deki str tipindeki değişken için tanımlanmış olan replace metodu, string.replace'i çaığrıyordur.
yani aslında aynı bokun lacivertidir,
fakat,
time python -c "a='cnr437cnr437cnr437'; a.replace('cnr','ln',2)" && time python -c "import string; string.replace('cnr437cnr437cnr437','cnr','ln',2)"
kodunun çıktısı bu olmaktadır,
real 0m0.033s
user 0m0.020s
sys 0m0.016s
real 0m0.047s
user 0m0.036s
sys 0m0.000syani küçük bi benchmark gibi :)
kullanıcının kendisinin kütüphaneyi çağırması, pythonun kendisinin kütüphaneyi çağırmasından daha yavaş olduğunu görmüş oluyoz.
yani, sen import string deyince biraz daha fazla zaman harcıyon ama bu zaman önemsencek bi zaman değil :)
ama python kendi içinde a.replace metodu zaten bi şekilde string.replace fonksiyonuna bağlı.
o yüzden eline kolay geleni kullan bence :)
mesela pythonda saçma sapan bi özellik var,
hala da duruyo :)
input() fonksiyonu hala nesne alarak çalışıyor, bu da aslında sağlam bi açığa kapı aralıyor,
>>>import os #os kütüphanesi çağırdı diyelim
>>>input('sayi gir lan:') #yazdik mesela, kullanicinin sayi girecegini dusunerek, (genelde input bu şekilde kullanıldığını düşünerek yazıyorum=)
>>> sayi gir lan: #kullanıcı buraya string giremez fakat 'tahribat' diye girebilir, buraya kadar hos güzel,ama
kullanıcı önceden programın içinde tanımlanmış bi değişken ismi de girebilir, hatta fonksiyonda. mesela
>>>sayi gir lan: os.system('ls -l') #girerse sistemde komut çalıştırma yetkisine sahip olmuş olur.
bunları genelde kullanılan şekline göre yazıyorum, çünkü %90 kullanıcı os modülünü çağırır, %90 kullanıcı input kullanır felan.
