Python - Değişken İsimleri Oluşturma Hakkında

Merhaba,

Python da değişken isimleri verirken, bu değişken isimlerini program aracılığı ile oluşturmak mümkün müdür? Kullanıcının gireceği bir input değerini (değişken oluşturma koşullarına uyum sağladığı sürece) bir listenin değişkeni olarak adlandırıp liste kurmak. Ya da program kodun ilerleyişine göre kullanıcı ile etkileşim halinde olduğu sürede ya da kendi yaptığı işlemler de değişkenleri rastgele ya da belirli bir kural bütünlüğünde oluşturması mümkün müdür? Biraz kafa yordum ama yetersiz kaldım. Olmayacağına kanaat getiriyorum fakat ama lakin farklı bir fikir de alabilirim diye buradan soruyorum.

İyi günler.

globals()[input("Variable name: ")] = input("Value: ")    

Calistirinca:

In [2]: globals()[input("Variable name: ")] = input("Value: ")                                                                                                           
Value: Emre
Variable name: x

In [3]: x                                                                                                                                                                
Out[3]: 'Emre'

Boyle bir sey mi?

1 Beğeni

Bunu yapmaktaki amacınız ne?

Misal;

Bir okulumuz var ve okula kayıt yaptırmış fakat sınıfları belli olmayan 500 öğrencimiz var. Bu öğrencilerin hepsi aynı sınıf. Programın ilk sorusu şu olacak;

“Kaç farklı sınıf olacak”

Girilen sınıf sayısına göre eşit şekilde fakat rastgele olarak öğrencileri içerisine alacağı listeler oluşturacak. Bu listeleri önceden tanımlamak mümkün fakat kod kalabalığı olur diye düşünüyorum.

Kod kalabalığını önlemek amacı ile kayıtlı tüm öğrencileri sınıf sayısı kadar listeye rastgele kayıt edecek bir döngüyü fonksiyon içerisinde çalıştırıp koşul sağlandıkça da her sınıf kapasitesi dolduğunda yeni sınıf açıp oraya kaydetmek için.


Misal;

Görsel programlama ile yapılmış bir uygulama kullanıyoruz.

örneğin buradaki program;

bu program da belirli gider kalemleri var fakat kullanıcıların farklı gider kalemlerine ihtiyacı olabilir. Bunun için de gider kalemi bölümüne yeni gider kalemleri eklemek için + butonu olacak. Bu butona basıldğında gider kaleminin oluşturulması gerekli Entry alanları ve Label’ler için değişken lazım. Bu değişkenleri de var olmayan bir şey girileceği için sisteme otomatik oluşturmak lazım.

Yani kafam şuan bunları düşünebiliyor.

Bu listeleri, anahtarları sınıf ismi olan bir sözlükte de saklayabilirsiniz diye tahmin ediyorum.

bunu çalıştırdım da

şu kısım bende yok

mantıklı ama benim değişken ismi üretmem lazım. bugün aklıma gelmeyen ama daha sonra aklıma gelecek bir şey için lazım olabilir.

Benim attığım kod string’den değişken ismi oluşturuyor. Etkileşimli kabukta o kodu çalıştırıp, değere Emre, değişken adına da x dersek, x adında bir değişken oluşturulur.

Onu ben yazdım.

1 Beğeni

Lazim degil. Istiyor olabilirsin, ama lazim degil.

Olmaz. Isteyebilirsin, o ayri.

Fakat genelde datayi kodun okuyabilecegi yerde tutmayi tercih etmeliyiz, insanin okuyup kodun okuyamadigi (zor okudugu) yerde degil. Kisaca prototipleme/debug yaparken isine yarayabilir fakat program gelistireceksen @EkremDincel’in dedigini yapman gerekecek.

@aib @EkremDincel

şu kısım için çözüm öneriniz nedir peki?

Bu konu tkinter ile alakali. Basit bir mantigi var.

acaba nedir nedir? öğrenebilir miyim?

Gerekli input’lari iceren bir frame’imiz olsun. Kullanici her + butonuna bastiginda, bu frame’i kopyalayalim, ve pencereye yerlestirelim.

Entry’ler ve Label’lar icin degisken gerektigi varsayimi yanlis.

1 Beğeni

değişkeni olmayan bir entry ya da label’in değerini nasıl değiştireceğim ya da alacağım?

Sen almayacaksin, yazdigin kod alacak. :slight_smile:

Degisik isimde degisken olusturarak nasil yapacaksin asil? Mumkun (kolay) degil.

anladığım kadarıyla bu işin oluru yok. Değişken ismi üretmekten vazgeçiyorum.

Değişken ismi üreteceğinize butonları bir listede tutamaz mısınız?

Aynen, bunu demeye calisiyordum. Eklenen Frame’leri de bir listede tutariz.

Ben meramımı tam olarak dile getiremediğim gibi sizlerin de söylediklerinizi kendi kafamdaki ile bağdaştıramadığım için bir sonuca varamadım. butonları bir listede tutmak derken bunu örnekleyebilir misiniz?