2.4. Dizeler (Strings)

Bir dize (string), tırnak işaretleri arasına yazılan bir Unicode karakter dizisidir. Tek tırnaklar ve çift tırnaklar eşdeğerdir – metin içinde geçen tırnakları kaçış (escape) yapmaktan kurtaran stili seçin:

name    = "OpenMV Cam"
company = 'OpenMV, LLC'
message = "She said \"hi\""        # both styles can be used
same    = 'She said "hi"'

Üç tırnaklı dizeler ("""...""" veya '''...''') birden çok satıra yayılır ve satır sonlarını olduğu gibi korur:

banner = """boot ok
firmware v1.28
"""
print(banner)

Çıktı:

boot ok
firmware v1.28

2.4.1. Kaçış dizileri

Normal bir dizenin içinde \ özel bir karakter başlatır:

  • \n – satır sonu

  • \t – sekme

  • \\ – düz bir ters eğik çizgi

  • \' / \" – düz bir tırnak (aksi takdirde dizeyi sonlandıracağı durumlarda)

  • \xHHHH onaltılık koduna sahip karakter

  • \uHHHHHHHH Unicode kod noktası

Bir dize çok sayıda ters eğik çizgi içerdiğinde, onu ham (raw) bir dizeye dönüştürmek için literalin önüne r ekleyin. Ters eğik çizgiler o zaman düz biçimde alınır – \n bir satır sonuyla değiştirilmek yerine iki karakter uzunluğunda kalır:

win_path = r"C:\Users\OpenMV\camera.py"
literal  = r"\n is two characters, not a newline"

2.4.2. Birleştirme ve tekrarlama

İki dize + ile birleştirilir; bir dize * ile tekrarlanır:

greeting = "Hello, " + name + "!"
line     = "-" * 40              # 40-character separator

Bir döngüde tekrarlanan + her yinelemede yeni bir dize ayırır. Birçok parçadan daha büyük dizeler oluşturmak için str.join() kullanın.

2.4.3. Uzunluk, indeksleme ve dilimleme

len() bir dizedeki karakter sayısını döndürür. [] ile indeksleme, verilen konumdaki tek karakterlik bir dize döndürür; negatif indeksler sondan saymaya başlar:

>>> s = "OpenMV"
>>> len(s)
6
>>> s[0]
'O'
>>> s[-1]
'V'

Bir dilim (slice) s[start:stop], start konumundan stop konumuna kadar (ona dahil olmadan) alt dizeyi döndürür. İki uçtan biri “baş” veya “son” anlamına gelmek üzere atlanabilir ve isteğe bağlı bir üçüncü değer s[start:stop:step] karakter atlamanıza olanak tanır.

Her karakterin arasında konum işaretleri bulunan "OpenMV" dizesi; bir dilimin iki konum arasındaki karakterleri nasıl seçtiğini gösterir.

Dilim konumları karakterlerin arasında yer alır. s[2:5] 2, 3 ve 4. konumlardaki karakterleri seçer.

>>> s = "OpenMV"
>>> s[2:5]
'enM'
>>> s[:3]
'Ope'
>>> s[3:]
'nMV'
>>> s[::-1]
'VMnepO'                     # whole string, reversed

Aralık dışı bir dilim, sessizce mevcut olan kısmı döndürür – s[100:200] bir hata değil, boş dize "" olur. Buna karşılık, aralık dışında indeksleme IndexError yükseltir.

2.4.4. Değişmezlik

Dizeler yerinde değiştirilemez. Bir dizeyi değiştiriyormuş gibi görünen işlemler aslında yeni bir dize döndürür ve orijinalini olduğu gibi bırakır:

>>> name = "OpenMV"
>>> name.upper()
'OPENMV'
>>> name
'OpenMV'                     # unchanged

Bir dizeyi “değiştirmek” için, adı yeni değere yeniden bağlayın: name = name.upper().