"şiir.txt" şeklinde bir dosya oluşturun ve içinde şu satırlar yer alsın.
Memlekete sis çökmüş bir gece
Usulca yanağıma sen düşüyorsun
Sabah saat dokuzu beş geçe
Terk edip bizleri gidiyorsun
Ayrılık bu kadar yakmamıştı içimizi
Farkında mısın bilmiyorum
Aldın beraberinde cumhuriyetimizi
Korkunç bir veda, sararmıştı her yer
Ellerini uzat tutmak istiyoruz
Masmavi gözleri kaybetmiş çocuk
Aldı bir sabah ruhumuzu
Lakin nasıl bölmesin yokluğun uykumuzu
Bu dosyanın herbir satırını okuyun. Satırların baş harflerini birbirine ekleyerek bir string oluşturun ve bu string'i ekrana yazdırın.
yukarıdaki soruya ait çözüm aşağıdadır.
ilk olarak bu soruyu liste veri tipi ile veya farklı bir çözüm yöntemi ile çözebilir miyiz ?
ikinci sorum bas_harfler="" şeklinde string veri tipinin oluşturuyor ancak “” ile boş bırakmak gibi bir mantığımı oluşuyor. (yani böyle birşey nasıl olabiliyor mantığı nedir)
bas_harfler = ""
with open("şiir.txt","r",encoding="utf-8") as file:
for satır in file:
bas_harfler += satır[0]
print(bas_harfler)
not: örnek ve çözümü alıntıdır üzerinde çalışıp anlamadığım veya merak ettiğim kısımları soru olarak yöneltiyorum.
string = """Memlekete sis çökmüş bir gece
Usulca yanağıma sen düşüyorsun
Sabah saat dokuzu beş geçe
Terk edip bizleri gidiyorsun
Ayrılık bu kadar yakmamıştı içimizi
Farkında mısın bilmiyorum
Aldın beraberinde cumhuriyetimizi
Korkunç bir veda, sararmıştı her yer
Ellerini uzat tutmak istiyoruz
Masmavi gözleri kaybetmiş çocuk
Aldı bir sabah ruhumuzu
Lakin nasıl bölmesin yokluğun uykumuzu"""
liste = string.split("\n") # her enter format belirleyicisinden kesip liste dönen değeri listeye atıyoruz
liste = [i.strip() for i in liste]#listenin içindeki boş karakter dizilerini(space) kesiyoruz
print("liste : \n", liste)
bas_harfler = "".join([i[0] for i in liste])#listedeki her öğenin baş harfini alıyoruz
print("\n akrostiş : ", bas_harfler)
tip belirtiyor sadece. Boş bırakmak derken. hic bir karakter içermeyen ve boolean değeri false olan bir değer tutuyor.
Python’da değişkenlerin bir tipi yok, nesnelerin var.
Daha sonra üzerine başka karakter dizileri eklemek için boş, yani uzunluğu sıfır olan bir karakter dizisi oluşturuyor. Boş bırakmaktan kastınız bu ise, evet.
>>> int("")
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
int("")
ValueError: invalid literal for int() with base 10: ''
>>>