Çözüldü Kodda 2. adlar soyadına taşınıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

lyhsteria

Hectopat
Katılım
3 Aralık 2020
Mesajlar
326
Daha fazla  
Cinsiyet
Erkek
Bir kod yazdım fakat bir yerde takıldım. Yeni yeni başlıyorum malum.

Python:
ögrenciler = [
 "ahmet başer",
 "mehmet Basri kayhan",
 "murat Tarık ak",

 "kerim egeli",
 "elif Berrin çoban",
 "beyza Yağcı"
]
ögrenci_sayisi = 0

for ögrenci in ögrenciler:
 ögrenci_sayisi += 1
 ad, soyad = ögrenci.split()[0], ögrenci.split()[1]
 print("{0}. Öğrencinin adı {1}, soyadı {2}".format(ögrenci_sayisi,ad,soyad))

Tek isimli kişileri normal bir şekilde atarken 1'den fazla isme sahip kirilerin 2. ismini soyada atıyor. Ben bunu kaç isimli olurlarsa olsunlar isimlerini isim değişkenine soyadlarını soyad değişkenine atarım. Yeni başladığım için veri tiplerini if else ve for döngüsünü biliyorum daha. Buna göre kod önerirseniz çok sevinirim.

 
Son düzenleyen: Moderatör:
Çözüm
Son kelimeyi soyada vermelisiniz, kalanları da ada.

Kod:
isimler = "Ahmet Mithat Berhan".split(" ")
ad = " ".join(isimler[:-1])
soyad = isimler[-1]

Böylede ad = Ahmet Mithat olur, soyad da Berhan.
Ayrıca 4 isimli birinin 3 ismi ad olur, 4. kelime de soyad.


Dinamik olmadığından böyle bir çözüm önermiyorum.
for ögrenci in ögrenciler:
ögrenci_sayisi += 1
if len(ogrenci.split()) = 2:
ad, soyad = ögrenci.split()[0], ögrenci.split()[1]
else:
ad, soyad = (ögrenci.split()[0] + ögrenci.split()[1]),ögrenci.split()[2]
print("{0}. Öğrencinin adı {1}, soyadı {2}".format(ögrenci_sayisi,ad,soyad))
 
Hocam bende çok bilmiyorum ama "Öğrencinin 2. ismi" diye değişken gibi birşey ekleyin.
 
Son kelimeyi soyada vermelisiniz, kalanları da ada.

Kod:
isimler = "Ahmet Mithat Berhan".split(" ")
ad = " ".join(isimler[:-1])
soyad = isimler[-1]

Böylede ad = Ahmet Mithat olur, soyad da Berhan.
Ayrıca 4 isimli birinin 3 ismi ad olur, 4. kelime de soyad.


Dinamik olmadığından böyle bir çözüm önermiyorum.
 
Çözüm

Hocam kod hata veriyor anlamadığım şekilde.
Expected an indented block after 'if' statement on line 14.
Hata kodu bu.


Hocam. Join ne demek oluyor açıklar mısınız?
 
String sınıfının fonksiyonudur. " " şeklinde yazı yani string belirtip. Join fonksiyonu ile ( ) içerisindeki yazıları ekledik ilk yazıya.

Yazı += yazı gibi bir anlamı var kabaca.

Kod çalıştı mı?

Teşekkürler. Kod çalıştı fakat Ahmet mithatberhan şeklinde verdi çıktıyı. Mithat la Berhan'ı nasıl ayırabilirim?
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…