While ile yazılan uygulama

Ark_Us

Kilopat
Katılım
7 Nisan 2017
Mesajlar
850
Makaleler
1
Çözümler
7
Herkese merhaba kendimi geliştirmek amaçlı böyle bir şey yazdım daha öncede buna benzer bişey yapmışdım busefer while döngüsünü kullanrak yazım belli noktaya kadar iyi hoş çalışıyorda kodun son kısmı hatalı çalışıyor sebebi nedir sizce.

Python:
gırıs = input("öğrenci kayıt işlemine hoşgeldiniz başlamak için Y yazın: ")
gırılemsiGerenekenKelime = "Y"

if gırıs == gırılemsiGerenekenKelime:
    ogrenciSayı = int(input("istemek istediğiniz öğrenci sayısı: "))
   
    ogrenciler = {}

    a = 0
    while a < ogrenciSayı:
        ogrneciNumarası = input("öğrenci numarası: ")
        ogrenciIsım = input("ogrenci ısmı: ")
        ogrenciSoyIsım = input("ogrenci soy ismi: ")
        ogrenciTelefonu = input("ogrenci Telefonu: ")
        ogrenciler.update({
            ogrneciNumarası:{
                "name": ogrenciIsım,
                "surname": ogrenciSoyIsım,
                "phone": ogrenciTelefonu
            }
        })
        a += 1
    istenilen = input("istenilen ogrencinuamrası: ")
    istenilen1 = ogrenciler[istenilen1]
    print(istenilen1)
 
Herkese merhaba kendimi geliştirmek amaçlı böyle bir şey yazdım daha öncede buna benzer bişey yapmışdım busefer while döngüsünü kullanrak yazım belli noktaya kadar iyi hoş çalışıyorda kodun son kısmı hatalı çalışıyor sebebi nedir sizce.

Python:
gırıs = input("öğrenci kayıt işlemine hoşgeldiniz başlamak için Y yazın: ")
gırılemsiGerenekenKelime = "Y"

if gırıs == gırılemsiGerenekenKelime:
    ogrenciSayı = int(input("istemek istediğiniz öğrenci sayısı: "))
 
    ogrenciler = {}

    a = 0
    while a < ogrenciSayı:
        ogrneciNumarası = input("öğrenci numarası: ")
        ogrenciIsım = input("ogrenci ısmı: ")
        ogrenciSoyIsım = input("ogrenci soy ismi: ")
        ogrenciTelefonu = input("ogrenci Telefonu: ")
        ogrenciler.update({
            ogrneciNumarası:{
                "name": ogrenciIsım,
                "surname": ogrenciSoyIsım,
                "phone": ogrenciTelefonu
            }
        })
        a += 1
    istenilen = input("istenilen ogrencinuamrası: ")
    istenilen1 = ogrenciler[istenilen1]
    print(istenilen1)
ogrenciler.update yerine append kullanman gerekli. Değişken adlarında da Türkçe karakter kullanma.
istenilen1 = ogrenciler[istenilen1]

Daha öncesinde tanımlamadığın bir değişkeni kullanmışsın.
Python'da bu şekilde değişken atayabiliyorsun diye hatırlıyorum.
 
Herkese merhaba kendimi geliştirmek amaçlı böyle bir şey yazdım daha önce de buna benzer bir şey yapmışdım busefer while döngüsünü kullanrak yazım belli noktaya kadar iyi hoş çalışıyorda kodun son kısmı hatalı çalışıyor sebebi nedir sizce.

Python:
gırıs = input("öğrenci kayıt işlemine hoşgeldiniz başlamak için Y yazın: ")
gırılemsiGerenekenKelime = "Y"

if gırıs == gırılemsiGerenekenKelime:
ogrenciSayı = int(input("istemek istediğiniz öğrenci sayısı: "))

ogrenciler = {}

a = 0
while a < ogrenciSayı:
ogrneciNumarası = input("öğrenci numarası: ")
ogrenciIsım = input("ogrenci ısmı: ")
ogrenciSoyIsım = input("ogrenci soy ismi: ")
ogrenciTelefonu = input("ogrenci Telefonu: ")
ogrenciler.update({
ogrneciNumarası:{
"name": ogrenciIsım,
"surname": ogrenciSoyIsım,
"phone": ogrenciTelefonu
}
})
a += 1
istenilen = input("istenilen ogrencinuamrası: ")
istenilen1 = ogrenciler[istenilen1]
print(istenilen1)

Okurken çok kafam karıştı. Yazımlar okunabilirlik açısından sorunlu bana kalırsa. Aynı zamanda program ı harfi yüzünden bazen sorun verebiliyor. Sorunuz için çok net bir cevabım yok okuyamadım çünkü :/.
 
Python:
gırıs = input("öğrenci kayıt işlemine hoşgeldiniz başlamak için Y yazın: ")

gırılemsiGerenekenKelime = "Y"



if gırıs == gırılemsiGerenekenKelime:

    ogrenciSayı = int(input("istemek istediğiniz öğrenci sayısı: "))



    ogrenciler = {}



    a = 0

    while a < ogrenciSayı:

        ogrneciNumarası = input("öğrenci numarası: ")

        ogrenciIsım = input("ogrenci ısmı: ")

        ogrenciSoyIsım = input("ogrenci soy ismi: ")

        ogrenciTelefonu = input("ogrenci Telefonu: ")

        ogrenciler.update({

            ogrneciNumarası:{

                "name": ogrenciIsım,

                "surname": ogrenciSoyIsım,

                "phone": ogrenciTelefonu

            }

        })

        a += 1

    print(ogrenciler)

Anladığım kadarıyla sadece ogrenci dizisini yazdırmaya çalışıyosun.

1- Önce bir ne yapmak istediğini anla. Baştaki kısıtlama bir şeye yaramıyor. Bir if' var ama neden var.

2- Türkçe karakter kullanma fakat anlaşılır bir dille yaz.

3- Kodunu olabildiğince basite indirge. Gereksiz kullanımları , tanımları olabildiğince kullanma.

4- Hata mesajlarını oku. Buraya onu paylaşsan çok daha rahat anlaşılır.
 
Buyurun. Ama burada for kullanman yazım açısından daha kolay.

Python:
i = 0
students = {}
studentLen = int(input("Girilecek öğrenci sayısı: "))
while i < studentLen:
  studentNumber = input("Öğrenci numarası: ")
  studentName = input("Öğrenci adı: ")
  studentMobile = input("Öğrenci telefon: ")
  students.update({
    studentNumber: {
      "name": studentName,
      "mobile": studentMobile
    }
  })
  i += 1
studentReq = input("İstenilen öğrenci numarası: ")
student = students[studentReq]
print("Adı: " + student["name"] + "\nTelefon: " + student["mobile"])
 
Son düzenleme:
Ogrenciler. Update yerine append kullanman gerekli. Değişken adlarında da Türkçe karakter kullanma.

Python'da bu şekilde değişken atayabiliyorsun diye hatırlıyorum.

Append metodunu denedim anlamadığım bir sepeten hata hatta buraya atıyorum kendinizde bizzat deneyebilirsiniz
Python:
gırıs = input("öğrenci kayıt işlemine hoşgeldiniz başlamak için Y yazın: ")
gırılemsiGerenekenKelime = "Y"

if gırıs == gırılemsiGerenekenKelime:
    ogrenciSayı = int(input("istemek istediğiniz öğrenci sayısı: "))
   
    ogrenciler = []

    a = 0
    while a < ogrenciSayı:
        ogrneciNumarası = input("öğrenci numarası: ")
        ogrenciIsım = input("ogrenci ısmı: ")
        ogrenciSoyIsım = input("ogrenci soy ismi: ")
        ogrenciTelefonu = input("ogrenci Telefonu: ")
        ogrenciler.append({
            ogrneciNumarası:{
                "name": ogrenciIsım,
                "surname": ogrenciSoyIsım,
                "phone": ogrenciTelefonu
            }
        })
        a += 1
    istenilen = input("istenilen ogrencinuamrası: ")
    istenilen1 = ogrenciler[istenilen]
    print(istenilen1)
   
# hata mesajı: istenilen1 = ogrenciler[istenilen]
TypeError: list indices must be integers or slices, not str
 
Son düzenleme:

Yeni konular

Geri
Yukarı