• Python programlama dili. Sıfırdan öğrenmek: özellikler, kurallar ve tavsiyeler. Python diline kısa bir bakış

    Python programlama dilini öğrenmeli misiniz? Ne de olsa, bu dilin ölmekte olduğunu sık sık duyabilirsiniz. Bu konu Quora kullanıcıları tarafından tartışıldı ve görüşlerini paylaştı.

    Bill Karven, SQL Geliştiricisi, Danışmanı, Eğitmeni ve Yazarı

    Assembly dili, kompakt, verimli ve proje için optimize edilmiş kod yazmanız için size harika bir fırsat sunar. Sadece birkaç kilobayt yer kaplayan bu dilde yazılan kodda inanılmaz şeyler yapabilirsiniz. Ancak, montaj diliyle elde edebileceğiniz verimlilik düzeyi, gerektirdiği ekstra çalışma, zaman ve beceriyi haklı çıkarmaz.

    Dillerin hem popülerlik kazandığı hem de kaybettiği doğrudur. Verimlilik, programlamadaki ana kaygıdır, bu nedenle zaman zaman, en azından bazı iş türleri için üretkenliği artıran yeni diller oluşturulur.

    Bugün çoğu programcı daha yüksek seviyeli diller kullanıyor - daha üretken olmaları gerekiyor. Üst düzey diller, makine koduna (C veya C++) derlenebilir ve mimariden bağımsız bayt koduna derlenebilir ve sanal bir makinede (Java) çalıştırılabilir veya işlenebilir (JavaScript, PHP, Ruby, Python, Perl, vb.) ).

    Assembly dilini öğrenmenin gerekli olduğu yanılgısı, çünkü "Python'dan daha iyidir." Bu, eski verilere dayanan aptalca bir bakış açısıdır.

    Bill Poucher, İcra Direktörü, ICPC, Enerji Yazılımı, Sentetik Genetik ve daha fazlası.

    Python'u öğrenin. Programlama konusunda kendinize deneyim kazandırın. Bu dilin kendine has bir zarafeti vardır.

    C'yi Unix makineleri için bir dil olarak öğrenin. UNIX'i anlamak nispeten kolaydır.

    Knuth'u anlamak için MIX'i öğrenin.

    Başkalarıyla çalışırken sorun yaşamamak için Java öğrenin ve ayrıca nesne yönelimli programlamayı öğrenin.

    İstediğiniz herhangi bir tarzda programlamak için C++ öğrenin. Gücü, ana programlama dili olmasıdır. Zayıf yönü, programlamak için tarzını anlamanız gerektiğidir.

    Özyineleme anlayışınızı sağlamlaştırmak için LISP öğrenin.

    En azından bir şey öğrenmeye değmeyeceğini söyledim mi? HAYIR. Çünkü yapılacak tek şey, sürekli bir şeyler öğrenmek, özellikle ortaya çıkan sorunları nasıl çözeceğinizi öğrenmek için kendinizi eğitmektir.

    Shiva Shinde, Python'un kodlaması kolay ama okuması zor

    Python programlama dili ölmüyor, en hızlı büyüyen dillerden biri.

    1. öğrenmesi kolay
    • Şu anda, ABD'deki en iyi 10 bilgi işlem programından 8'i bu dili kullanıyor (Philip Guo, CACM)
    • Python programları, diğer programlama dillerinde yaygın olarak bulunan minimum ortak bilgiye sahip olma eğilimindedir. Bu nedenle, sorunlara şablon olmayan çözümleri daha sık kullanabilirsiniz.
    • Bu dilde olmasa bile programlama deneyiminiz varsa Python'da hızlı bir şekilde ustalaşacaksınız.

    2. Tam işlevsellik

    • Sadece istatistik dili değildir. Python, veri toplama ve temizleme, veritabanları ve yüksek performanslı bilgi işlem ve daha fazlası için ihtiyacınız olan her şeye sahiptir.
    • Bu, çok sayıda yerleşik kitaplığa sahip yaygın bir programlama dilidir. Veri ve veritabanı yönetiminin yanı sıra ağ programlama çalışmaları için iyidir. Çok miktarda kaynağın mevcut olduğu, iyi düşünülmüş bir dildir.

    3. Ciddi bilimsel veri kütüphaneleri

    • Python, kullanılacak büyük miktarda veri içeren önemli bilimsel kitaplıklara sahiptir.
    • Bu bilimsel kütüphanelerin bel kemiği, kendi konferanslarına bile ev sahipliği yapan SciPy Ekosistemidir.
    • Pandalar ve Matplotlib, SciPy'nin parçasıdır. Makine öğrenimi, metin madenciliği ve ağ analizi gibi çok çeşitli konularda mükemmel veriler sağlarlar.

    Hernan Soulages, pragmatik programcı

    Bu dil oldukça popüler, akademik çevrelerde önemi artıyor. Bir programlama dilinin kullanışlılığının, onunla ne yapmak istediğinize bağlı olduğu da doğrudur.

    PHP'yi hiç sevmiyorum ama onun çok yönlülüğünü ve gücünü ve bu dilde ustalaşmanın yeterince kolay olduğu gerçeğini inkar edecek kadar aptal değilim.
    Birleştirici öğrenmeye gelince, bu dil doğrudan hangi işlemciyle çalıştığınıza bağlıdır.

    Biriyle nasıl çalışılacağını biliyorsanız, onu bir süreliğine bir işlemci ailesinde kesinlikle kullanabileceksiniz. Ancak zamanla bazı değişikliklere uğrarlar. Bu anlamda, en az dayanıklı dil ailesidir.

    Magnus Lychka, Göteborg'da yazılım geliştiricisi ve danışmanı

    Birçok kullanıcı Python'u sever. Bazı uygulamalar için çok yavaş olacak ve örneğin Assembly dili ile daha hızlı çalışacaklar ama bu uygulamalar da C'de hızlı çalışacakken C'de yazılan kod her platform için çalışacaktır.

    Pek çok girişim Python ile başarılı oluyor ve ardından bazı programları Java, C ++ veya C'de yeniden yazmak zorunda kalıyorlar. ancak okunması zor kod bitecekti.

    Fakat Assembly dili ile çalışırken sadece farklı işlemci mimarileri ile değil, farklı işletim sistemlerinde farklılık gösteren teknik detaylarla da uğraşmak zorunda kalacaksınız.

    • hedef 1- programlama öğrenecek ve Python'u ana dili olarak alacak olanlara bağlantılar, materyaller konusunda yardımcı olmak için. Göründüğü kadar zor olmadığını gösterin.
    • 2. gol- yorumlarda bu konuyla ilgili yararlı ve ilginç materyallerin bağlantılarını toplayın.

    0. Başarabilecek miyim?

    En başından beri Hello World'den daha fazlasını yapabileceğimden şüpheliydim. Bana programlama süper zor ve süper sihir gibi geldi. Ayrıca tam teşekküllü bir çalışmadan uzaklaşacak bir iş, hobi, aile var.

    Boşuna korktum ve sana tavsiye etmiyorum. Programlama muhtemelen hiçbir zaman ana mesleğim olmayacak, ancak yaratıcı olmak için harika bir yol. Satranç ve Medeniyet bir arada.

    Her şey göründüğünden daha basit ve çok daha ilginç.

    1. Edebiyat

    Mark Lutz "Python Programlama"- birçok forum ve kursta okumanız tavsiye edilir. Bana yeni başlayanlar için fazla ayrıntılı ve yüklü geldi. Çok oku, az programla. Minimum düzeyde Python'a hakim olduktan sonra okumak çok daha faydalıdır.

    Mark Summerfield “Python 3 Programlama”- mükemmel örnekler ve ödevlerle dinamik. Başlangıçta her şeyi karmaşıklaştıran aşırı derinleşme olmadan. Bu kitapla başlamanızı tavsiye ederim, sizi karmaşıklıklarla korkutmadan hızlı bir şekilde anlamanıza yardımcı olacaktır.

    Diğer tüm kitapların daha az yararlı ve bilgilendirici olduğu kanıtlanmıştır. Genel olarak, bu konuyla ilgili iyi literatürün bir mağazada veya dijital versiyonda öylece alınması ve satın alınması zordur.

    2. İnternette ne okumalı?

    http://pythonworld.ru/ - basit ve anlaşılır bir dil, genellikle kopya kağıdı olarak kullanılan dilin temellerini anlatır.

    İki ay sonra ilk Django uygulamamı oluşturabildim. Ama asıl mesele şu ki, artık kişisel gelişim ve öğrenme için yeterli bilgiye sahibim. En zor kısım bu noktaya gelmek.

    Bir ay sonra GitHub'da iki projeye katıldım ve onlarda yer aldım. Elbette şimdiye kadar basit olan görevleri çözüyorum ama karşılığında tavsiye ve eğitim alıyorum.

    Etiketler: python öğrenme, programlama öğrenme

    Python'da Programlama

    Bölüm 1. Dil Özellikleri ve Temel Sözdizimi

    İçerik Serisi:

    Python öğrenmeye değer mi?

    Python, en popüler modern programlama dillerinden biridir. Çeşitli sorunları çözmek için uygundur ve diğer programlama dilleriyle aynı özellikleri sunar: dinamizm, OOP desteği ve çapraz platform. Python'un gelişimi 1990'ların ortalarında Guido Van Rossum tarafından başlatıldı, bu nedenle şimdiye kadar standart "çocukluk" hastalıklarından kurtulmayı başardı, dilin en iyi yönlerini önemli ölçüde geliştirdi ve Python'u uygulamaları için kullanan birçok programcıyı kendine çekti. projeler.

    Pek çok programcı, diğer diller zaten aynı yetenekleri sağlamayacağından, Java veya C++ gibi yalnızca "klasik" programlama dillerini öğrenmenin gerekli olduğunu düşünüyor. Bununla birlikte, son zamanlarda, bir programcının birden fazla dil bilmesinin arzu edilir olduğuna inanılmaktadır, çünkü bu onun ufkunu genişleterek görevleri daha yaratıcı bir şekilde çözmesine ve işgücü piyasasındaki rekabet gücünü artırmasına olanak tanır.

    Java ve C++ gibi iki dili mükemmel şekilde öğrenmek oldukça zordur ve çok zaman alacaktır; üstelik bu dillerin birçok yönü birbiriyle çelişmektedir. Aynı zamanda Python, OOP'de zaten var olan bilgi nedeniyle hemen özümsendiği ve yeteneklerinin çelişmemesi, ancak başka bir programlama ile çalışırken kazanılan deneyimi tamamlaması nedeniyle ikinci bir dilin rolü için idealdir. dil.

    Bir programcı yazılım geliştirme alanına yeni başlıyorsa, Python ideal bir "giriş" programlama dili olacaktır. Özlü olması nedeniyle, dilin sözdiziminde hızlı bir şekilde ustalaşmanıza izin verecek ve yıllar içinde oluşturulmuş aksiyomlar biçiminde bir "miras" olmaması, hızlı bir şekilde OOP'de ustalaşmanıza yardımcı olacaktır. Bu faktörler nedeniyle, Python'un öğrenme eğrisi oldukça kısa olacak ve programcı örnek olaylardan ticari projelere geçebilecektir.

    Bu nedenle, bu makalenin okuyucusu ister deneyimli bir programcı, ister yazılım geliştirme alanında yeni başlayan biri olsun, bu bölümün başlığı olan sorunun cevabı kocaman bir evet olmalıdır.

    Bu makale dizisi, dilin en temel ilkelerinden diğer teknolojilerle entegrasyon açısından gelişmiş yeteneklerine kadar sürekli olarak bilgi sağlayarak öğrenme eğrisini başarıyla aşmanıza yardımcı olmak için tasarlanmıştır. İlk yazımızda Python'un temel özelliklerinden ve sentaksından bahsedeceğiz. Gelecekte, bu popüler dille çalışmanın daha karmaşık yönlerine, özellikle Python'da nesne yönelimli programlamaya bakacağız.

    Python mimarisi

    Herhangi bir dil, ister programlama ister iletişim için olsun, en az iki bölümden oluşur - kelime dağarcığı ve sözdizimi. Python dili, yürütülebilir programları oluşturan ifadeler oluşturmak için bir sözdizimi ve standart bir kitaplık ve eklentiler biçiminde bir dizi işlevsellik olan bir sözlük sağlayarak aynı şekilde düzenlenmiştir.

    Daha önce de belirtildiği gibi, Python'un sözdizimi, özellikle Java veya C++ ile karşılaştırıldığında oldukça özlüdür. Bir yandan, bu iyi, çünkü sözdizimi ne kadar basitse, öğrenmesi o kadar kolay ve onu kullanma sürecinde o kadar az hata yapabilirsiniz. Bununla birlikte, bu tür dillerin bir dezavantajı vardır - en basit bilgileri iletmek için kullanılabilirler ve karmaşık yapıları ifade edemezler.

    Bu, basit ama basitleştirilmiş bir dil olduğu için Python için geçerli değildir. Gerçek şu ki Python, örneğin Java ve C ++ 'dan daha yüksek soyutlama düzeyine sahip bir dildir ve aynı miktarda bilgiyi daha az miktarda kaynak kodunda aktarmanıza izin verir.

    Ayrıca Python genel amaçlı bir dil olduğundan yazılım geliştirmenin hemen hemen her alanında (bağımsız, istemci-sunucu, Web uygulamaları) ve herhangi bir konu alanında kullanılabilir. Ek olarak, Python mevcut bileşenlerle kolayca bütünleşir, bu da Python'u önceden yazılmış uygulamalara yerleştirmeyi mümkün kılar.

    Python'un başarısının bir başka parçası da hem standart hem de özel uzantı modülleridir. Standart Python uzantıları, her yazılım geliştirme projesinde, dize ve metin işlemede, işletim sistemiyle etkileşimde, Web uygulamaları desteğinde ortaya çıkan sorunları çözmek için iyi tasarlanmış ve kanıtlanmış işlevselliktir. Bu modüller ayrıca Python'da yazılmıştır, bu nedenle en önemli özelliğine sahiptirler - projeleri bir işletim sisteminden diğerine acısız ve hızlı bir şekilde aktarmanıza olanak tanıyan çapraz platform.

    Gerekli işlevsellik Python standart kitaplığında yoksa, daha sonra tekrarlanan kullanımı için kendi genişletme modülünüzü oluşturabilirsiniz. Python için genişletme modüllerinin yalnızca Python'da değil, diğer programlama dilleri kullanılarak da oluşturulabileceğini burada belirtmekte fayda var. Bu durumda, karmaşık bilimsel hesaplamalar gibi yoğun kaynak gerektiren görevleri daha verimli bir şekilde uygulamak mümkün hale gelir, ancak Python gibi uzantı modülü dilinin kendisi çapraz platform değilse çapraz platform avantajı kaybolur.

    Python çalışma zamanı

    Bildiğiniz gibi, tüm platformlar arası programlama dilleri aynı modele göre oluşturulmuştur: bu, gerçekten taşınabilir bir kaynak kodu ve taşınabilir olmayan ve her bir platforma özgü bir çalışma zamanı ortamıdır. Bu çalıştırma zamanı genellikle, kaynak kodunu yürüten bir yorumlayıcı ve uygulamayı sürdürmek için gereken çeşitli yardımcı programları (bir hata ayıklayıcı, ters birleştirici vb.) içerir.

    Java Runtime Environment ayrıca bir derleyici içerir, çünkü kaynak kodun Java Sanal Makinesi için bayt kodunda derlenmesi gerekir. Python çalışma zamanı, yalnızca aynı zamanda bir derleyici olan bir yorumlayıcı içerir, ancak Python kaynak kodunu doğrudan hedef platformun yerel koduna derler.

    Şu anda Python için iyi bilinen üç çalışma zamanı uygulaması vardır: CPython, Jython ve Python.NET. Adından da anlaşılacağı gibi, ilk ortam C'de, ikincisi Java'da ve sonuncusu .NET'te uygulanmaktadır.

    CPython çalışma zamanı genellikle basitçe Python olarak adlandırılır ve insanlar Python hakkında konuştuğunda, çoğunlukla bu uygulamaya atıfta bulunulur. Bu uygulama, C'de yazılmış bir yorumlayıcı ve genişletme modüllerinden oluşur ve standart bir C derleyicisinin mevcut olduğu herhangi bir platformda kullanılabilir.Ayrıca, OC Windows'un çeşitli sürümleri de dahil olmak üzere çeşitli işletim sistemleri için çalışma zamanının zaten derlenmiş sürümleri vardır. ve çeşitli dağıtımlar linux. Bu ve bundan sonraki yazılarda aksi ayrıca belirtilmedikçe CPython ele alınacaktır.

    Jython çalışma zamanı, Java Virtual Machine (JVM) ile çalışmak için bir Python uygulamasıdır. JVM'nin 1.2.2 sürümünden başlayarak tüm sürümleri desteklenir (Java'nın mevcut sürümü 1.6'dır). Jython, kurulu bir Java makinesi (Java çalıştırma ortamı) ve Java programlama dili hakkında biraz bilgi gerektirir. Java kaynak kodunu nasıl yazacağınızı bilmenize gerek yok, ancak JavaDOC biçimindeki belgelerin yanı sıra JAR dosyalarına ve Java uygulamalarına aşina olmanız gerekecek.

    Hangi ortamın seçileceği yalnızca programcının tercihlerine bağlıdır, genel olarak hem CPython'u hem de Jython'u bilgisayarda tutmanız önerilir, çünkü bunlar birbirleriyle çelişmezler, birbirlerini tamamlarlar. CPython ortamı daha hızlıdır çünkü JVM biçiminde bir ara katman yoktur; ayrıca Python'un güncellenmiş sürümleri ilk olarak bir CPython ortamı olarak piyasaya sürülür. Ancak Jython, herhangi bir Java sınıfını bir uzantı modülü olarak kullanabilir ve bir JVM uygulamasının mevcut olduğu herhangi bir platformda çalışabilir.

    Her iki çalışma zamanı da iyi bilinen GPL ile uyumlu bir lisans altında yayınlanır, böylece hem ticari hem de özgür yazılım geliştirmek için kullanılabilirler. Çoğu Python uzantı modülü de GPL lisansı altında yayınlanır ve herhangi bir projede ücretsiz olarak kullanılabilir, ancak ticari uzantılar veya daha katı lisanslara sahip uzantılar da vardır. Bu nedenle Python'u ticari bir projede kullanırken, uzantının eklenti lisanslarında hangi kısıtlamaların bulunduğunun farkında olmanız gerekir.

    Python'a başlarken

    Python'u kullanmaya başlamadan önce çalışma zamanı ortamını kurmanız gerekir - bu makalede CPython ve buna göre python yorumlayıcısıdır. Çeşitli yükleme yöntemleri vardır: ileri düzey kullanıcılar Python'u genel kaynak kodundan kendileri derleyebilir, ayrıca belirli bir işletim sistemi için hazır yürütülebilir dosyaları www.python.org web sitesinden indirebilir ve son olarak birçok Linux dağıtımı bir Python tercümanı zaten önceden yüklenmiştir. Bu makale Python 2.x'in Windows sürümünü kullanır, ancak verilen örnekler Python'un herhangi bir sürümünde çalıştırılabilir.

    Yükleyici, Python yürütülebilir dosyalarını belirtilen dizine dağıttıktan sonra, aşağıdaki sistem değişkenlerinin değerlerini kontrol etmeniz gerekir:

    • YOL. Bu değişken, işletim sisteminin bulabilmesi için Python'un kurulu olduğu dizinin yolunu içermelidir.
    • PYTHONHOME. Bu değişken yalnızca Python'un kurulu olduğu dizinin yolunu içermelidir. Bu dizin ayrıca standart Python modülleri için aranacak bir lib alt dizini de içermelidir.
    • PİTONPATH. Python'a bağlanacak uzantı modüllerini içeren dizinlerin listesini içeren bir değişken (listenin öğeleri bir sistem ayırıcıyla ayrılmalıdır).
    • PYTHONBAŞLATMA . Etkileşimli bir Python yorumlayıcı oturumu her başlatıldığında yürütülmesi gereken bir Python betiğinin yolunu tanımlayan isteğe bağlı bir değişken.

    Tercümanla çalışmak için komut satırı aşağıdaki yapıya sahiptir.

    PYTHONHOME\python (seçenekler) [ -c komut | komut dosyası | - ] (argümanlar)

    Python Etkileşimli Modu

    Yorumlayıcıyı bir komut veya betik dosyası belirtmeden başlatırsanız, etkileşimli modda çalışacaktır. Bu modda, bireysel komutları veya ifadeleri girebileceğiniz ve değerlerinin hemen hesaplanacağı özel bir Python kabuğu başlatılır. Belirli bir yapının doğruluğunu hemen kontrol edebileceğiniz için Python öğrenirken bu çok uygundur.

    Değerlendirilen ifadenin değeri, sonraki ifadelerde kullanılabilmesi için Tek Alt Çizgi (_) adlı özel bir değişkende saklanır. Windows'ta Ctrl-Z'ye veya Linux'ta Ctrl-D'ye basarak etkileşimli bir oturumu sonlandırabilirsiniz.

    Seçenekler, bir oturum sırasında yorumlayıcının davranışını değiştirebilen isteğe bağlı dize değerleridir; önemi bu ve sonraki makalelerde tartışılacaktır. Seçenekleri, yorumlayıcının yürütmesi gereken tek bir komut veya yürütülecek bir komut dosyası içeren bir dosyanın yolu takip eder. Bir komutun, noktalı virgüllerle ayrılmış birkaç ifadeden oluşabileceğini ve işletim sisteminin yorumlayıcıya doğru şekilde iletebilmesi için tırnak işaretleri içine alınması gerektiğini belirtmekte fayda var. Bağımsız değişkenler, yürütülebilir komut dosyasına daha fazla işlenmek üzere iletilen parametrelerdir; programa diziler halinde aktarılır ve boşluklarla ayrılır.

    Python'un düzgün bir şekilde kurulduğunu ve çalıştığını doğrulamak için aşağıdaki komutları çalıştırabilirsiniz:

    c:\>python-v
    c:\> python –c “içe aktarma zamanı; yazdırma zamanı.asctime()”

    -v seçeneği, kullanılan Python uygulamasının sürümünü görüntüler ve çıkar, ikinci komut ise sistem zaman değerini ekrana yazdırır.

    Python komut dosyalarını düz metin dosyaları oldukları için herhangi bir metin düzenleyicide yazabilirsiniz, ancak Python ile çalışmak üzere tasarlanmış özel geliştirme ortamları vardır.

    Python Sözdizimi Temelleri

    Python kaynak kodu betikleri sözde oluşur mantıksal diziler, her biri sırayla oluşur fiziksel diziler. # sembolü yorumları belirtmek için kullanılır. Yorumlar ve boş satırlar tercüman tarafından dikkate alınmaz.

    Aşağıdakiler, Python'u ikinci bir programlama dili olarak öğrenen programcılara garip gelebilecek çok önemli bir husustur. Önemli olan nokta, Python'da, örneğin C++ veya Java'daki noktalı virgül (;) gibi, kaynak koddaki ifadeleri birbirinden ayırmaktan sorumlu hiçbir sembolün olmamasıdır. Noktalı virgül, aynı fiziksel satırdalarsa birden çok talimatı ayırmanıza olanak tanır. Ayrıca, bir talimat grubunu tek bir blokta birleştirmenize izin veren süslü parantezler () gibi bir yapı da yoktur.

    Fiziksel diziler, satır sonu karakterinin kendisiyle ayrılır, ancak ifade bir dizi için çok uzunsa, o zaman iki fiziksel dizi tek bir mantıksal dizide birleştirilebilir. Bunu yapmak için ilk satırın sonuna bir ters eğik çizgi (\) karakteri girmeniz gerekir ve ardından bir sonraki satır yorumlayıcı tarafından ilk satırın devamı olarak yorumlanır, ancak diğer karakterlerin girmesi imkansızdır. \ karakterinden sonraki ilk satırda görünür, örneğin # ile bir yorum. Girinti, kod bloklarını vurgulamak için kullanılır. Aynı girinti boyutuna sahip mantıksal satırlar bir blok oluşturur ve blok, daha küçük girintili mantıksal bir satır göründüğünde sona erer. Bu nedenle bir Python betiğindeki ilk satır girintili olmamalıdır. Bu basit kurallara hakim olmak, yeni bir dil öğrenmekle ilgili hataların çoğundan kaçınmanıza yardımcı olacaktır.

    Python'un sözdiziminde diğer programlama dillerinden başka radikal farklılıklar yoktur. Çoğu programcıların zaten aşina olduğu standart bir işleçler ve anahtar sözcükler seti vardır, ancak Python'a özgü olanlar bu ve sonraki makalelerde ele alınacaktır. Değişkenlerin, yöntemlerin ve sınıfların tanımlayıcılarını ayarlamak için standart kurallar da kullanılır - ad her durumda bir alt çizgi veya Latin karakteri ile başlamalıdır ve @, $, % içeremez. Ayrıca, tanımlayıcı olarak yalnızca bir alt çizgi karakteri kullanılamaz (etkileşimli mod için dipnota bakın).

    Python'da kullanılan veri türleri

    Python'da kullanılan veri türleri de diğer dillerdekilerle aynıdır - tamsayı ve gerçek veri türleri; ek olarak, karmaşık bir veri türü desteklenir - gerçek ve hayali bir kısımla (böyle bir sayının bir örneği 1,5J veya 2j'dir; burada J, -1'in kareköküdür). Python, tek, çift veya üçlü tırnak içine alınabilen dizeleri desteklerken, Java'daki gibi dizeler değişmez nesnelerdir, örn. yaratıldıktan sonra değerlerini değiştiremezler.

    Python ayrıca iki değere sahip bir bool veri türüne sahiptir - True ve False. Ancak, Python'un eski sürümlerinde bu veri türü yoktu ve ek olarak, herhangi bir veri türü True veya False boolean değerine dönüştürülebilirdi. Sıfır olmayan tüm sayılar ve boş olmayan dizeler veya veri koleksiyonları True, boş ve sıfır değerler ise False olarak değerlendirildi. Bu özellik Python'un yeni sürümlerinde korunmuştur, ancak kodun okunabilirliğini artırmak için bool değişkenleri için bool türünün kullanılması önerilir. Aynı zamanda, Python'un eski uygulamalarıyla geriye dönük uyumluluk sağlamanız gerekiyorsa, boole değişkenleri olarak 1 (Doğru) veya 0 (Yanlış) kullanmalısınız.

    Veri kümeleriyle çalışmak için işlevsellik

    Python, veri kümelerini depolamak için üç tür koleksiyon tanımlar:

    • demet;
    • liste (liste);
    • sözlük.

    Tuple, değişmez sıralı bir veri dizisidir. Diğer demetler gibi çeşitli türlerde öğeler içerebilir. Bir demet parantez içinde tanımlanır ve öğeleri virgülle ayrılır. Tuple() özel yerleşik işlevi, belirli bir veri dizisinden demetler oluşturmanıza olanak tanır.

    Liste, değişken sıralı bir öğe dizisidir. Listenin öğeleri de virgülle ayrılmıştır, ancak zaten köşeli parantez içinde yer almaktadır. list() fonksiyonu liste oluşturmak için kullanılır.

    Sözlük, bir öğeyi anahtar tanımlayıcısıyla birlikte depolayan bir karma tablodur. Öğelere sonraki erişim de anahtarla gerçekleştirilir, bu nedenle bir sözlükteki depolama birimi, bir anahtar nesne çifti ve ilişkili bir değer nesnesidir. Sözlük değiştirilebilir ancak sıralı olmayan bir koleksiyondur, bu nedenle sözlükteki öğelerin sırası zamanla değişebilir. Sözlük kaşlı ayraçlarla belirtilir, anahtar değerden iki nokta üst üste ile ayrılır ve anahtar/değer çiftlerinin kendileri virgülle ayrılır. dict() işlevi, sözlük oluşturmak için kullanılabilir.

    Liste 1, Python'da bulunan çeşitli koleksiyonların örneklerini gösterir.

    Listeleme 1. Python'da bulunan koleksiyon türleri
    ('w','o','r','l','d') # beş elemanlı demet (2.62,) # bir elemanlı demet [“test”,"me"] # iki elemanlı liste # boş liste ( 5:'a', 6:'b', 7:'c' ) # int tuşlu 3 elemanlı sözlük

    Python'da Fonksiyon Tanımlama

    Python OOP'yi desteklese de özelliklerinin çoğu ayrı işlevler olarak uygulanır; ek olarak, genişletme modülleri çoğunlukla bir işlev kitaplığı biçiminde de yapılır. Fonksiyonlar, geleneksel olarak metot olarak adlandırılan sınıflarda da kullanılır.

    Python'da işlevleri tanımlamanın sözdizimi son derece basittir; yukarıdaki gerekliliklere tabidir:

    def FUNCTION_NAME(parametreler): ifade #1 ifade #2 ...

    Gördüğünüz gibi def anahtar kelimesini, iki nokta üst üste ve girintiyi kullanmak gerekiyor. Bir işlevi çağırmak da çok basittir:

    FUNCTION_NAME(parametreler)

    Dikkate alınması gereken yalnızca Python'a özgü birkaç şey vardır. Java'da olduğu gibi, ilkel değerler değere göre iletilir (parametrenin bir kopyası işleve girer ve işlev çağrılmadan önce ayarlanan değeri değiştiremez) ve karmaşık nesne türleri referansa göre iletilir (bir referans iletilir) işleve ve nesneyi iyi değiştirebilir).

    Parametreler, yalnızca numaralandırma sırasına göre veya ada göre iletilebilir, bu durumda, çağırırken, varsayılan değerleri olan parametreleri belirtmeniz gerekmez, yalnızca gerekli olanları iletir veya işlevi çağırırken parametrelerin sırasını değiştirirsiniz. :

    # tamsayı bölme işlemini gerçekleştiren bir işlev - operatör kullanılarak // def foo(delimoe, delitel): dönüş delimoe // delitel yazdır böl(50,5) # işin sonucu: 10 yazdır böl(delitel=5, delimoe=50) # sonuç çalışıyor: 10

    Python'daki bir işlev, ya açıkça bir dönüş ifadesi ve ardından bir dönüş değeri kullanarak ya da bir dönüş ifadesinin yokluğunda, işlevin sonuna ulaşıldığında Yok sabitini döndürerek bir değer döndürmelidir. İşlev bildirimi örneklerinden de görebileceğiniz gibi, Python'da bir işlevden bir şeyin döndürülüp döndürülmediğini belirtmek gerekli değildir, ancak bir işlevin bir değer döndüren bir dönüş ifadesi varsa, bu işlevde diğer dönüş ifadeleri bulunur. değerler döndürmeli ve böyle bir değer varsa hayır, açıkça dönüş Yok yazmalısınız.

    İşlev çok basitse ve bir satırdan oluşuyorsa, o zaman doğrudan kullanım yerinde tanımlanabilir, Python'da böyle bir yapıya lambda işlevi (lambda) denir. Bir lambda işlevi, gövdesi bir ifadenin değerini döndüren bir dönüş ifadesi olan (kendi adı olmayan) anonim bir işlevdir. Bu yaklaşım bazı durumlarda uygun olabilir, ancak bu tür işlevlerin yeniden kullanılmasının imkansız olduğunu belirtmek gerekir ("doğduğunuz yerde işe yaradı").

    Python'un özyineleme kullanımına karşı tutumunu da açıklamaya değer. Varsayılan olarak özyineleme derinliği 1000 seviye ile sınırlıdır ve bu seviye geçildiğinde bir istisna atılacak ve program durdurulacaktır. Ancak gerekirse bu sınır değiştirilebilir.

    Python'daki işlevlerin, belgeleme veya iç içe işlevleri tanımlama yeteneği gibi başka ilginç özellikleri vardır, ancak bunlar, dizideki sonraki makalelerde daha karmaşık örneklerle tartışılacaktır.

    Bir zamanlar kapalı bir forumda Python öğretmeye çalıştım. Genel olarak, işler orada durdu. Yazılı dersler için üzüldüm ve onları genel halk için yayınlamaya karar verdim. İlk iken, en basit. Daha ilginç hale geliyor, ama belki de ilginç olmayacak. Genel olarak bu gönderi bir deneme balonu olacak, beğenirseniz daha da yaygınlaştıracağım.

    Python'a yeni başlayanlar için. İlk bölüm. "Ne hakkındayız"

    Her ihtimale karşı, biraz sıkıcı "müjdecilik". Kim bıktıysa birkaç paragraf atlayabilirsiniz.
    Python ("python" olarak telaffuz edilir "python"), Guido van Rossum tarafından yeni başlayanlar için öğrenmesi kolay basit bir dil olarak geliştirilmiş bir betik dilidir.
    Günümüzde Python, birçok alanda kullanılan yaygın olarak kullanılan bir dildir:
    - Uygulama yazılımının geliştirilmesi (örneğin, linux utilities yum, pirut, system-config-*, Gajim IM client ve diğerleri)
    - Web uygulamalarının geliştirilmesi (en güçlü Zope Uygulama sunucusu ve temel alınarak geliştirilen CMS Plone, örneğin CIA web sitesinin çalıştığı ve Plones, Django uygulamalarının hızlı gelişimi için birçok çerçeve) TurboGears ve diğerleri)
    - Yalnızca (OpenOffice.org ofis paketi, Blender 3d düzenleyici, Postgre DBMS'de) değil, birçok oyunda gömülü betik dili olarak kullanın
    - Bilimsel hesaplamalarda kullanım (hesaplamalar için SciPy ve numPy paketleri ve çizim için PyPlot ile Python, MatLab gibi paketlerle neredeyse karşılaştırılabilir hale gelir)

    Ve bu kesinlikle bu harika dili kullanan projelerin tam listesi değil.

    1. Yorumlayıcının kendisine buradan ulaşabilirsiniz (http://python.org/download/).
    2. Geliştirme ortamı. Başlamak gerekli değildir ve dağıtıma dahil olan IDLE yeni başlayanlar için uygundur, ancak ciddi projeler için daha ciddi bir şeye ihtiyacınız vardır.
    Windows için harika, hafif PyScripter'ı (http://tinyurl.com/5jc63t), Linux için Komodo IDE'yi kullanıyorum.

    İlk ders için Python'un etkileşimli kabuğunun kendisi yeterli olacaktır.

    Sadece python.exe'yi çalıştırın. Giriş istemi uzun sürmeyecek, şuna benzer:

    Ayrıca, biçimlendirme karakterlerini metne eklemeyen (hiçbir Word yapmaz) favori metin düzenleyicinizde py uzantılı dosyalara programlar yazabilirsiniz. Bu düzenleyicinin "akıllı sekmeler" yapabilmesi ve boşlukları bir sekme karakteriyle değiştirememesi de arzu edilir.
    Dosyaları yürütmek üzere çalıştırmak için üzerlerine 2 kez tıklayabilirsiniz. Konsol penceresi çok hızlı kapanıyorsa, programın sonuna aşağıdaki satırı ekleyin:

    Ardından tercüman, programın sonunda enter tuşuna basılmasını bekleyecektir.

    Veya Far'daki py dosyalarını Python ile ilişkilendirin ve enter tuşuna basarak açın.

    Son olarak, hem hata ayıklama yetenekleri hem de sözdizimi vurgulama ve diğer birçok "kolaylık" sağlayan birçok kullanışlı Python IDE'sinden birini kullanabilirsiniz.

    Biraz teori.

    Yeni başlayanlar için, Python güçlü bir şekilde dinamik olarak yazılmış bir dildir. Bu ne anlama gelir?

    Bir değişkenin türünün önceden belirlendiği ve değiştirilemediği güçlü yazımlı (pascal, java, c vb.) diller olduğu gibi, dinamik yazımlı (python, ruby, vb) diller de vardır. ), burada bir değişkenin türü, atanan değere bağlı olarak yorumlanır.
    Dinamik olarak yazılan diller ayrıca 2 türe ayrılabilir. Örtük tür dönüştürmeye izin vermeyen katı (Pyton) ve örtük tür dönüştürmeleri gerçekleştiren katı olmayan (örneğin, "123" dizesini ve 456 sayısını kolayca ekleyebileceğiniz VB).
    Python'un sınıflandırmasını hallettikten sonra, tercümanla biraz "oynamaya" çalışalım.

    >>> a = b = 1 >>> a, b (1, 1) >>> b = 2 >>> a, b (1, 2) >>> a, b = b, a >>> a , b (2, 1)

    Böylece atamanın = işareti kullanılarak yapıldığını görüyoruz. Aynı anda birden çok değişkene değer atayabilirsiniz. Yorumlayıcıya etkileşimli olarak bir değişkenin adını söylediğinizde, onun değerini verir.

    Bilmeniz gereken bir sonraki şey, temel algoritmik birimlerin nasıl oluşturulduğudur - dallar ve döngüler. Başlamak için biraz yardıma ihtiyacımız var. Python'da özel bir kod bloğu sınırlayıcı yoktur, rolleri girinti ile oynanır. Yani, aynı girinti ile yazılanlar bir komut bloğudur. İlk başta garip gelebilir, ancak biraz alıştıktan sonra, bu "zorunlu" önlemin çok okunabilir bir kod elde etmenizi sağladığını anlıyorsunuz.
    Yani koşullar.

    Koşul, ":" ile biten bir if ifadesi kullanılarak belirtilir. İlk test "başarısız" olursa karşılanacak alternatif koşullar elif deyimi ile verilir. Son olarak, else, koşullardan hiçbiri eşleşmezse yürütülecek dalı belirtir.
    if yazdıktan sonra yorumlayıcının "..." komut istemiyle girişin devam etmesini beklediğini belirttiğine dikkat edin. Ona işimizin bittiğini söylemek için boş bir dize girmelisiniz.

    (Dallarla ilgili bir örnek, pre ve code etiketleriyle yapılan danslara rağmen nedense Habré'deki işaretlemeyi bozuyor. Rahatsızlık verdiğim için özür dilerim, buraya attım pastebin.com/f66af97ba , eğer biri bana neyin yanlış olduğunu söylerse - çok olacağım. minnettar)

    döngüler.

    Bir döngünün en basit hali while döngüsüdür. Bir koşulu parametre olarak alır ve doğru olduğu sürece yürütür.
    İşte küçük bir örnek.

    >>> x = 0 >>> iken x<=10: ... print x ... x += 1 ... 0 1 2 ........... 10

    Hem print x hem de x+=1 aynı girinti ile yazıldığından, bunların döngünün gövdesi olarak kabul edildiğini unutmayın (bloklar hakkında söylediklerimi hatırlıyor musunuz? ;-)).

    Python'daki ikinci döngü türü for döngüsüdür. Diğer dillerdeki foreach döngüsüne benzer. Sözdizimi geleneksel olarak aşağıdaki gibidir.

    Listedeki değişken için:
    takımlar

    Değişkene sırayla listedeki tüm değerler atanacaktır (aslında sadece bir liste değil, başka herhangi bir yineleyici de olabilir, ancak şimdilik bununla uğraşmayacağız).

    İşte basit bir örnek. Liste, bir karakter listesinden başka bir şey olmayan bir dize olacaktır.

    >>> x = "Merhaba Python!" >>> x'teki char için: ... char yazdır ... H e l ........... !

    Böylece diziyi karakterlere ayrıştırabiliriz.
    Belirli sayıda tekrar eden bir döngüye ihtiyacımız olursa ne yapmalıyız? Çok basit, menzil fonksiyonu kurtarmaya gelecek.

    Girdide birden üçe kadar parametre alır, çıktıda ise for ifadesiyle "üzerinden geçebileceğimiz" bir sayı listesi döndürür.

    Burada, parametrelerinin rolünü açıklayan aralık işlevinin kullanımına ilişkin bazı örnekler verilmiştir.

    >>> aralık(10) >>> aralık(2, 12) >>> aralık(2, 12, 3) >>> aralık(12, 2, -2)

    Ve bir döngü ile küçük bir örnek.

    >>> (10) aralığındaki x için: ... x'i yazdır ... 0 1 2 ..... 9

    Giriş çıkış

    Python'u tam olarak kullanmaya başlamadan önce bilmeniz gereken son şey, G/Ç'yi nasıl ele aldığıdır.

    Çıktı için, tüm bağımsız değişkenlerini insan tarafından okunabilir biçimde yazdıran print komutu kullanılır.

    Konsol girişi için, bir komut istemi görüntüleyen ve kullanıcı girişi için bekleyen ve kullanıcının değer olarak girdiği değeri döndüren raw_input(prompt) işlevi kullanılır.

    X = int(raw_input ("Bir sayı giriniz:")) print "Bu sayının karesi ", x * x

    Dikkat! Benzer bir eylemin input () işlevinin varlığına rağmen, programlarda kullanılması önerilmez, çünkü yorumlayıcı, programda ciddi bir güvenlik açığı olan, onu kullanarak girilen sözdizimsel ifadeleri yürütmeye çalışır.

    İlk ders için hepsi bu kadar.

    Ev ödevi.

    1. Bir dik üçgenin hipotenüsünü hesaplayan bir program yazınız. Bacakların uzunluğu kullanıcıdan istenir.
    2. İkinci dereceden bir denklemin köklerini genel terimlerle bulan bir program yazın. Katsayılar kullanıcıdan istenir.
    3. Çarpım tablosunu M sayısına göre gösteren bir program yazınız. Tablo M * a'dan M * b'ye kadar derlenmiştir, burada M, a, b kullanıcıdan istenmektedir. Çıktı, aşağıdaki biçimde (örneğin) her satıra bir örnek olacak şekilde bir sütunda olmalıdır:
    5×4=20
    5x5=25
    Ve benzeri.

    Bu materyal, programlamaya zaten aşina olan ve Python programlama dilini öğrenmek isteyenler için hazırlanmıştır. Python dilinin özelliklerini, sözdizimi özelliklerini ve Python ile çalışmanın temel ilkelerini 10 dakikada örneklerle göstermek için tasarlanmıştır. Burada "su" yoktur - programlama diliyle doğrudan ilgili olmayan bilgiler. Hadi başlayalım!

    Python programlama dili, güçlü yazma ile ayırt edilir (Güçlü yazma, dilin ifadelerde farklı türlerin karıştırılmasına izin vermemesi ve otomatik örtük dönüştürmeler gerçekleştirmemesi ile ayırt edilir, örneğin, bir diziyi bir dizeden çıkaramazsınız), dinamik yazma kullanılır - tüm türler programın yürütülmesi sırasında zaten netleştirilir.

    Değişken bildirimi isteğe bağlıdır, adlar büyük/küçük harfe duyarlıdır (var ve VAR iki farklı değişkendir).

    Python nesne yönelimli bir dildir, dildeki her şey bir nesnedir.

    Yardım almak

    Python'da Yardım (yardım) her zaman doğrudan yorumlayıcıda mevcuttur. Bir nesnenin nasıl çalıştığını öğrenmek istiyorsanız, yardım çağırın( ). Ayrıca, bir nesnenin tüm yöntemlerini ve nesnelerin özelliklerini gösteren dir() komutu da yararlı bir komuttur. .__doc__ , size docstring'i gösterecek:

    >>> help(5) int nesnesi hakkında yardım: (vb etc) >>> dir(5) ["__abs__", "__add__", ...] >>> abs.__doc__ "abs(sayı) -> sayı Bağımsız değişkenin mutlak değerini döndürün."

    Python Sözdizimi

    Python'da blok sonu yapıları yoktur (örneğin bir sınıf veya işlev bildirimi gibi) - bloklar girinti kullanılarak tanımlanır. Girintiyi bloğun başında artırın, bloğun sonunda azaltın. Girinti gerektiren ifadeler iki nokta üst üste (:) ile sonlandırılır. Blok başlatma deyiminden sonra herhangi bir kodunuz yoksa, sözdizimi denetimini geçmek için bir pass deyimi ekleyin.

    Rangelist == 1 iken: başarılı

    Tek satırlı yorumlar diyez işareti (#) ile başlar, çok satırlı yorumlarda yorumun başında ve sonunda (""") kullanılır.

    Değerler, eşittir işareti ("=") kullanılarak atanır (aslında, nesnelere işlem sırasında adlar atanır).

    Fark kontrolü iki eşittir karakteriyle ("==") gerçekleştirilir.

    += operatörünü kullanarak değeri arttırabilir ve -= ile azaltabilirsiniz, sol tarafta değişkeni, sağ tarafta ise artırmanın / azaltmanın gerçekleşeceği değeri belirtirsiniz. Bu, dizeler de dahil olmak üzere Python'daki birçok veri türüyle çalışır.

    Aynı satırda birden çok değişkene değer atayabilirsiniz. Örnekler:

    >>> myvar = 3 >>> myvar += 2 >>> myvar 5 >>> myvar -= 1 >>> myvar 4 """Bu çok satırlı bir yorumdur. Aşağıdaki satırlar iki diziyi birleştirir.""" >>> mystring = "Merhaba" >>> mystring += "dünya." >>> yazdır mystring Merhaba dünya. # Bu, değişkenleri bir satırda değiştirir(!). # Güçlü yazmayı ihlal etmez çünkü değerler gerçekte # atanmaz, ancak yeni nesneler eski adlara # bağlanır. >>> myvar, mystring = mystring, myvar

    Python'da Veri Türleri

    Python'da listeler (listeler), tuples (tuples) ve sözlükler (sözlükler) gibi veri türleri mevcuttur. Python 2.5'ten önceki sürümlerde sets modülü kullanılarak ve sonraki sürümlerde dile yerleşik olarak kümeler de mevcuttur.

    Listeler tek boyutlu dizilere benzer. Diğer listelerden oluşan bir listeye sahip olmak mümkündür.

    Sözlükler, verilere anahtarla erişilen ilişkisel dizilerdir.

    Demetler değişmez tek boyutlu dizilerdir.

    Python'daki "diziler" herhangi bir türde olabilir, yani listelerde/sözlüklerde/demetlerde sayıları, dizileri ve diğer veri türlerini birleştirebilirsiniz.

    İlk elemanın indeksi 0'dır. Negatif bir indeks değeri sondan birinciye doğru saymaya başlar, [-1] son ​​elemanı gösterir.

    Değişkenler fonksiyonlara işaret edebilir.

    >>> sample = , ("a", "tuple")] >>> mylist = ["List item 1", 2, 3.14] >>> mylist = "List item 1 tekrar" # Öğeyi değiştiriyoruz >>> mylist[-1] = 3.21 # Burada son öğeye atıfta bulunuyoruz >>> mydict = ("Anahtar 1": "Değer 1", 2: 3, "pi": 3.14) >>> mydict[ "pi"] = 3.15 # Sözlük değerlerini bu şekilde değiştirirsiniz >>> mytuple = (1, 2, 3) >>> myfunction = len >>> print myfunction(mylist) 3

    Bir diziyi (liste veya demet) iki nokta üst üste (:) kullanarak dilimleyebilirsiniz. Dizinin başlangıç ​​değerini boş bırakmak size ilk değerden başlamanızı söyleyecektir, dizinin sonundaki boş değer dizinin son elemanını varsayar. Negatif dizinler, dizinin sonundan geriye doğru sayılır (-1, son öğeyi gösterir).

    Örneklere bakın:

    >>> mylist = ["Liste öğesi 1", 2, 3.14] >>> listemi yazdır[:] ["Liste öğesi 1", 2, 3.1400000000000001] >>> listemi yazdır ["Liste öğesi 1", 2] > >> listemi yazdır[-3:-1] ["Liste öğesi 1", 2] >>> listemi yazdır # Üçüncü bir parametre eklendiğinde, "adım", 1 yerine # N öğe artışında Python adımına sahip olacaktır. , bu ilk öğeyi döndürür, ardından üçüncü öğeye gider ve bunu # döndürür (yani, 0-dizinlemede 0 ve 2 öğeleri). >>> listemi yazdır[::2] ["Liste öğesi 1", 3.14]

    Python'da dizeler

    Bir dizeyi belirtmek için kesme işareti (') veya çift tırnak (çift tırnak - ") kullanılabilir. Bu nedenle, kesme işaretleri ile gösterilen bir dizge içinde alıntılara sahip olabilirsiniz (örneğin, 'Merhaba dedi.' geçerli bir dizedir).

    Çok satırlı dizeler, üçlü kesme işareti veya tırnak işaretleri (""") kullanılarak belirtilir. Python, kutudan çıkar çıkmaz unicode'u destekler. Python 2, unicode içeren bir dizeyi belirtmek için (u) karakterini kullanır: u"Bu bir unicode dizesidir". Python3 tüm dizeler unicode'dur Python3'te, önceki sürümlerde esasen bir dize olan bir bayt dizisi istiyorsanız, (b) karakterini kullanın: b"Bu bir bayt dizisidir".

    (%) operatörü ve bir demet, parametre değerlerini bir dizeye değiştirmek için kullanılır. Her %s, soldan sağa doğru demetten bir öğeyle değiştirilir. Adlandırılmış parametreleri değiştirmek için bir sözlük de kullanabilirsiniz:

    >>>print "Ad: %s\ Numara: %s\ Dizgi: %s" % (sınıfım.adım, 3, 3 * "-") İsim: Poromenos Numarası: 3 Dizgi: --- strString = """ Bu çok satırlı bir dizedir.""" # UYARI: "%(key)s" içindeki son s'lere dikkat edin. >>> print "Bu %(fiil)s bir %(isim)s." % ("isim": "test", "fiil": "is") Bu bir testtir.

    Akış Kontrol Talimatları - if, for, while

    if , for ve while deyimleri programın yürütülme sırasını kontrol etmek için kullanılır. Bunun yerine kullanılırsa, Python'da anahtar veya durum yoktur. For, bir listenin (veya demetin) öğelerini yinelemek için kullanılır. Bir sayı dizisi elde etmek için range( ) . Break, döngünün yürütülmesini kesmek için kullanılır.

    Bu yapının sözdizimi şöyledir:

    Aralık listesi = aralık(10) >>> aralık listesindeki sayı için aralık listesini yazdır: # Numaranın, demetteki sayılardan # biri olup olmadığını kontrol edin. if sayısı (3, 4, 7, 9): # "Break", "else" yan tümcesini çalıştırmadan # a'yı sonlandırır. break else: # "Devam", döngünün bir sonraki yinelemesini # başlatır. Döngünün son ifadesi olduğu için burada oldukça işe yaramaz. devam başka: # "else" yan tümcesi isteğe bağlıdır ve # yalnızca döngü "kırılmadıysa" yürütülür. pass # Rangelist == 2 ise hiçbir şey yapmayın: print "İkinci öğe (listeler 0 tabanlıdır) 2'dir " elif rangelist == 3: print "İkinci öğe (listeler 0 tabanlıdır) 3'tür" else: print "Bilmiyorum" while rangelist == 1: pass

    Python'daki işlevler

    Fonksiyonlar "def" anahtar sözcüğü kullanılarak bildirilir. İsteğe bağlı bağımsız değişkenler, işlev bildirimindeki zorunlu bağımsız değişkenleri takip eder ve varsayılan bir değere atanır. Bir işlevi çağırırken, bazı isteğe bağlı bağımsız değişkenleri atlayarak veya bunları işlevde bildirilenden farklı bir sıraya yerleştirerek, adlarını ve değerlerini belirterek bağımsız değişkenleri iletebilirsiniz.

    İşlevler bir demet döndürebilir ve demet açmayı kullanarak birden fazla değer döndürebilirsiniz.

    Lambda işlevleri, tek bir bağımsız değişkeni işleyen özel işlevlerdir.

    Parametreler bir bağlantı aracılığıyla iletilir. Geçilen listeye öğeler ekleyerek, işlevin dışında güncellenmiş bir liste alırsınız. Bu durumda, işlev içindeki parametrelere yeni bir değer atamak, yerel bir eylem olarak kalacaktır. Yalnızca bellek konumu iletildiği için, bir parametreye yeni bir nesnenin değişken olarak atanması, yeni bir nesnenin oluşturulmasına neden olur.

    Kod örnekleri:

    # def funcvar(x) ile aynı: return x + 1 funcvar = lambda x: x + 1 >>> print funcvar(1) 2 # an_int ve a_string isteğe bağlıdır, varsayılan değerleri vardır # biri geçmezse ( 2 ve sırasıyla "Varsayılan dize"). def pass_example(a_list, an_int=2, a_string="A default string"): a_list.append("A new item") an_int = 4 return a_list, an_int, a_string >>> my_list = >>> my_int = 10 >> > print pass_example(my_list, my_int) (, 4, "Varsayılan bir dize") >>> my_list >>> my_int 10

    Python sınıfları

    Python, sınıflarda sınırlı bir çoklu kalıtım biçimini destekler.

    Özel değişkenler ve yöntemler, adın başında iki alt çizgi ve sonunda birden fazla olmamak kaydıyla (örneğin: "__spam") kullanılarak bildirilebilir (geleneksel olarak, bu yorumlayıcı tarafından kontrol edilmez).

    Sınıf örneklerine isteğe bağlı adlar da atayabiliriz. Örnekleri görüntüle:

    Class MyClass(object): common = 10 def __init__(self): self.myvariable = 3 def myfunction(self, arg1, arg2): return self.myvariable # Bu sınıf örneklemesidir >>> classinstance = MyClass() >> > classinstance.myfunction(1, 2) 3 # Bu değişken tüm sınıflar tarafından paylaşılır. >>> classinstance2 = Sınıfım() >>> classinstance.common 10 >>> classinstance2.common 10 # Örnek yerine # sınıf adını nasıl kullandığımıza dikkat edin. >>> MyClass.common = 30 >>> classinstance.common 30 >>> classinstance2.common 30 # Bu, sınıftaki değişkeni güncellemeyecek, # bunun yerine eski değişken adına yeni bir nesne bağlayacak. >>> classinstance.common = 10 >>> classinstance.common 10 >>> classinstance2.common 30 >>> MyClass.common = 50 # Bu değişmedi, çünkü "common" artık bir örnek değişkenidir. >>> classinstance.common 10 >>> classinstance2.common 50 # Bu sınıf, MyClass'tan devralır. Yukarıdaki # örnek sınıf, onu "yeni tarz sınıf" olarak adlandırılan # yapan "object" öğesinden # devralır. # "self" bağımsız değişkeni otomatik # iletilir ve sınıf örneğini ifade eder, böylece # örnek değişkenlerini yukarıdaki gibi ayarlayabilirsiniz, ancak class.def'in içinden __init__(self, arg1): self.myvariable = 3 print arg1 >> > classinstance = OtherClass("hello") merhaba >>> classinstance.myfunction(1, 2) 3 # Bu sınıfın bir .test üyesi yok, ama # yine de örneğe bir tane ekleyebiliriz. Bunun yalnızca sınıf örneğinin bir üyesi olacağını unutmayın. >>> classinstance.test = 10 >>> classinstance.test 10

    Python'daki İstisnalar

    Python'daki istisnalar, try-except bloklarında işlenir:

    Def some_function(): try: # Sıfıra bölme, ZeroDivisionError dışında bir istisnayı 10 / 0 yükseltir: print "Hata, geçersiz." else: # İstisna oluşmadı, iyiyiz. pass nihayet: # Bu, kod bloğu çalıştırıldıktan # sonra yürütülür ve işleme sırasında yeni bir istisna ortaya çıksa bile tüm istisnalar ele alınır. print "Bununla işimiz bitti." >>> some_function() Hata, geçersiz. Bununla işimiz bitti.

    Python'da modülleri içe aktarma

    Dış kitaplıklar, import anahtar sözcüğü kullanılarak içe aktarıldıktan sonra kullanılır. Tek tek işlevleri içe aktarmak için içe aktarmayı da kullanabilirsiniz.

    Zamandan rastgele içe aktar, içe aktar saati randomint = random.randint(1, 100) >>> print randomint 64

    Python'da dosyalarla çalışma

    Python, dosyalarla çalışmak için çok sayıda kitaplığa sahiptir. Örneğin, serileştirme (pickle kitaplığıyla verileri dizelere dönüştürme):

    Import turşu mylist = ["This", "is", 4, 13327] # C:\\binary.dat dosyasını yazmak için açın. # dosya adı dizesinden önceki r harfi, ters eğik çizgiden kaçmayı önlemek için kullanılır. dosyam = open(r"C:\\binary.dat", "w") pickle.dump(listem, dosyam) dosyam.close() dosyam = open(r"C:\\text.txt", "w" ) myfile.write("Bu örnek bir dizedir") myfile.close() myfile = open(r"C:\\text.txt") >>> print myfile.read() "Bu bir örnek dizedir" myfile .close() # Dosyayı okumak için açın. dosyam = open(r"C:\\binary.dat") loadlist = pickle.load(dosyam) myfile.close() >>> printloadedlist ["This", "is", 4, 13327]

    Çeşitli

    • Koşullar birbirine yapışabilir, örneğin 1< a < 3 проверит, что a одновременно меньше 3 и больше 1.
    • Dizilerdeki değişkenleri veya öğeleri kaldırmak için del'i kullanabilirsiniz.
    • Listeler çok güçlü veri işleme yetenekleri sağlar. for ve ardından if veya for deyimlerini kullanarak bir ifade oluşturabilirsiniz:
    >>> lst1 = >>> lst2 = >>> yazdır >>> yazdır # Herhangi bir öğe için bir koşulun doğru olup olmadığını kontrol edin. # "any", listedeki herhangi bir öğe doğruysa, doğru döndürür. >>> any(]) True # Bunun nedeni, %4 3 = 1 ve 1'in doğru olmasıdır, yani any() # True değerini döndürür. # Bir koşulun kaç öğenin doğru olduğunu kontrol edin. >>> sum(1 for i in if i == 4) 2 >>> del lst1 >>> print lst1 >>> del lst1
    • Global değişkenler, fonksiyonların dışında bildirilir ve içinde özel bildirimler olmadan okunabilir, ancak bunları yazmak istiyorsanız, özel "global" anahtar sözcüğünü kullanarak işlevin başından itibaren bildirmeniz gerekir, aksi takdirde Python yeni bir değer atayacaktır. yerel değişkene:
    sayı = 5 def myfunc(): # Bu, 5'i yazdıracak. print sayı def başkafunc(): # Değişken yazdırmadan önce # bağlanmadığından, bu bir istisna oluşturur. Python, bir # nesnesinin kendisine daha sonra bağlanacağını bilir ve global olana erişmek yerine yeni, yerel bir # nesne oluşturur. baskı numarası sayı = 3 def yetanotherfunc(): global sayı # Bu, global'i doğru şekilde değiştirecektir. sayı = 3

    Python programlama dili nasıl öğrenilir?

    Bu materyal Python için kapsamlı bir rehber olma iddiasında değildir. Python programlama dili, dille çalışmaya devam ederek ve ek kaynakları inceleyerek öğreneceğiniz çok sayıda kitaplığa ve çeşitli işlevlere sahiptir.

    Yukarıdaki bilgiler sizin için yeterli değilse - Python programlama dilini açıklayan genişletilmiş materyale bakın - - dil hakkında daha ayrıntılı bilgi sağlar.

    Diğer materyallerin yanı sıra Learn Python The Hard Way'i tavsiye ederim. Ve tabii ki Python 2 Eğitimi ve Python 3 Eğitimi .

    "Python'u 10 Dakikada Öğrenin" adlı mükemmel öğreticisi için Stavros Korokithakis'e çok teşekkürler.

    Bu materyalde bir şeyi geliştirmek istiyorsanız - lütfen yorumları yazın.