29 HAZİRAN 2011, ÇARŞAMBA

Faktöriyel Fonksiyon Tanımlama

Son birkaç videolar, biz burada güzel bir program yazdı Bu girdi çeşit kullanıcıya sorar, ve daha sonra bu sayının faktoriyelini hesaplar, ve sonra yazdırır. Ve bu güzel. Ama bir dünya nereye düşünebiliriz Eğer faktöryel birden fazla yerde hesaplamak isteyeyim, veya birden fazla farklı program, ya da aynı programda, hesaplamak istediğiniz faktöryel birden çok kez. Ve üzerinde bu kodu yazmak zorunda istemiyorum ve tekrar her zaman bir faktöryel hesaplamak istiyorum. Peki ben bu video yapacağım faktoriyelini hesaplayan bir fonksiyon tanımlamak olduğunu. Ve sonra biz bu

fonksiyonu her zaman kullanabilirsiniz Biz o çarpınımını hesaplamak istiyoruz. Yani aslında, o işlev yapacak ne tek bir yerde burada bu kodun tüm koymak için gidiyor. Ve sonra başka bir program ben çarpınımı

nı hesaplamak istiyorsanız, ben sadece bu kodu çağırabilirsiniz. Onu yeniden yazmak zorunda değilsiniz. Yani bana sadece ben neden bahsettiğimi göstereyim. Yani bir işlevi tanımlamak için gidiyorum.

“Python bir işlevi tanımlama...”
Khan Academy

Ve Python-- anahtar kelime bu yüzden özel bir kelime olduğunu özel bir şey olduğunu söyler tercüman Python anahtar kelimeyi happen-- hakkında bir işlev tanımlamak için def. Yani bir işlevi tanımlamak için gidiyorum. Ben faktöryel fonksiyonu aramak için gidiyorum. Ve bu şey isim için iyi bir fikir olma eğilimindedir aslında ne göstergesidir. Bazen başlayan programcılar var x425 gibi şeyler adlandırma bir alışkanlık. Daha sonra irade geliyor ve biri

Faktöriyel Fonksiyon Tanımlama Resim 1 Faktöriyel Fonksiyon Tanımlama Resim 2 Faktöriyel Fonksiyon Tanımlama Resim 3 Faktöriyel Fonksiyon Tanımlama Resim 4

bu değişken ya da fonksiyonun ne hiçbir ipucu var tüm hakkında. Yani kesinlikle bir şekilde bunun adı istiyorum bu yüzden bunu yapmak gerekiyordu ne bir fikir verir. Benim işlevi faktöryel denir. Ve kullanıcı, onlar faktöryel çağırdığınızda, Onlar ne sayıda çarpınımını söylemek gerekir Ben faktoriyelini almaya gidiyorum. Yani onlar o numara denilen bir argüman geçmek gidiyoruz. Ve bu sözler biraz kafa karıştırıcı bakarsanız, Ben bir saniye içinde detaylı bir şekilde anlatacağım. Ama umarım daha bunu görmek sadece-- olabili

r daha tanıdık bu fikirleri alırsınız. Ve böylece onların sayısını geçmek gidiyoruz. Ve ben sadece geri dönmek zorunda gidiyorum çağıran programa. Ve ben aslında bile söylememelidir Kullanıcı bir numara geçmek gidiyor. Çağıran program bir numara geçmek gidiyor. Ve ben bu sayının faktoriyelini geri dönmek gerekiyor çağıran programa. Bu yüzden bana aslında, bir yorum olarak bu yazayım. Yani argüman faktoriyelini döndürür argüman sayısının. Ve bazen kelime parametresini duyarsınız. Bazen kelime argüman duyarsınız. Eğer bir fonksiyonun bir tanım yapıyoruz zaman, Bu daha resmen parametre denir. Sayı faktöryel işlevine parametrelerden biridir. Başkası bu-- geçer o gerçek sayı bu yüzden birisi 3 faktöryel aramaları diyelim burada-- daha sonra resmen 3 argüman olacağını söyledi. Yani argüman sayısının faktoriyelini döndürür. Ve bu doğru burada argüman numarasıdır. Yani tam anlamıyla anlamına gelmez yani-- Bu sadece keyfi kelime sayısıdır. Ben tam anlamıyla doğru buraya bu sayı bahsediyorum. Belki argüman numarasını söylerim. Belki de açıklığa kavuşturmak için tırnak içinde koyacağım bu argümandır. Ben herhangi bir genel sayı bahsetmiyorum. Ve o da tanımlayalım. Yani biz aslında aynı kodu kullanmak için gidiyoruz. Aslında, bana sadece kopyala ve yapıştır izin Buraya ne aldı bir sürü. Yani o kesip gidiyorum. Ve ben burada bitti repaste için gidiyorum. Ama benim çentikler konusunda dikkatli olmak zorunda, Çentikler kadar Python çünkü Neyin parçası bilir. Bir şeyleri yorumlamak nasıl bilir. Yani bu fonksiyon tanımının bir parçası olduğunu her girintili için vardır. Ve biz dört spaces-- bir, iki, üç, dört bunu yapmak. Ve bu başka dört, iki, üç, dört. Sonra, bu döngü, bir, iki, üç, dört için bir parçasıdır. Ve biz şimdiye kadar ne düşüneyim. Bu yüzden bir numara geçirilecek gidiyor. Bu değişken ürün 1'e eşit tanımlar. Ve biz değişkenlerin kapsam hakkında daha fazla konuşacağız. Ama bu değişken sadece kullanılabilir olacak Bu faktör tanımı içinde, Birazdan burada tanımlanan ilk kez içeride olduğundan Burada bu hakkın. Bu yüzden gelecekte değişkenlerin kapsam belirleme daha fazla gidersiniz. Ve daha sonra aynı mantık biz i için, önce yaptım number-- aralığında şimdi numarayı alamayacaksın Giriş işlevini kullanarak. Bu işleve geçirilen ediliyor. Ardından ürün süreleri ürüne eşittir ben artı 1, aynı mantık Daha önce olduğu gibi. Eğer loop-- için bu geçmesi kadar sonra Eğer yoluyla BT gittikten sonra aslında konum sayı zamanlarda gidecek, Ürün içinde sayının faktöriyel sahip olacaktır. Bunun yerine doğrudan çıktısı, biz ne istiyoruz dönüş. Biz çağıran programa geri gidiyoruz. Ve sonraki video, ben bu diyagramına gidiyorum biraz temizleyici dışarı bu gibi görünüyor eğer Biraz seninle kafa karıştırıcı. Ben ürünü iade edeceğim. Daha önce olduğu gibi Yani aynı kod esasen var. Ama biz bir işlev içine paketlenmiş ettik. Biz, bunu alır, bir işlev tanımladığınız Bir numara denilen bir parametresi vardır. Eğer 3 bir faktoryalini isterseniz factorial-- geçerseniz, Eğer 3 faktoriyelini yazmak istiyorum. Ve 3 argüman, bu şey olurdu değişken sayıda yerine konduğunu, ya da bir şey bu sayı bahsetmektedir. Ürünün 1'e eşit olduğunu tanımlar. Ve sonra, numara kez gidin. I number-- aralığında ve ettik Yani önceki video-- her zaman bu mantığı açıkladı Eğer 1 ile başlar. Ve sonra 1 kez 1 1 olacak yapmak. Ve sonra ürün 1 olacak. Ama sonra ben 1 olacak. Ben 0 olarak başlar. Yani 1 kez 0 olacak artı 1 size 1 verir. O zaman 1'dir. Ve böylece 1 kez 2 1 kez 1 artı 1, olacak. Ve böylece o, 2 olacak. Ve bu şekilde artan devam edeceğiz. Ve biz son video detaylı açıklamak. Ve sonunda, o ürünü iade edecek. Aynı davranışı tam olmasını istiyorsanız Yani daha önce olduğu gibi, ama şimdi biz bu fonksiyonu kullanıyoruz, ne yapabiliriz Bu-- biz hala girişi olacak, diyebiliriz. Yani bu bizim işlevi tanımıdır. Ama sonra, bizim ana program boyunca, Bizim işlev tanımlanmış ettik. Ve şimdi, biz sadece, kullanıcıdan, bak, diyebilirim faktoriyelini almak için negatif olmayan bir tamsayı olsun. Ve en o into-- edelim çağrısını etsinler Değişken kullanıcı girişi denilen. Ve sonra ne yapacağım ben ise kullanıcı girişi faktöryel adı verilen başka bir değişken tanımlamak için gidiyor. Ve şimdi, bu ilginç olacak. Burada bu fonksiyonu açmak için gidiyorum. Yani bu faktöryel eşit olacak ne olursa olsun kullanıcı girişi vardı, bu yüzden kullanıcı girişi faktöryel, Sağ buraya bu değişkenin faktöryel, kullanıcı girişi faktöryel. Yani şimdi, kullanıcı girişi faktöryel storing-- olacak yoksa biz demeliyim sanırım, o olacak Gerçek cevap işaret olabilir. Ve şimdi, biz sadece dışarı yazdırmak zorunda. Yani şimdi yazdırabilirsiniz. Ve şimdi biz kullanıcı girişi faktöryel yazdırabilirsiniz. Böylece cümle benziyor. Ama bunlar sadece değişken isimleridir. Ve ben gerçekten bu yüzden bu şekilde adlandırma ediyorum Bu değişkenlerin içinde ne biliyor ya da bu değişkenler gerçekten işaret ne. Yani kullanıcı girişi faktöryel. Şimdi hakikat anı hep programı tasarruf ve aslında çalıştırmak için çalışıyorum. Yani şimdi çalıştırmak ve ne olacağını görmek için çalışalım. Burada ne görelim. Yani en azından bir şey şimdiye kadar kırdı. Yani bir kez daha, bu yüzden açık olmak istiyorum. Program burada başladı. Ama burada, yaptığımız tüm bu tanımlamaktır. Yani aslında öyle değil telling-- değil kullanıcı ile herhangi bir etkileşim yaratıyor. Bu aslında sadece henüz bir şey işleme değil. Yani sadece bu işlevi tanımlar. Sonra burada iner ve diyor, Tamam, bak kullanıcıdan bazı giriş almak. Ve biz burada ne yapıyoruz. Ve bazı sayı burada girişinden sonra, o aslında arayacak go-- gidiyor biz koymak bu sayı ile bu işlevi kullanın. Biz koymak sayı kullanıcı girişi koymak gidecek. Ve sonra kullanıcı girişi ile çarpınımını arayacak bir argüman olarak. Yani sayı 3 ile deneyelim. Ve bu işe yaramadı. Işe yaramadı neden Oh, ve bakın, Bu önceki programda arta kalan çünkü, hangi Aslında şimdi hiçbir mantıklı. Bu yüzden bana bu kurtulmak edelim. Bu ilk denemede bu nadiren iyi bir ders var mükemmel bir şey çalışır. Tekrar denememe izin ver. Ben bile vermedi, sadece saçma oldu anlayacaktır orada aşağı oldu. Yani beni tekrar deneyelim. Yani deneyeyim. Yani 3 tekrar. Ve bu bana iyi bir cevap verdi. Bana 3 çarpınımını verdi. Şimdi benim Python yorumlayıcısı olduğu için şimdi ne serin olduğunu bu tanım yapılan olarak uygulanmış olduğu düşünülürse, Ben şimdi düz tercüman gelen faktöryel çağırabilirsiniz. Ben başka bir program olsaydı, birden çok yolla diyebiliriz. Ve şimdi, umarım takdir gerektiğini Neden biz bu işlevi yaptığı serin tanım, şimdi hesaplayabilirsiniz çünkü Bu fonksiyon faktoriyelini tanımlanmış çünkü, Ben 4 faktoriyelini hesaplayabilirsiniz. 24 var. Ben 5 faktoriyelini eksi 3 faktoriyelini, 114 söyleyebiliriz. Ben 12 faktoriyelini alabilir. Ve bu sadece olsa bile, bilgisayar söyleyebilir bu-- Tüm yorumlama biz hakkında daha fazla konuşacağız inanılmaz hızlı code-- derlenmiş karşı yorumlanır, biz gerçekten bile anlamak daha hızlı. Yani bu fonksiyonun gerçek güç Şimdi kodu her zaman yeniden yazmak zorunda kalmamasıdır. Ben sadece farklı argümanlarla çağırabilirsiniz. Yani 2 faktöryel. Ben bunu her zaman yapabiliriz. Ben programını yeniden gerekmez. Ve ben faktöryel kullanan diğer programlar yazarsanız, belki [duyulamaz] bazı şeyler, Ben sadece bir fonksiyonu olarak kullanabilirsiniz. Aslında, ben bile bilmek zorunda değilsiniz Ne işlev içinde oluyor. Ve işlevleri diğer güçlü yönlerinden biri ı programların bir demet yazmak diyelim ki- olduğunu yani call-- Ben burada bu programı var faktöryel çağırır. Ama daha iyi bir ile gelip diyelim Buraya bu hakkı yazma yolu. Aynı şeyi yapar programınızın, sürece Farklı cesaret ile, son kullanıcı fark etmez. Yani belki, daha hızlı bir şekilde, ya da daha basit bir şekilde yazmak Bunu yapmanın, daha az bellek ya da daha az CPU gücü kullanan bir yol, o zaman sadece daha sonra bu yerini alabilir. Ve sonra [duyulamaz] program o sürece hala çalışır gibi, onu çağırır bu program için çalışacağız. Ve sadece bu çok daha iyi çalışacağız.

Açıklama

Python bir işlevi tanımlama

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

Khan Academy

Khan Academy

Misyonumuz, her yerde herkes için dünya standartlarında bir eğitim sağlamak. Tüm Khan Academy içerik www.khanacademy.org adresinden ücretsiz olarak sunulmaktadır.

YORUMLAR



9.5/10

  • 135
    Olumlu
  • 6
    Olumsuz
  • 13
    Yorum
  • 56869
    Gösterim

SPONSOR VİDEO

Rastgele Yazarlar

  • Cartoonium

    Cartoonium

    11 NİSAN 2011
  • ipsy

    ipsy

    1 EKİM 2012
  • William Hyde

    William Hyde

    23 HAZİRAN 2008

ANKET



Bu sayfa işinize yaradı mı?