Çözüldü Python For döngüsü nasıl olmalı?

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

MA2ilDa

Hectopat
Katılım
3 Aralık 2020
Mesajlar
238
Daha fazla  
Cinsiyet
Erkek
Python:
ögrenciler = [

 "ahmet başer",
 "mehmet Basri kayhan",
 "murat Tarık ak",

 "kerim egeli",
 "elif Berrin çoban",
 "beyza Yağcı"
]
sinif_baskani = "mehmet Basri kayhan"

ögrenci_sayisi = 0
baskan_sayisi = 0

for ögrenci in ögrenciler:
 ögrenci = ögrenci.split(" ")
 ad, soyad = " ".join(ögrenci[:-1]), ögrenci[-1]
 if (ögrenci == sinif_baskani):
 baskan_sayisi += 1
 print("{0}. Başkanın adı {1}, soyadı {2}".format(baskan_sayisi, ad, soyad))
 else:

 ögrenci_sayisi += 1
 print("{0}. Öğrencinin adı {1}, soyadı {2}".format(ögrenci_sayisi,ad,soyad))

Selam. Kodda başkan olarak Mehmet basri kayhan seçtim. Print çıktısı olarak 1. öğrenci... Dan sonra 1. başkan Mehmet basri kayhan demesi gerekirken 2. öğrenci Mehmet basri kayhan diyor. Bunu nasıl sağlayabilirim? Yardımlarınız için teşekkürler.
 
Çözüm
Öğrenci adlarını boşluklardan bölüyorsunuz ve ad soyad olarak ayırıyorsunuz ondan sonra öğrenci == sinif_baskani diyorsunuz. Öğrenci artık ikiye bölünüp bir dizi haline geldiği için belirttiğiniz koşul onaylamaz. Aşağıdaki şekilde dener misiniz?

Python:
ögrenciler = [

 "ahmet başer",
 "mehmet Basri kayhan",
 "murat Tarık ak",

 "kerim egeli",
 "elif Berrin çoban",
 "beyza Yağcı"
]
sinif_baskani = "mehmet Basri kayhan"

ögrenci_sayisi = 0
baskan_sayisi = 0

for ögrenci in ögrenciler:
 ögrenciparcala = ögrenci.split(" ")
 ad, soyad = " ".join(ögrenciparcala[:-1]), ögrenciparcala[-1]
 if (ögrenci == sinif_baskani):
 baskan_sayisi += 1
 print("{0}. Başkanın adı {1}, soyadı {2}".format(baskan_sayisi, ad, soyad))
 else:

 ögrenci_sayisi += 1
 print("{0}. Öğrencinin adı {1}, soyadı {2}".format(ögrenci_sayisi,ad,soyad))
Öğrenci adlarını boşluklardan bölüyorsunuz ve ad soyad olarak ayırıyorsunuz ondan sonra öğrenci == sinif_baskani diyorsunuz. Öğrenci artık ikiye bölünüp bir dizi haline geldiği için belirttiğiniz koşul onaylamaz. Aşağıdaki şekilde dener misiniz?

Python:
ögrenciler = [

 "ahmet başer",
 "mehmet Basri kayhan",
 "murat Tarık ak",

 "kerim egeli",
 "elif Berrin çoban",
 "beyza Yağcı"
]
sinif_baskani = "mehmet Basri kayhan"

ögrenci_sayisi = 0
baskan_sayisi = 0

for ögrenci in ögrenciler:
 ögrenciparcala = ögrenci.split(" ")
 ad, soyad = " ".join(ögrenciparcala[:-1]), ögrenciparcala[-1]
 if (ögrenci == sinif_baskani):
 baskan_sayisi += 1
 print("{0}. Başkanın adı {1}, soyadı {2}".format(baskan_sayisi, ad, soyad))
 else:

 ögrenci_sayisi += 1
 print("{0}. Öğrencinin adı {1}, soyadı {2}".format(ögrenci_sayisi,ad,soyad))
 
Çözüm
Öğrenci adlarını boşluklardan bölüyorsunuz ve ad soyad olarak ayırıyorsunuz ondan sonra öğrenci == sinif_baskani diyorsunuz. Öğrenci artık ikiye bölünüp bir dizi haline geldiği için belirttiğiniz koşul onaylamaz. Aşağıdaki şekilde dener misiniz?

Python:
ögrenciler = [

 "ahmet başer",
 "mehmet Basri kayhan",
 "murat Tarık ak",

 "kerim egeli",
 "elif Berrin çoban",
 "beyza Yağcı"
]
sinif_baskani = "mehmet Basri kayhan"

ögrenci_sayisi = 0
baskan_sayisi = 0

for ögrenci in ögrenciler:
 ögrenciparcala = ögrenci.split(" ")
 ad, soyad = " ".join(ögrenciparcala[:-1]), ögrenciparcala[-1]
 if (ögrenci == sinif_baskani):
 baskan_sayisi += 1
 print("{0}. Başkanın adı {1}, soyadı {2}".format(baskan_sayisi, ad, soyad))
 else:

 ögrenci_sayisi += 1
 print("{0}. Öğrencinin adı {1}, soyadı {2}".format(ögrenci_sayisi,ad,soyad))

Kod çalıştı fakat nasıl çözdüğünüzü tam anlamadım. Biraz daha detaylı anlatırsanız çok sevinirim.
 
Kod çalıştı fakat nasıl çözdüğünüzü tam anlamadım. Biraz daha detaylı anlatırsanız çok sevinirim.

Öğrenci değişkenini tekrar kullanarak boşluklara ayırıyorsunuz.
Öğrenci = "Mehmet karakaya"

Boşluklara ayırdıktan sonra öğrenci = [0] => "Mehmet", [1] => "karakaya" oluyor.
Siz ayırdıktan sonra öğrenci == Mehmet karakaya koşulunu denediğiniz için koşul onay vermiyor. Çünkü çoktan boşluklarına ayrıldı ve bir diziye dönüştü.
 
Öğrenci değişkenini tekrar kullanarak boşluklara ayırıyorsunuz.
Öğrenci = "Mehmet karakaya"

Boşluklara ayırdıktan sonra öğrenci = [0] => "Mehmet", [1] => "karakaya" oluyor.
Siz ayırdıktan sonra öğrenci == Mehmet karakaya koşulunu denediğiniz için koşul onay vermiyor. Çünkü çoktan boşluklarına ayrıldı ve bir diziye dönüştü.

Anladım teşekkürler vakit ayırdığınız için.
 

Geri
Yukarı