• 04-08-2019, 01:51:02
    #1
    İyi geceler arkadaşlar, python'a biraz merak saldım ve online videolarla öğrenmeye çalışıyorum. Kodlarla anlatacak olursam eğer:
    Alıntı
    liste = [1,2,3,4,5,6,7,8,9,-500,345,323,456]
    mini = 10000
    for each in liste:
    if(each < mini):
    mini = each
    else:
    continue
    Video'da verilen listedeki en küçük değeri bulmaya çalışıyoruz. Kodların yapısı gereği mantığıma uyuyor. Ama aklıma takılan şey şu: biz mini değerini 10000 olarak belirledik ve for ile listenin elemanlarını kontrol ettirdik. if ile de koşul belirledik. Bunlar güzel. Ama listenin içerisindeki tüm değerler "mini=10000" değerinden küçük. Ama kodu çalıştırdığımda gerçekten verdiği değer -500. Yani each< mini şartlanmasına baktığımızda 1'de,345'de 323'de hepsi mini değişkenin değerinden küçük. Nasıl -500'ü veriyor.

    Sorum saçma olabilir, maruz görün. Başlangıc düzeyindeyim.
  • 04-08-2019, 01:57:32
    #2
    değerler arasında en küçüğü o olduğu için diye düşünüyorum
  • 04-08-2019, 02:00:25
    #3
    Nokvi adlı üyeden alıntı: mesajı görüntüle
    değerler arasında en küçüğü o olduğu için diye düşünüyorum
    Eğer mini değişkenine değer olarak "0" deseydik dediğinde haklısın. Tüm değerler "0" dan büyük ama -500 küçük. Benim takıldığım nokta mini değeri 10000 iken listedeki değerlerle kıyaslıyor ve bir şekilde -500'ü veriyor.
  • 04-08-2019, 02:07:34
    #4
    Gego adlı üyeden alıntı: mesajı görüntüle
    İyi geceler arkadaşlar, python'a biraz merak saldım ve online videolarla öğrenmeye çalışıyorum. Kodlarla anlatacak olursam eğer:


    Video'da verilen listedeki en küçük değeri bulmaya çalışıyoruz. Kodların yapısı gereği mantığıma uyuyor. Ama aklıma takılan şey şu: biz mini değerini 10000 olarak belirledik ve for ile listenin elemanlarını kontrol ettirdik. if ile de koşul belirledik. Bunlar güzel. Ama listenin içerisindeki tüm değerler "mini=10000" değerinden küçük. Ama kodu çalıştırdığımda gerçekten verdiği değer -500. Yani each< mini şartlanmasına baktığımızda 1'de,345'de 323'de hepsi mini değişkenin değerinden küçük. Nasıl -500'ü veriyor.

    Sorum saçma olabilir, maruz görün. Başlangıc düzeyindeyim.
    galiba sorun bu kısımda, döngü ilk dafa çalıştığında başta tanılmadığınız 10000 değeri 1 e düşüyor listedeki diğer değerleri 10000 ile değil 1 ile karşılaştırıyor diğer sayılardan sadece -500 1 de küçük oldugu için sadece -500 değerini alıyorsunuz
    mini = each
  • 04-08-2019, 02:09:09
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    liste = [1,2,3,4,5,6,7,8,9,-500,345,323,456]
    mini = 10000
    for each in liste: // listedeki tüm sayıları each olarak döndür.
    if(each < mini): // şu anda gelen each değeri mini değerinden küçükse
    mini = each //miniye eachdeki değeri ata
    else: //değilse
    continue //devam et
    yani siz mini'yi 10000 veriyorsunuz ama karşılaştırma yaptıkça miniye yeni değer atamışsınız.
    Olan şey şu;

    1. Döngü
    mini: 10000
    each: 1
    mini yeni değer: 1

    2. Döngü
    mini: 1
    each: 2
    2<1 false olduğundan mini değişmeden devam continue

    3. Döngü
    mini: 1
    each: 3
    3<1 false olduğundan mini değişmeden devam continue

    4. Döngü
    mini: 1
    each: 4
    4<1 false olduğundan mini değişmeden devam continue

    5. Döngü
    mini: 1
    each: 5
    5<1 false olduğundan mini değişmeden devam continue

    6. Döngü
    mini: 1
    each: 6
    6<1 false olduğundan mini değişmeden devam continue

    7. Döngü
    mini: 1
    each: 7
    7<1 false olduğundan mini değişmeden devam continue

    8. Döngü
    mini: 1
    each: 8
    8<1 false olduğundan mini değişmeden devam continue

    9. Döngü
    mini: 1
    each: 9
    9<1 false olduğundan mini değişmeden devam continue

    10. Döngü
    mini: 1
    each: -500
    -500<1 true olduğundan; mini = each
    mini yeni değer: -500

    11. Döngü
    mini: -500
    each: 345
    345<-500 false olduğundan mini değişmeden devam continue

    12. Döngü
    mini: -500
    each: 323
    323<-500 false olduğundan mini değişmeden devam continue

    13. Döngü
    mini: -500
    each: 456
    456<-500 false olduğundan mini değişmeden devam continue
  • 04-08-2019, 02:17:12
    #6
    RooTsGhosT adlı üyeden alıntı: mesajı görüntüle
    galiba sorun bu kısımda, döngü ilk dafa çalıştığında başta tanılmadığınız 10000 değeri 1 e düşüyor listedeki diğer değerleri 10000 ile değil 1 ile karşılaştırıyor diğer sayılardan sadece -500 1 de küçük oldugu için sadece -500 değerini alıyorsunuz
    mini = each
    Evet şimdi anladım mantığını... Çok teşekkürler.

    codev adlı üyeden alıntı: mesajı görüntüle
    liste = [1,2,3,4,5,6,7,8,9,-500,345,323,456]
    mini = 10000
    for each in liste: // listedeki tüm sayıları each olarak döndür.
    if(each < mini): // şu anda gelen each değeri mini değerinden küçükse
    mini = each //miniye eachdeki değeri ata
    else: //değilse
    continue //devam et
    yani siz mini'yi 10000 veriyorsunuz ama karşılaştırma yaptıkça miniye yeni değer atamışsınız.
    Olan şey şu;

    1. Döngü
    mini: 10000
    each: 1
    mini yeni değer: 1

    2. Döngü
    mini: 1
    each: 2
    2<1 false olduğundan mini değişmeden devam continue

    3. Döngü
    mini: 1
    each: 3
    3<1 false olduğundan mini değişmeden devam continue

    4. Döngü
    mini: 1
    each: 4
    4<1 false olduğundan mini değişmeden devam continue

    5. Döngü
    mini: 1
    each: 5
    5<1 false olduğundan mini değişmeden devam continue

    6. Döngü
    mini: 1
    each: 6
    6<1 false olduğundan mini değişmeden devam continue

    7. Döngü
    mini: 1
    each: 7
    7<1 false olduğundan mini değişmeden devam continue

    8. Döngü
    mini: 1
    each: 8
    8<1 false olduğundan mini değişmeden devam continue

    9. Döngü
    mini: 1
    each: 9
    9<1 false olduğundan mini değişmeden devam continue

    10. Döngü
    mini: 1
    each: -500
    -500<1 true olduğundan; mini = each
    mini yeni değer: -500

    11. Döngü
    mini: -500
    each: 345
    345<-500 false olduğundan mini değişmeden devam continue

    12. Döngü
    mini: -500
    each: 323
    323<-500 false olduğundan mini değişmeden devam continue

    13. Döngü
    mini: -500
    each: 456
    456<-500 false olduğundan mini değişmeden devam continue
    @codev; dostum adamsın. Böyle detaylı anlattığın için çok teşekkür ederim... Videolu eğitimlerde ne yazık ki cevap bulmak zor. Dediğim gibi biraz saçma bir soruydu ama 2 gündür mantığını çözemiyordum. Sağolasın.
  • 04-08-2019, 02:33:31
    #7
    Gego adlı üyeden alıntı: mesajı görüntüle
    Evet şimdi anladım mantığını... Çok teşekkürler.
    @codev; dostum adamsın. Böyle detaylı anlattığın için çok teşekkür ederim... Videolu eğitimlerde ne yazık ki cevap bulmak zor. Dediğim gibi biraz saçma bir soruydu ama 2 gündür mantığını çözemiyordum. Sağolasın.
    Önemli değil, ne demek. Takıldığınız yerlerde mutlaka forumda sorun. Eskiden bu imkanlar yoktu, o zamanlarda öğrendiğimiz için zorluğunu biliyorum. Bu gerekli bir şey. Sabır yeteneğini geliştirir ki ilerleyen süreçte bolca ihtiyacınız olacak bir yetenektir. Yine de içinden çıkamadığınız noktada basit şeylerle vakit kaybetmeyin, sorun mutlaka bilen birileri cevaplayacaktır. Basit sordunuz diye yargılanmazsınız. Atasözümüz bile var, bilmemek ayıp değil öğrenmemek ayıp. Siz sorguluyorsunuz, öğreniyorsunuz, çabalıyorsunuz bunda ayıplanacak, kusura bakılacak bir şey yok.

    Sorununuz dil tabanlı değil. Algoritmaya hakim değilsiniz. O yeteneğinize yüklenin, illa ki kod yazmaya şu aşamada kendinizi zorlamayın. Üniversitelerin algoritma sınav sorularına vs. bakın, algoritma nedir, mevcut algoritma problemleri ve çözümlerini okuyun, kafanızda oturtmaya, kendiniz çözmeye çalışın. Ben python bilmiyorum. Sahip olduğum algoritma bilgisi ile size cevap verdim. Diller zaten günümüzde birbirine çok yakın çünkü hepsi yüksek seviye yani insanların anlayabileceği seviyede diller. Farklılıkları sadece syntax kurallarında yatıyor. if, loop, each, for, while, do-while, switch, case, break, continue, exit, print, echo, printf çoğu dillerde birbirine çok yakın ve bunlar kullanılıyor. Siz mantık kurabilir, istenen algoritmayı oluşturursanız kafanızda zaten kodlarla bir şeyler yapmak zor olmayacaktır, bir şeylerin mantığını anlamak daha kolay olacaktır.

    Öbür türlü kodu yazıp, mantığını düşünmek biraz zorlayıcı bir öğrenme şekli ve erken pes ettirebilir. Önce kod, sonra algoritma (mantık) değil. Önce algoritma (mantık), sonra kod.
    Yeni sorularınız olursa çekinmeden sorun, beni de etiketleyebilirsiniz soruya, müsait anlarımda cevaplarım.
    Başarılar dilerim, kolay gelsin.
  • 04-08-2019, 02:39:13
    #8
    codev adlı üyeden alıntı: mesajı görüntüle
    Önemli değil, ne demek. Takıldığınız yerlerde mutlaka forumda sorun. Eskiden bu imkanlar yoktu, o zamanlarda öğrendiğimiz için zorluğunu biliyorum. Bu gerekli bir şey. Sabır yeteneğini geliştirir ki ilerleyen süreçte bolca ihtiyacınız olacak bir yetenektir. Yine de içinden çıkamadığınız noktada basit şeylerle vakit kaybetmeyin, sorun mutlaka bilen birileri cevaplayacaktır. Basit sordunuz diye yargılanmazsınız. Atasözümüz bile var, bilmemek ayıp değil öğrenmemek ayıp. Siz sorguluyorsunuz, öğreniyorsunuz, çabalıyorsunuz bunda ayıplanacak, kusura bakılacak bir şey yok.

    Sorununuz dil tabanlı değil. Algoritmaya hakim değilsiniz. O yeteneğinize yüklenin, illa ki kod yazmaya şu aşamada kendinizi zorlamayın. Üniversitelerin algoritma sınav sorularına vs. bakın, algoritma nedir, mevcut algoritma problemleri ve çözümlerini okuyun, kafanızda oturtmaya, kendiniz çözmeye çalışın. Ben python bilmiyorum. Sahip olduğum algoritma bilgisi ile size cevap verdim. Diller zaten günümüzde birbirine çok yakın çünkü hepsi yüksek seviye yani insanların anlayabileceği seviyede diller. Farklılıkları sadece syntax kurallarında yatıyor. if, loop, each, for, while, do-while, switch, case, break, continue, exit, print, echo, printf çoğu dillerde birbirine çok yakın ve bunlar kullanılıyor. Siz mantık kurabilir, istenen algoritmayı oluşturursanız kafanızda zaten kodlarla bir şeyler yapmak zor olmayacaktır, bir şeylerin mantığını anlamak daha kolay olacaktır.

    Öbür türlü kodu yazıp, mantığını düşünmek biraz zorlayıcı bir öğrenme şekli ve erken pes ettirebilir. Önce kod, sonra algoritma (mantık) değil. Önce algoritma (mantık), sonra kod.
    Yeni sorularınız olursa çekinmeden sorun, beni de etiketleyebilirsiniz soruya, müsait anlarımda cevaplarım.
    Başarılar dilerim, kolay gelsin.
    O kadar doğru söylüyorsun ki hocam zaten verdiğiniz detaylı açıklamayla bu eksikliği hissettim. Adam birşeyler yapıyor kafasında algoritma var. Kesinlikle bir problemin çözümünü nasıl gerçekleştireceğini akılda kurgulamam gerekiyor. Gerek açıklayıcı cevabın gerekse böyle detaylı önerilerin için çok teşekkür ederim.
  • 11-08-2019, 13:59:10
    #9
    Gego adlı üyeden alıntı: mesajı görüntüle
    İyi geceler arkadaşlar, python'a biraz merak saldım ve online videolarla öğrenmeye çalışıyorum. Kodlarla anlatacak olursam eğer:


    Video'da verilen listedeki en küçük değeri bulmaya çalışıyoruz. Kodların yapısı gereği mantığıma uyuyor. Ama aklıma takılan şey şu: biz mini değerini 10000 olarak belirledik ve for ile listenin elemanlarını kontrol ettirdik. if ile de koşul belirledik. Bunlar güzel. Ama listenin içerisindeki tüm değerler "mini=10000" değerinden küçük. Ama kodu çalıştırdığımda gerçekten verdiği değer -500. Yani each< mini şartlanmasına baktığımızda 1'de,345'de 323'de hepsi mini değişkenin değerinden küçük. Nasıl -500'ü veriyor.

    Sorum saçma olabilir, maruz görün. Başlangıc düzeyindeyim.
    burada listedeki değerlerin hepsi 10000'in üstünde olsaydı algoritma direk 10000 döndürecekti. bence en sağlıklısı mini'ye dizinin ilk elemanını vermek. örnek vermek gerekirse;


    liste=[6,9,2,1,6,7,-3,200]
    min=liste[0]
    for i in liste:
    if i<min:
    min=i

    print(min)

    daha sağlıklı olacağını düşünüyorum.