Python maximum ve minimum değerlerini nasıl yazdırabilirim?

SuppleWaif7

Hectopat
Katılım
9 Şubat 2020
Mesajlar
852
Çözümler
4
Merhaba, elimde bir array dolusu float veri var. Bu veriler ile bir kar maksimizasyonu gerçekleştireceğim. Örneğin Array'ın ortalarına doğru en düşük değerde alacak ve o en düşük değerden sonra en yüksek değeri bulduğunda satacak. Kar maksimizasyonu işini tamamladım doğru bir şekilde en yüksek değer ile en düşük değer arasındaki farkı hesaplıyor ama bir yandan da kullanıcıya "bu değerde al " ve "bu değerde sat " diyerek mesaj gösterecek. Bu yüzden ben de kar maximixasyonu hesaplanırken, Max vemin değerlerini aldığı için direkt buradan çekmeyi düşündüm ancak maximizasyon sonucu doğru olmasına rağmen min ve max çektiğim değerler yanlış gözüküyor. Örneğin bu kod:
Kod:
max=prices[j-2]
yapar isem doğru sonuca ulaşıyorum.Burada yaptığım hata nedir?


Python:
def max(prices,array):
 start=0

 for i in range(array):
 profit=0
 max=0
 min=0
 for j in range(i+1,array):
 profit =prices[j]-prices[i]

 if profit > start:
 max=prices[j]
 start=max

 return (start)
 
Son düzenleyen: Moderatör:
Tam olarak ne dediğiniz anlamasam da bir şey denedim. Umarım aradığınız cevap budur.

Python:
buyouts = [16.3, 22.6, 30.58, 16.2]  # Alış fiyatları listesi
offers  = [55.4, 69.58, 22.3, 99.9]  # Satış fiyatları listesi

def profit_max(buys, offs):
    max_profit = 0   # Maksimum kârın tutulacağı değişken
    min_buy = 0      # Minimum alış fiyatının tutulacağı değişken
    max_offer = 0    # Minimum satış fiyatının tutulacağı değişken

    temp_profit = 0  # Döngüdeki tüm kâr hesaplarının geçici olarak tutulacağı değişken

    for buyout in buys:                    # Tüm alış fiyatlarının içinden geçiyoruz
        for offer in offers:               # Her alış fiyatı başına tüm satış fiyatlarının içinden geçiyoruz
            temp_profit = offer - buyout   # geçici kâr = satış - alış
            if temp_profit > max_profit:   # eğer geçici kâr bir önceki max kârdan küçükse
                max_profit = temp_profit   # yeni max kârımız son hesaplanan değer oluyor
                min_buy = buyout           # ona göre min alışı
                max_offer = offer          # ve max satışı da güncelleyelim

    # Tüm alış ve satış değerlerinin üstünden geçildikten sonra
    # minimum alış fiyatımız, maksimum satış fiyatımız
    # ve dolayısıyla maksimum kârımız hesaplanmış olacak.
    # Bu değerleri fonksiyon returnlesin.
    return min_buy, max_offer, max_profit


buyout_price, selling_price, profit = profit_max(buyouts, offers)

print(f"Bu fiyata al: \t: {buyout_price}₺")
print(f"Bu fiyata sat: \t: {selling_price}₺")
print(f"Kârın: \t\t: {profit}₺")
 
Dostum listeyi .sort() ile düzenle böylece ilk değer en düşük değer son değer ise en yüksek değer olucaktır:

örnek:

Python:
liste = [3, 4, 1, 15, 0, 2]

liste.sort()

min = liste[0]
max = liste[-1]
 

Geri
Yukarı