Selam sosyal üyeleri, direkt konuya giriş yapmak istiyorum. Python'da kod yazarken kullanıcıdan bir veri aldığımızda ve bunu bir değişkene atadığımızda, atanılan değişkenin spesifik bir cevaba bağlı olmasını yapabiliyorum ancak bu spesifik cevapta çok fazla "or" operatörünü kullanmak zorunda kalıyorum. Çünkü kullanıcı bir boşluk bıraktığında, gireceği verideki bir harfi büyük, bir harfi küçük yazınca gibi gibi yani kullanıcı değişik bir cevap yazarsa kodda normalde başka koşulun çalışması gerekirken başka bir koşul çalışıyor. Biraz karışık olmuş olabilir, bir kod örneği yazayım.
Python:
siparis = str(input("Siparişiniz nedir, küçük boy, orta boy, büyük boy?"))
if siparis == "küçük" or "küçük boy" or "Küçük Boy" or "Küçük boy":
print ("Sipariş tutarı, 25 TL'dir.)
elif siparis == "orta" or "orta boy" or "Orta Boy" or "Orta boy":
print ("Sipariş tutarı, 30 TL'dir.")
else:
print ("Sipariş tutarı, 35 TL'dir.")
Mesela bu kodda kullanıcının siparişinde en ufak bir harf değişiminde koşulun değişmemesi için sürekli "or" kullandım. Bunun yerine daha pratik yol var mıdır? Cevaplayan herkese teşekkür ediyorum.
Selam sosyal üyeleri, direkt konuya giriş yapmak istiyorum. Python'da kod yazarken kullanıcıdan bir veri aldığımızda ve bunu bir değişkene atadığımızda, atanılan değişkenin spesifik bir cevaba bağlı olmasını yapabiliyorum ancak bu spesifik cevapta çok fazla "or" operatörünü kullanmak zorunda kalıyorum. Çünkü kullanıcı bir boşluk bıraktığında, gireceği verideki bir harfi büyük, bir harfi küçük yazınca gibi gibi yani kullanıcı değişik bir cevap yazarsa kodda normalde başka koşulun çalışması gerekirken başka bir koşul çalışıyor. Biraz karışık olmuş olabilir, bir kod örneği yazayım.
Python:
siparis = str(input("Siparişiniz nedir, küçük boy, orta boy, büyük boy?"))
if siparis == "küçük" or "küçük boy" or "Küçük Boy" or "Küçük boy":
print ("Sipariş tutarı, 25 TL'dir.)
elif siparis == "orta" or "orta boy" or "Orta Boy" or "Orta boy":
print ("Sipariş tutarı, 30 TL'dir.")
else:
print ("Sipariş tutarı, 35 TL'dir.")
Mesela bu kodda kullanıcının siparişinde en ufak bir harf değişiminde koşulun değişmemesi için sürekli "or" kullandım. Bunun yerine daha pratik yol var mıdır? Cevaplayan herkese teşekkür ediyorum.
siparis = input("Siparişiniz nedir, küçük boy, orta boy, büyük boy? ").lower()
if "küçük" in siparis:
print("Sipariş tutarı, 25 TL'dir.")
elif "orta" in siparis:
print("Sipariş tutarı, 30 TL'dir.")
else:
print("Sipariş tutarı, 35 TL'dir.")
Elbette yapabiliriz hocam kullanıcıdan aldıgımız inputları lower fonksiyonu icine atıyoruz ve hemen ardından bunları sadece anahtar kelimelere göre kosullara sokuyoruz. Bu sayede daha sade bir kod elde etmis oluyoruz.
Ayrıca replace methodunu kullanarak Türkçe karakterleri İngilizce karakterlere döndürebilirsiniz. Örnek içinde "ç "olan stringde "ç" yerine "c" koyulsun gibi.
OOP icin ayri bi kaynaktan izlemeniz daha sağlıklı olur simdiden paper okumaya alisin derim.
OOP ile su sekilde bir şey yapabiliriz ama düzeyiniz için komplike gelebilir elimden geldiğince açıklamaya calistim.
Python:
class Order:
def __init__(self, size):
# sipariş boyutunu küçük harfe çevirerek saklayalım
self.size = size.lower()
def calculate_price(self):
# sipariş boyutuna göre fiyatı hesaplayalım
if "small" in self.size:
return 25
elif "medium" in self.size:
return 30
else:
return 35
class OrderSystem:
def __init__(self):
# siparişleri depolamak için boş bir list yaratalım
self.orders = []
def take_order(self):
# Kullanıcıdan sipariş alalım listeye ekleyelim
order_type = input("Siparişiniz nedir, küçük boy, orta boy, büyük boy? ")
self.orders.append(Order(order_type))
def display_total_price(self):
# tüm siparişlerin toplam fiyatını hesaplayalım ve print edelim
total_price = sum(order.calculate_price() for order in self.orders)
print(f"Toplam sipariş tutarı {total_price} TL.")
order_system = OrderSystem()
while True:
order_system.take_order()
more_orders = input("Başka sipariş eklemek ister misiniz? (evet/hayır) ").lower()
if more_orders != "evet":
break
order_system.display_total_price()
Selam sosyal üyeleri, direkt konuya giriş yapmak istiyorum. Python'da kod yazarken kullanıcıdan bir veri aldığımızda ve bunu bir değişkene atadığımızda, atanılan değişkenin spesifik bir cevaba bağlı olmasını yapabiliyorum ancak bu spesifik cevapta çok fazla "or" operatörünü kullanmak zorunda kalıyorum. Çünkü kullanıcı bir boşluk bıraktığında, gireceği verideki bir harfi büyük, bir harfi küçük yazınca gibi gibi yani kullanıcı değişik bir cevap yazarsa kodda normalde başka koşulun çalışması gerekirken başka bir koşul çalışıyor. Biraz karışık olmuş olabilir, bir kod örneği yazayım.
Python:
siparis = str(input("Siparişiniz nedir, küçük boy, orta boy, büyük boy?"))
if siparis == "küçük" or "küçük boy" or "Küçük Boy" or "Küçük boy":
print ("Sipariş tutarı, 25 TL'dir.)
elif siparis == "orta" or "orta boy" or "Orta Boy" or "Orta boy":
print ("Sipariş tutarı, 30 TL'dir.")
else:
print ("Sipariş tutarı, 35 TL'dir.")
Mesela bu kodda kullanıcının siparişinde en ufak bir harf değişiminde koşulun değişmemesi için sürekli "or" kullandım. Bunun yerine daha pratik yol var mıdır? Cevaplayan herkese teşekkür ediyorum.