Tek tırnak ve çift tırnak hakkında

Merhabalar , öncelikle umarim konuyu dogru baslik altina acmisimdir diye umuyorum , yanlis bölüme actiysam (biraz forum özürlüyümdür) bu hiyarligimi lütfen mazur görün. Python ögrenme asamasinda ilk derslerdeyim bu yüzden daha en basta kafamda bir soru isareti ile devam etmek istemedim. Kisaca soruma geleyim websitesinden okudugum derslere göre mesela “hello world” olarak gönderdigim karakter dizisinin ciktisini ‘hello world’ yada “elma” yi ‘elma’ , “123” karakter dizisinin ciktisini da ‘123’ seklinde aliyorum buraya kadar hersey yolunda. Etkilesimli kabukta bunlari yazarken yazdigim karakter dizisine tek tirnak (’) koydugumda , ciktiyi basinda ve sonunda tek tirnak isareti degil de , yazdigim sekliyle cift tirnak içinde aliyorum. Örnegin ;
“salimin dünyasi” karakter dizisinin ciktisini tek tirnak içinde alirken “salim’in dünyasi” karakter dizisini yazdigim sekliyle basinda ve sonunda çift tirnak içinde aliyorum. Diger özel karakterleride denedim ve onlardada derste anlatildigi gibi tek tirnak içinde cikti aldim ve bunun sebebini merak ettim. Bu özel bir durum mu? Belki soru sormak için çok acele ettim bilmiyorum , google’da sebebini arastirdim ama bu sorunun cevabini bulamadim. Bu cahili aydinlatirsaniz sevinirim herkese tesekkür ederim iyi calismalar :wave:

Bunun sebebini size yazacağım kodu deneyerek görün :slight_smile:

print('salim'in dünyası')

Shell’de :

'salim'in dünyası'

3 tane tırnak olduğu zaman Python hangisi karakter dizisi bunların yahu ? der ve şaşırır diyeyim size :smiley:
Bir karakter dizisi iki tırnak veya 2 kesme işareti arasında gösterilir. Fakat siz 3 tane kesme işareti koymuşsunuz ve böyle olunca python sadece 'salim'i karakter dizisi olarak algılıyor. Sonrasında gelen bir diğer kesme işaretinin ise bir işlevi olmayınca hata veriyor.
Yani :

'salim'in dünyası'

Renklendirmeden de anlaşılıyor olsa gerek. Forum’da python kodları paylaşırken karakter dizileri açık turuncumsu bir renk alır. Salim karakter dizisi olduğu için bu renk verilmiş. Ama bir de sonrasına bakın…


Shell tabii ki kendi kendine hata yapacak değil öyle değil mi ? Böyle bir hata olmasın diye tırnak işareti arasına alıyor.


Bu arada yanlış bilgi vermiş olmayayım, Python’da karakter dizileri tırnak işareti ya da kesme işaretine alınır dedim ancak 3 tırnak ile de belirtebiliyoruz.

"""
string
"""

gördüğünüz gibi turuncu olarak görüntüleniyor. Bunu daha sonra görürsünüz zaten şimdi kafanız karıştırmasın.

1 Beğeni

Hakkisiniz bu konuyu dediginiz gibi 3 tirnak olunca kafasi karisiyormus olarak düsüneyim simdilik. Henüz çok baslardayim kendi kafamida karistirmayayim :slight_smile: tesekkurler :+1:

1 Beğeni

Merhaba,

Python’ın yorumlayıcısı çıktıyı tek tırnakla (') verecek şekilde ayarlanmış. Yani yazdığımız (neredeyse) her string’i tek tırnakla gösteriyor:

>>> 'tek tırnak'
'tek tırnak'

>>> "çift tırnak yazıyorum"
'çift tırnak yazıyorum'

>>> '''üç olsa?'''
'üç olsa?'

>>> """üç ama çift her biri?"""
'üç ama çift her biri?'

İstisnası sizin de bahsettiğiniz üzere string’in içerisinde tek tırnak bulunması:

>>> "Türkçe'nin şeklindeki yazım yanlıştır"
"Türkçe'nin şeklindeki yazım yanlıştır"

Bu durumda içerideki tek tırnakla karışmaması adına dışarda çift tırnağı tercih ediyor.

Peki niye bu son durum hariç çıktıyı tek tırnakla veriyor derseniz, “öyle tercih etmişler” demekten başka bir yanıt yok heralde

https://twitter.com/raymondh/status/1259209765072154624
https://twitter.com/raymondh/status/1344708153615630336

2 Beğeni

Gönderilerdeki kod görünümü hakkında

1 Beğeni

foruma sanki etkilesimli kabuga karakter dizisi gibi yazip bide cikti bekledim ya helal bana fhdjjsj