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.

The string "OpenMV" with position markers between each character, illustrating how a slice selects the characters between two positions.

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().