Çözüldü✓ python class

Python'da kullanıcıdan alınan ürün özelliklerini yazdırma şeklinde bir class yapısı oluşturdum. Ama kod istediğim gibi çalışmıyor. Çıktısı resimde sarı kutucuk içinde.

Alıntıyı görüntüle




Benim çalışmasını istediğim şekil ise şu:


Alıntıyı görüntüle

BU ŞEKİLDE ÇALIŞMASINI NASIL SAĞLAYABİLİRİM?
Dediğin şekilde yapacaktım fakat biraz mantıksız geldi kendim biraz daha farklı bir şekilde yaptım.


Python:
product_list = []

class Product:
    def __init__(self, name, price, color):
        self.name = name
        self.price = price
        self.color = color

    def __str__(self) -> str:
        return f"Ürün adı : {self.name}\nBirim fiyatı : {self.price}\nRenk : {self.color}\n"

class Request:
    def __init__(self):
        pass

    def add(self):
        global product_list

        name = input("Ürün adı giriniz : ")
        price = input("Ürün Fiyatı giriniz : ")
        color = input("Ürün Rengi giriniz : ")

        product_list.append(Product(name, price, color))

request = Request()
message = """
Programdan çıkmak için -> 0
Ürün eklemek için      -> 1
"""
inp = input(message)

while inp != "0":
    if(inp == "1"):
        request.add()
    else:
        print("Hatalı değer girildi tekrar deneyiniz.")

    inp = input(message)

print("\n\n\nÜrünler Listesi : ")
print("*" * 10, "\n")
for product in product_list:
    print(product)

İşimi görmez dersen dediğin şekilde de yapabilirim.
 
Dediğin şekilde yapacaktım fakat biraz mantıksız geldi kendim biraz daha farklı bir şekilde yaptım.


Python:
product_list = []

class Product:
    def __init__(self, name, price, color):
        self.name = name
        self.price = price
        self.color = color

    def __str__(self) -> str:
        return f"Ürün adı : {self.name}\nBirim fiyatı : {self.price}\nRenk : {self.color}\n"

class Request:
    def __init__(self):
        pass

    def add(self):
        global product_list

        name = input("Ürün adı giriniz : ")
        price = input("Ürün Fiyatı giriniz : ")
        color = input("Ürün Rengi giriniz : ")

        product_list.append(Product(name, price, color))

request = Request()
message = """
Programdan çıkmak için -> 0
Ürün eklemek için      -> 1
"""
inp = input(message)

while inp != "0":
    if(inp == "1"):
        request.add()
    else:
        print("Hatalı değer girildi tekrar deneyiniz.")

    inp = input(message)

print("\n\n\nÜrünler Listesi : ")
print("*" * 10, "\n")
for product in product_list:
    print(product)

İşimi görmez dersen dediğin şekilde de yapabilirim.Alıntıyı görüntüle
Mesajlar otomatik olarak birleştirildi:

Teşekkür ederim kodlar için çok yardımı oluyor. Benim aslında programı şu şekilde yapmam gerekiyor: Kullanıcı istediği özellikleri kendi belirleyip ekleme yapacak. Şu şekilde:


py4.png



Rica etsem bu şekilde yazabilir misiniz?
 
Son düzenleme:
Mesajlar otomatik olarak birleştirildi:

Teşekkür ederim kodlar için çok yardımı oluyor. Benim aslında programı şu şekilde yapmam gerekiyor: Kullanıcı istediği özellikleri kendi belirleyip ekleme yapacak. Şu şekilde:


Alıntıyı görüntüle


Rica etsem bu şekilde yazabilir misiniz?
Python:
product_list = []

class Product:
    def __init__(self, name, price, color):
        self.name = name
        self.price = price
        self.color = color

    def __str__(self) -> str:
        return f"Ürün adı : {self.name}\nBirim fiyatı : {self.price}\nRenk : {self.color}\n"


class Request:
    def __init__(self):
        pass

    def add(self):

        name = input("Ürün adı giriniz : ")
        if name == "":
            name = "Belirtilmedi"
        price = "Belirtilmedi"
        color = "Belirtilmedi"
        
        inp = input("Hangi özelliği eklemek istersiniz :\nfiyat | renk\nEklemek istemiyorsanız 0\n>>> ")

        while inp != "0":
            if inp == "fiyat":
                price = input("Ürün Fiyatı giriniz : ")

            elif inp == "renk":
                color = input("Ürün Rengi giriniz : ")

            if price != "Belirtilmedi" and color != "Belirtilmedi":
                break
            
            if inp != "fiyat" and inp != "renk":
                print("Hatalı Değer Girildi")

            inp = input("Hangi özelliği eklemek istersiniz :\nfiyat | renk\nEklemek istemiyorsanız 0\n>>> ")

        product_list.append(Product(name, price, color))


request = Request()
message = """
Programdan çıkmak için -> 0
Ürün eklemek için      -> 1
"""
inp = input(message)

while inp != "0":
    if (inp == "1"):
        request.add()
    else:
        print("Hatalı değer girildi tekrar deneyiniz.")

    inp = input(message)

print("\n\n\nÜrünler Listesi : ")
print("*" * 10, "\n")
for product in product_list:
    print(product)

Kodu 1 kez test ettim düzgün çalışıyordu umarım işini görür
 
Python:
product_list = []

class Product:
    def __init__(self, name, price, color):
        self.name = name
        self.price = price
        self.color = color

    def __str__(self) -> str:
        return f"Ürün adı : {self.name}\nBirim fiyatı : {self.price}\nRenk : {self.color}\n"


class Request:
    def __init__(self):
        pass

    def add(self):

        name = input("Ürün adı giriniz : ")
        if name == "":
            name = "Belirtilmedi"
        price = "Belirtilmedi"
        color = "Belirtilmedi"
       
        inp = input("Hangi özelliği eklemek istersiniz :\nfiyat | renk\nEklemek istemiyorsanız 0\n>>> ")

        while inp != "0":
            if inp == "fiyat":
                price = input("Ürün Fiyatı giriniz : ")

            elif inp == "renk":
                color = input("Ürün Rengi giriniz : ")

            if price != "Belirtilmedi" and color != "Belirtilmedi":
                break
           
            if inp != "fiyat" and inp != "renk":
                print("Hatalı Değer Girildi")

            inp = input("Hangi özelliği eklemek istersiniz :\nfiyat | renk\nEklemek istemiyorsanız 0\n>>> ")

        product_list.append(Product(name, price, color))


request = Request()
message = """
Programdan çıkmak için -> 0
Ürün eklemek için      -> 1
"""
inp = input(message)

while inp != "0":
    if (inp == "1"):
        request.add()
    else:
        print("Hatalı değer girildi tekrar deneyiniz.")

    inp = input(message)

print("\n\n\nÜrünler Listesi : ")
print("*" * 10, "\n")
for product in product_list:
    print(product)

Kodu 1 kez test ettim düzgün çalışıyordu umarım işini görür


Bu programı kullanıcıya sınırsız özellik girme izni verecek şekilde yapabilir miyiz? hani 2 seçenek sunmuşsunuz ya. Onu da biz belirliyoruz. Bunu kullanıcı istediği şekilde belirleyecek şekilde olur mu? Kullanıcı her şeyi kendi belirleyecek ve program en sonunda kullanıcının belirlediği şeyleri yazacak.
 
Kullanıcı her şeyi kendi belirleyecek ve program en sonunda kullanıcının belirlediği şeyleri yazacak.
pythonda yeniyim ama o tarz bir şeyi nasıl bir değişkende tutabilirsiniz ki ? girilen özelliğe göre ihtiyaç duyulan variable sayısı değişmez mi
 
Bu programı kullanıcıya sınırsız özellik girme izni verecek şekilde yapabilir miyiz? hani 2 seçenek sunmuşsunuz ya. Onu da biz belirliyoruz. Bunu kullanıcı istediği şekilde belirleyecek şekilde olur mu? Kullanıcı her şeyi kendi belirleyecek ve program en sonunda kullanıcının belirlediği şeyleri yazacak.
Dictionary sistemi ile Key Value mantığıyla yapılabilir. Ama ona uğraşmam.
 
Dictionary sistemi ile Key Value mantığıyla yapılabilir. Ama ona uğraşmam.
zor mu acaba sizce yapılması uzun sürmez ise araştırıp deneyeceğim
Mesajlar otomatik olarak birleştirildi:

pythonda yeniyim ama o tarz bir şeyi nasıl bir değişkende tutabilirsiniz ki ? girilen özelliğe göre ihtiyaç duyulan variable sayısı değişmez mi
ben de yeniyim o yüzden bilmiyorum ama olabilir gibi geldi döngülerle falan
 
zor mu acaba sizce yapılması uzun sürmez ise araştırıp deneyeceğim
Mesajlar otomatik olarak birleştirildi:


ben de yeniyim o yüzden bilmiyorum ama olabilir gibi geldi döngülerle falan
Döngüyle yapılabilir olsa bile bir sürü döngü iç içe olacak.


1'se run et 0'sa çık
1'se özellik ekle değilse çık (burada özellik mi eklemeyecek programı mı shut edecek)

başka bir döngüyle başka bir ürüne geçecek ama her ürün için farklı değişken kullanamk isterse kullanıcı ?

Bence imkansız gözüküyor.
 
Yeni mesajlar Yeni Konu Aç  

   

SON KONULAR

Forum istatistikleri

Konular
1,172,567
Mesajlar
10,568,598
Üyeler
186,210
Son üye
niroieth
Geri
Top