Python 3'te programlama hakkında basit bir dil. Yeni başlayanlar için Python programlama dili. Akış Kontrol Talimatları - if, for, while

Birkaç on yıl önce, programcılar başkaları için neyin mevcut olmadığını bilen bir tür şaman gibi görünüyordu. Bazen insanlar programlamayı dizlerinin üzerinde, bir parça kağıda kod yazmayı öğrendiler, çünkü "kişi başına düşen bilgisayar cihazlarının konsantrasyonu" son derece düşüktü. Artık evinde masaüstü veya dizüstü bilgisayarı olmayan birini bulmak zor. Eğitim teknolojileri de yerinde durmuyor.

biraz tarih

Python programlama dili seksenlerin sonlarında Guido van Rossum tarafından geliştirildi. Guido o sırada Hollanda CWI Enstitüsü'nün bir çalışanıydı. Bu dili boş zamanlarında yazdı ve katkıda bulunduğu ABC dili hakkında bazı fikirler koydu.

Dil, sürüngen onuruna adlandırılmadı. Aslında, isim fikri "Monty Python's Flying Circus" adlı yetmişlerin popüler bir İngiliz komedi şovuydu, ancak Python hala bir yılana kıyasla çok daha sık, hatta resmi web sitesinde amblemi bile (iki yılanı gösteriyor) kafalar) gösterir.

Python programlama dilinin bu kadar popüler olmasının nedeni olarak kabul edilen sadece van Rossum'un tasarım sezgisi değil. Dost bir kullanıcı topluluğunun varlığı göz önüne alındığında, sıfırdan öğrenmek hoş ve kolay bir deneyim haline gelir.

Çok uzun zaman önce, 2008'de, birçok mimari kusurun giderildiği Python 3000'in (3.0) uzun süredir test edilen ilk versiyonu yayınlandı. Aynı zamanda, geliştiriciler, dilin önceki sürümleriyle uyumluluğu korumaya çalıştı. Daha yeni bir sürüm olmasına rağmen, her iki dal da (2.x ve 3.x) desteklenmektedir.

Özlü programlama dili

Python'un diğer dillere göre bir takım avantajları vardır. Neredeyse sezgisel olarak anlaşılabilir, "şeffaf" bir sözdizimine sahiptir. Bu, bu dildeki program kodunun okunmasının çok daha kolay olduğu anlamına gelir, bu da sadece yazma süresini değil, aynı zamanda çeşitli iyileştirmeler ve kontroller için de zamanı azaltır.

Elbette, "eski okul" programcısı kesinlikle birkaç dil bilmeniz gerektiğini, hatta makine kodunu öğrenerek bile başlayabileceğinizi söyleyecektir. Ancak, Python dilinde bir programlama kursunu tamamladıktan sonra, bir kişi yalnızca belirli bilgileri değil, aynı zamanda kendileri için yararlı olan uygulamalar ve programlar oluşturarak yaratıcı doğasını gerçekleştirme fırsatı da alacaktır. Belki yakında programlama bir yabancı dil bilgisi kadar gerekli olacaktır.

kendinden şüphe etmek

Programlamanın zor olduğu yanılgısını atmaya değer. Hayır, programlama göründüğünden çok daha ilginçtir; diğer faaliyetler ve sözde "zaman eksikliği" veya tembellik müdahale edebilir.

Temel literatür, Python dilinde programlamayı hızlı bir şekilde öğrenmenize yardımcı olacaktır. Eğitim kursu, temel bilgileri öğrenebileceğiniz iki kitap okuyarak başlamalıdır. Birincisi Mark Lutz'un "Python Programming" ve ikincisi Mark Summerfield'ın "Python 3 Programming". Lutz'un kitabı, dilin üzerine inşa edildiği tüm temel ilkeleri ayrıntılı olarak, hatta bazen çok fazla açıklar. Bazıları Mark Lutz'u ustalaşmak için değil, temel bilgileri derinleştirmek için okumayı tavsiye ediyor. Summerfield'ın kitabı her şeyi daha kısa ve öz anlatıyor, yazar okuyucuyu hiçbir zorlukla korkutmuyor. Başka literatür var, ancak bu ders kitapları en yararlı ve bilgilendirici.

Giriş dersi

İlkokul yıllarını düşünelim. Kural olarak, bir çocuk bile minimum bilgi ile birinci sınıfa gelir: ebeveynler biriyle çalıştı, biri "sıfıra" gitti. Aynı şey Python programlama dilini öğrenmek için de geçerlidir. Gerçekten uygun ve "şeffaf", ancak programların temel ilkeleri hakkında minimum bilgi olmadan eğitim zor olacaktır. Müziği duymadan müzik öğrenmek gibi. Bu nedenle, programlamayla hiç karşılaşmamış olanlar, kendilerini "minimum giriş" ile tanıştırmalıdır.

CS50 dersleri faydalı bir yardımcı olacaktır. Bu, Java Script programlama üzerine bir Harvard Üniversitesi dersidir, ancak ilk dersler bir bilgisayar ve genel olarak programlar arasındaki etkileşimi erişilebilir ve anlaşılır bir şekilde açıklar. Rusça konuşan bir kullanıcı, çeviri, ek materyaller, derslerin metin versiyonları ve pratik görevler ile bu kursun video kayıtlarına erişebilir. Videolar YouTube gibi hemen hemen her yerde bulunabilir, ancak içeriğin tamamı Java Script sitesindedir.

İnternette

Python programlama dili popülerlik kazanıyor, bu nedenle uzun süredir birçok kendi kendine öğrenme materyali içeren birkaç portal var. Örneğin, "Yeni Başlayanlar için Python 3". Bu site yeni başlayanlar için birçok materyale sahiptir, bir hile sayfası olarak kullanılabilir. Ayrıca Codecademy web sitesinde bu konuyla ilgili ücretsiz erişime sahip büyük miktarda bilgi bulunmaktadır.

Forum iletişimi önemlidir. Tek başına öğrenmek her zaman daha zordur, bu yüzden farklı toplulukları ihmal etmeyin.

Ücretli kurslar

Her zaman ücretli kursları kullanabilirsiniz, ancak bazen çok paraya mal olur ve sonuç tatmin edici olmayabilir. Bu nedenle, elbette, ücretsiz bir giriş görevi sunan kursların seçilmesi tavsiye edilir. Örneğin GeekBrains'de "Python Programlamanın Temelleri" konulu bir yoğun çalışma var. Kurs ücretsizdir ve her 10 günde bir gerçekleşir. Kayıt olmak için siteye giriş yapmalısınız.

İpucu: Hangi kursu seçerseniz seçin, önce dilin temellerini öğrenin, böylece kendi başınıza kolayca öğrenebileceğiniz bir şeyle zaman kaybetmeyin. Yukarıdaki kitapları okumanız yeterli olacaktır.

Elbette teoride ustalaşınca pratik yapmak istiyorum. Burada Nick Parlante'nin derslerinden bahsetmek gerekir. Genel olarak İngilizce'de çok sayıda iyi eğitim literatürü olmasına rağmen, bunlar İngilizce'dir ve bu şaşırtıcı olmamalıdır. Nick, derslerde yalnızca Python programlama dilini öğretmekle kalmaz, aynı zamanda mükemmel pratik görevler de verir.

kullanım

Python programlama dili, birçok kişinin günlük olarak kullandığı birçok uygulamayı oluşturmak için kullanılmıştır. Örneğin, bu BitTorrent torrent istemcisinin altıncı sürümüdür. Ayrıca bitmap grafik editörü Gimp'te "Python" ("Pyton") kullanılır. Bununla birlikte, örneğin ek modüller, filtreler oluşturulur. Civilization IV ve Batterfield 2'nin çoğu bu dilde yazılmıştır.

Python, Google, Facebook, Instagram, Dropbox, Pinterest gibi şirketler tarafından kullanılmaktadır. Ayrıca Yandex Disk uygulamasının çekirdeğinde de çalışır. Şirket çalışanlarının yaklaşık %10'u Python'da yazıyor ve birçok programcı onu en sevdikleri dil olarak adlandırıyor.

nasıl başlanır

Hiçbir kod "havada" çalışamaz, Python programlama dili de bu kurala uyar. Sıfırdan öğrenmek, teori ile başlasa da, aslında diyebiliriz ki, kişisel bir bilgisayarda bir çalışma ortamının kurulmasıyla başlar. Nasıl yapılır? Çok basit: resmi Python web sitesinin bağlantısını izlemeniz, yükleyiciyi indirip çalıştırmanız ve ardından önerilen adımları dikkatlice izlemeniz gerekir.

Bilgisayarınızda kurulu işletim sistemine uygun bir dosya indirmeniz gerektiğini lütfen unutmayın!

Kurulum başarılı olduysa, konsolu açın (genellikle bu, "ctrl + alt + T" klavye kısayoluyla yapılabilir). Şimdi ilk programınızı yazabilirsiniz. Örneğin, "python3" girin. Konsol, programın sürümünün belirtildiği bir "tebrik" gösteriyorsa (örneğin, 3.4.0), o zaman her şey yolundadır, değilse, o zaman "Python" un üçüncü sürümünü şu komutla yüklemeniz gerekir: "sudo apt-get install python3".
Ancak bu gerekli değildir. Herhangi bir uygun metin düzenleyicide kod yazabilir ve ardından konsol üzerinden çalıştırabilir veya dağıtımla birlikte gelen IDLE geliştirme ortamını kullanabilirsiniz.

IDLE'yi başlatın. Küçük bir program oluşturmak için yalnızca bir satır kod gerekir.

print("Merhaba dünya!")

Bu kodu IDLE penceresine yazın ve enter tuşuna basın. Ortam anında bir eylemle yanıt verecek - gerekli metni ekranda gösterecek. İlk program hazır.

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 kullanan birçok programcıyı kendine çekmeyi başardı. projelerini hayata geçirmek.

Birçok programcı, diğer diller zaten aynı yetenekleri sağlayamayacağı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 dair bir inanç vardır, çünkü bu onun ufkunu genişletir, görevleri daha yaratıcı bir şekilde çözmesine ve işgücü piyasasındaki rekabet gücünü artırmasına izin verir.

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

Bir programcı yazılım geliştirme alanında yeni başlıyorsa, Python ideal bir "giriş" programlama dili olacaktır. Kısa 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”ın olmaması, OOP'ta hızlı bir şekilde ustalaşmanıza yardımcı olacaktır. Bu faktörler nedeniyle Python'un öğrenme eğrisi oldukça kısa olacak ve programcı vaka çalışmalarından ticari projelere geçebilecektir.

Bu nedenle, bu makalenin okuyucusu ister deneyimli bir programcı isterse 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ğrisinin üstesinden başarıyla gelmenize yardımcı olmak için tasarlanmıştır. İlk yazımızda Python'un temel özelliklerinden ve söz diziminden bahsedeceğiz. Gelecekte, özellikle Python'da nesne yönelimli programlama olmak üzere bu popüler dille çalışmanın daha karmaşık yönlerine bakacağız.

Python mimarisi

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

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 iyidir, çünkü sözdizimi ne kadar basitse, öğrenmesi o kadar kolay olur ve onu kullanma sürecinde o kadar az hata yaparsınız. 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 fakat 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 bir soyutlama seviyesine sahip bir dildir ve aynı miktarda bilgiyi daha az miktarda kaynak kodunda aktarmanıza izin verir.

Ayrıca Python genel amaçlı bir dildir, bu nedenle yazılım geliştirmenin 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 entegre olur ve 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 genişletme modülleridir. Standart Python genişletme modülleri, her yazılım geliştirme projesinde, dize ve metin işlemede, işletim sistemi ile 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 hızlı ve acısız bir şekilde aktarmanıza izin veren çapraz platform.

Gerekli işlevsellik Python standart kitaplığında değilse, daha sonra tekrarlanan kullanımı için kendi uzantı modülünüzü oluşturabilirsiniz. Burada Python için genişletme modüllerinin yalnızca Python'da değil, diğer programlama dilleri kullanılarak da oluşturulabileceğini belirtmekte fayda var. Bu durumda, karmaşık bilimsel hesaplamalar gibi kaynak yoğun görevlerin daha verimli bir şekilde uygulanması mümkün hale gelir, ancak genişletme modülü dili Python gibi platformlar arası 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 belirli platforma özel bir çalışma zamanı ortamıdır. Bu çalışma zamanı genellikle kaynak kodunu ve uygulamayı sürdürmek için gereken çeşitli yardımcı programları yürüten bir yorumlayıcı içerir - bir hata ayıklayıcı, ters derleyici vb.

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

Ş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 uygulanır.

CPython çalışma zamanı genellikle basitçe Python olarak anılır ve insanlar Python hakkında konuştuğunda en çok bu uygulamaya atıfta bulunulur. Bu uygulama, C ile 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, çeşitli işletim sistemleri için, OC Windows'un çeşitli sürümleri de dahil olmak üzere, çalışma zamanının halihazırda derlenmiş sürümleri vardır. ve çeşitli dağıtımlar.linux. Bu ve sonraki makalelerde, aksi ayrıca belirtilmedikçe CPython dikkate alınacaktır.

Jython çalışma zamanı, Java Sanal Makinesi (JVM) ile çalışmak için bir Python uygulamasıdır. 1.2.2 sürümünden başlayarak JVM'nin herhangi bir sürümü desteklenir (şu anki Java sürümü 1.6'dır). Jython, kurulu bir Java makinesi (Java çalışma zamanı ortamı) ve Java programlama dili hakkında biraz bilgi gerektirir. Java kaynak kodunun nasıl yazılacağını bilmeniz gerekmez, ancak JAR dosyalarına ve Java uygulamalarına ve ayrıca JavaDOC formatındaki belgelere aşina olmanız gerekir.

Hangi ortamın seçileceği yalnızca programcının tercihlerine bağlıdır, genel olarak, birbirleriyle çelişmedikleri, ancak birbirlerini tamamladıkları için hem CPython hem de Jython'un bilgisayarda tutulması önerilir. CPython ortamı daha hızlıdır çünkü JVM şeklinde ara katman yoktur; ek olarak, Python'un güncellenmiş sürümleri ilk olarak bir CPython ortamı olarak yayınlanı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ınlanmıştır, böylece hem ticari hem de özgür yazılım geliştirmek için kullanılabilirler. Python için çoğu uzantı modülü ayrıca 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ğunu bilmeniz gerekir.

Python'u kullanmaya başlama

Python'u kullanmaya başlamadan önce, çalışma zamanı ortamını kurmanız gerekir - bu makalede bu CPython ve buna bağlı olarak python yorumlayıcısıdır. Çeşitli kurulum yöntemleri vardır: ileri düzey kullanıcılar Python'u kendi genel kaynak kodundan 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 yorumlayıcısı önceden yüklenmiş. 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 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ı ile ayrılmalıdır).
  • PYTHONSTARTUP . 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.

Yorumlayıcı ile çalışmak için komut satırı aşağıdaki yapıya sahiptir.

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

Python Etkileşimli Modu

Yorumlayıcıyı bir komut veya komut dosyası belirtmeden başlatırsanız, etkileşimli modda çalışacaktır. Bu modda, bireysel komutları veya ifadeleri girebileceğiniz özel bir Python kabuğu başlatılır ve değerleri hemen hesaplanır. Bu, Python öğrenirken çok kullanışlıdır, çünkü belirli bir yapının doğruluğunu hemen kontrol edebilirsiniz.

Değerlendirilen ifadenin değeri, sonraki ifadelerde kullanılabilecek şekilde 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çeneklerin ardından, 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 bulunur. Bir komutun noktalı virgülle ayrılmış birkaç ifadeden oluşabileceğini ve işletim sisteminin onu yorumlayıcıya doğru bir şekilde iletebilmesi için tırnak 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 geçirilen parametrelerdir; programa dizeler olarak iletilir ve boşluklarla ayrılırlar.

Python'un düzgün ş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.

Düz metin dosyaları oldukları için Python komut dosyalarını 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 komut dosyaları, sözde mantıksal diziler, her biri sırayla oluşur fiziksel diziler. # sembolü yorumları belirtmek için kullanılır. Yorumlar ve boş satırlar yorumlayıcı tarafından yok sayılır.

Aşağıdaki, Python'u ikinci bir programlama dili olarak öğrenen programcılara garip gelebilecek çok önemli bir husustur. Buradaki nokta, Python'da, örneğin C++ veya Java'daki noktalı virgül (;) gibi, kaynak koddaki ifadeleri birbirinden ayırmaktan sorumlu hiçbir sembol olmamasıdır. Noktalı virgül, aynı fiziksel satırda olmaları durumunda birden çok talimatın ayrılmasına izin verir. Ayrıca, bir grup talimatı tek bir blokta birleştirmenize izin veren küme parantezleri () gibi bir yapı da yoktur.

Fiziksel dizeler, satır sonu karakterinin kendisiyle ayrılır, ancak ifade bir dize için çok uzunsa, iki fiziksel dize tek bir mantıksal dizede birleştirilebilir. Bunu yapmak için, ilk satırın sonunda bir ters eğik çizgi (\) girmeniz gerekir ve ardından sonraki satır yorumlayıcı tarafından ilk satırın devamı olarak yorumlanacaktır, ancak diğer karakterlerin bunu yapması 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 daha küçük girintili bir mantıksal satır göründüğünde blok 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öz diziminde diğer programlama dillerinden başka köklü bir fark yoktur. Çoğu programcılar tarafından zaten bilinen standart bir operatör ve anahtar kelime grubu 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 moddan bahseden 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 örneği, J'nin -1'in karekökü olduğu 1.5J veya 2j'dir). Python, tek, çift veya üçlü tırnak içine alınabilen dizeleri desteklerken, Java'daki gibi dizeler değişmez nesnelerdir, yani. yaratıldıktan sonra değerlerini değiştiremezler.

Ayrıca Python'da True ve False olmak üzere iki değer seçeneğine sahip bir mantıksal bool veri türü vardır. Ancak, Python'un eski sürümlerinde bu veri türü yoktu ve ayrıca herhangi bir veri türü True veya False boole değerine dönüştürülebilir. Sıfır olmayan tüm sayılar ve boş olmayan dizeler veya veri koleksiyonları True olarak, boş ve sıfır değerleri ise False olarak kabul edildi. 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 uyumluluğu korumanı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.

Bir demet, değişmez bir sıralı 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. Özel yerleşik işlev tuple(), belirli bir veri dizisinden tanımlama grupları oluşturmanıza olanak tanır.

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

Sözlük, bir öğeyi anahtar tanımlayıcısıyla birlikte saklayan bir karma tablodur. Öğelere sonraki erişim de anahtar tarafından 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şken ancak sıralı olmayan bir koleksiyondur, bu nedenle sözlükteki öğelerin sırası zamanla değişebilir. Sözlük küme parantezleri içinde 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.

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

Python'da Fonksiyonları Tanımlamak

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 gereksinimlere tabi olarak:

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

Gördüğünüz gibi def anahtar sözcüğü, 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 birkaç Python'a özgü şey var. Java'da olduğu gibi, ilkel değerler değere göre iletilir (parametrenin bir kopyası fonksiyona girer ve fonksiyon çağrılmadan önce ayarlanan değeri değiştiremez) ve karmaşık nesne türleri referansla iletilir (bir referans iletilir) işleve ve nesneyi iyi değiştirebilir).

Parametreler ya basitçe numaralandırma sırasına göre ya da isme göre iletilebilir, bu durumda, çağrı yaparken, varsayılan değerleri olan parametreleri belirtmeniz gerekmez, sadece zorunlu olanları iletmeniz veya parametreleri çağırırken parametrelerin sırasını değiştirmeniz gerekir. işlev:

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

Python'daki bir işlev, ya bir dönüş deyimi ve ardından dönüş değeri kullanarak açıkça bir değer döndürmeli ya da bir dönüş deyiminin yokluğunda, işlevin sonuna ulaşıldığında Yok sabitini 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 işlevde değer döndüren bir dönüş ifadesi varsa, diğer dönüş ifadeleri de vardır. bu fonksiyon değer döndürmelidir ve böyle bir değer no varsa, açıkça return None yazmalısınız.

İşlev çok basitse ve bir satırdan oluşuyorsa, 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 anonim bir işlevdir (kendi adı olmadan). Bu yaklaşım bazı durumlarda uygun olabilir, ancak bu tür işlevlerin yeniden kullanılmasının imkansız olduğunu belirtmekte fayda var (“doğduğunuz yerde kullanışlı oldu”).

Python'un özyineleme kullanımına yönelik 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ılır ve program durdurulur. Ancak gerektiğinde 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 de vardır, ancak bunlar, serideki sonraki makalelerde daha karmaşık örneklerle tartışılacaktır.

Ö piton("python" demek daha iyidir, bazıları "python" dese de) - bu çalışmanın konusu, bu programlama dilinin yaratıcısı Hollandalı Guido van Rossum, en iyi şekilde diyor ki:

"Python, dinamik semantik ile yorumlanmış, nesne yönelimli, üst düzey bir programlama dilidir. dinamik yazma ve bağlama, dili hızlı uygulama geliştirme (RAD, Hızlı Uygulama Geliştirme) için çekici kılar. Ayrıca, yazılım bileşenlerini bağlamak için bir betik dili olarak kullanılabilir. Python'un sözdizimini öğrenmesi kolaydır ve yazılım ürünlerinin bakım maliyetini azaltan kod okunabilirliğini vurgular. Python, modülleri ve paketleri destekleyerek modülerliği ve kodun yeniden kullanımını teşvik eder. Python yorumlayıcısı ve büyük standart kitaplık, tüm büyük platformlar için kaynak ve yürütülebilir kod olarak ücretsiz olarak mevcuttur ve yeniden dağıtılması ücretsizdir."

Çalışma sürecinde bu tanımın anlamı ortaya çıkacak ancak şimdilik Python'un evrensel bir programlama dili olduğunu bilmek yeterli. Avantaj ve dezavantajlarının yanı sıra uygulama alanlarına da sahiptir. Python, çok çeşitli görevler için kapsamlı bir standart kitaplıkla birlikte gelir. Python için kaliteli kitaplıklar İnternette çeşitli konu alanlarında mevcuttur: kelime işlem araçları ve İnternet teknolojileri, görüntü işleme, uygulama oluşturma araçları, veritabanı erişim mekanizmaları, bilimsel bilgi işlem paketleri, GUI oluşturma kitaplıkları, vb. Ayrıca Python, C, C++ (ve Java) ile hem tercümanı bu dillerdeki programlara gömerek hem de tam tersi, Python programlarında bu dillerde yazılmış kitaplıkları kullanarak entegrasyon için oldukça basit araçlara sahiptir. Python dili birkaç paradigmalar programlama: zorunlu (yordamsal, yapısal, modüler yaklaşımlar), nesne yönelimli ve işlevsel programlama.

Python'un yazılım ürünleri (ve prototipleri) oluşturmak için bütün bir teknoloji olduğunu düşünebiliriz. Hemen hemen tüm modern platformlarda (hem 32-bit hem de 64-bit) bir C derleyicisi ve Java platformunda kullanılabilir.

Yazılım endüstrisinde C/C++, Java, Visual Basic, C# dışında hiçbir şeye yer yok gibi görünebilir. Ancak öyle değil. Belki de bu dersler ve pratik alıştırmalar sayesinde Python, vazgeçilmez bir araç haline geleceği yeni taraftarlara sahip olacak.

Dil nasıl tarif edilir?

Bu dersin amacı Python'u sistematik olarak açıklamak değildir: Bunun için orijinal bir referans kılavuzu vardır. Burada, katı bir akademik yaklaşım durumundan daha hızlı bir şekilde gerçek programlamaya katılmanıza izin verecek bir dizi örnekle elde edilen dili aynı anda birkaç açıdan ele almanız önerilir.

Ancak, dili tanımlamak için doğru yaklaşıma dikkat etmeye değer. Bir programın oluşturulması her zaman, programcının bilgisayara eylemleri gerçekleştirmesi için gerekli bilgileri ilettiği bir iletişimdir. Programcının bu eylemleri anlama şekli (yani "anlam") şu şekilde adlandırılabilir: anlambilim. Bu anlamı aktarmanın yolu, sözdizimi Programlama dili. Eh, tercümanın geçirilenlere dayanarak yaptığı şeye genellikle denir. pragmatik. Program yazarken bu zincirde herhangi bir arıza olmaması çok önemlidir.

Sözdizimi tamamen resmileştirilmiş bir kısımdır: şurada açıklanabilir: resmi dil sözdizimi diyagramları (referans kılavuzlarında yapılan şeydir). Pragmatiğin ifadesi, dil yorumlayıcısının kendisidir. Sözdizimine göre yazılan "mesajı" okuyan ve içine yerleştirilmiş algoritmaya göre eylemlere dönüştüren kişidir. Yalnızca semantik, gayri resmi bir bileşen olarak kalır. Programlamanın en büyük karmaşıklığı anlamın resmi bir açıklamaya çevrilmesinde yatmaktadır. Python dilinin sözdizimi, programcının bir sorunu anlamasını yorumlayıcı tarafından "anlayışına" yaklaştırmaya yardımcı olan güçlü özelliklere sahiptir. Python'un iç yapısı, son derslerden birinde tartışılacaktır.

Python Dilinin Tarihi

Python, 1991 yılında Amip dağıtılmış işletim sistemi üzerinde çalışırken Guido van Rossum tarafından başlatıldı. Sistem çağrıları için destek sağlayacak genişletilebilir bir dile ihtiyacı vardı. ABC ve Modula-3 esas alınmıştır. BBC komedi dizisi Monty Python's Flying Circus'tan sonra yılanın adı yerine Python'u seçti. O zamandan beri Python, Guido'nun çalıştığı kuruluşların desteğiyle gelişti. Dil, yalnızca yaratıcılardan oluşan bir ekibin değil, aynı zamanda dünyanın her yerinden bütün bir programcı topluluğunun üzerinde çalıştığı şu anda özellikle aktif olarak geliştirilmektedir. Yine de dil gelişiminin yönüne ilişkin son söz Guido van Rossum'a aittir.

Bu materyal, programlamaya zaten aşina olan ve Python programlama dilini öğrenmek isteyenler için hazırlanmıştır. Python dilinin özelliklerini, söz dizimi özelliklerini ve Python ile çalışmanın temel ilkelerini 10 dakikada örneklerle göstermek için tasarlanmıştır. Burada "su" yoktur - doğrudan programlama dili ile 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 gerçeğiyle ayırt edilir, örneğin, bir diziden bir küme çıkarmanın imkansız olması) , dinamik yazma kullanılır - tüm türler program yürütme sırasında zaten bulunur.

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ı bilmek istiyorsanız, yardımı arayın( ). Ayrıca, bir nesnenin tüm yöntemlerini ve nesnelerin özelliklerini gösteren dir() yararlı bir talimattır. .__doc__ , size belge dizisini gösterecek:

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

Python Sözdizimi

Python'da blok biten yapılar yoktur (örneğin bir sınıf veya işlev bildirimi gibi) - bloklar girinti kullanılarak tanımlanır. Bloğun başındaki girintiyi artırın, bloğun sonunda azaltın. Girinti gerektiren ifadeler iki nokta üst üste (:) ile sonlandırılır. Block start ifadesinden sonra herhangi bir kodunuz yoksa, sözdizimi kontrolünden geçmek için bir pass ifadesi ekleyin.

Rangelist == 1: iken

Tek satırlı yorumlar bir kare (#) ile başlar, çok satırlı yorumlar yorumun başında ve sonunda (""") kullanır.

Değerler eşittir işareti ("=") kullanılarak atanır (aslında, nesnelere süreçte 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ışın / azalışın gerçekleşeceği değeri belirleyebilirsiniz. Bu, dizeler de dahil olmak üzere Python'daki birçok veri türüyle çalışır.

Aynı satırda birden fazla 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 dizeyi birleştirir.""" >>> mystring = "Merhaba" >>> mystring += "dünya." >>> mystring'i yazdır Merhaba dünya. # Bu, değişkenleri bir satırda değiştirir(!). # Güçlü yazmayı ihlal etmez çünkü değerler aslında # atanmaz, ancak yeni nesneler eski adlara # bağlıdır. >>> myvar, mystring = mystring, myvar

Python'da Veri Türleri

Python'da listeler (listeler), demetler (tupler) ve sözlükler (sözlükler) gibi veri türleri mevcuttur. Python 2.5'ten önceki sürümlerde set modülünü kullanan ve sonraki sürümlerde dilde yerleşik olarak bulunan setler 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.

Tuple'lar değişmez tek boyutlu dizilerdir.

Python'daki "diziler" herhangi bir türde olabilir, yani sayıları, dizileri ve diğer veri türlerini listelerde/sözlüklerde/tuplelerde 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 maddeye bakıyoruz >>> 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

İki nokta üst üste (:) kullanarak bir diziyi (liste veya demet) dilimleyebilirsiniz. Dizinin ilk değerini boş bırakmak size ilk değerden başlamanızı söyleyecektir, dizinin sonunun boş değeri dizinin son öğesini varsayar. Negatif dizinler dizinin sonundan geriye doğru sayılır (-1 son öğeyi gösterir).

Örneklere bakın:

>>> mylist = ["List item 1", 2, 3.14] >>> mylist'i yazdır[:] ["List item 1", 2, 3.1400000000000001] >>> mylist'i yazdır ["List item 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ışlarıyla Python adımına sahip olacaktır. # Ör. , bu ilk öğeyi döndürür, ardından üçüncü öğeye gider ve # döndürür (yani, 0-indekslemede 0 ve 2 öğeleri). >>> listemi yazdır[::2] ["Liste öğesi 1", 3.14]

Python'da Dizeler

Bir dizgiyi belirtmek için kesme işareti (') veya çift tırnak (çift tırnak - “) kullanılabilir. Bu nedenle, kesme işaretiyle gösterilen bir dizenin içinde tırnak işaretleri olabilir (örn. 'Merhaba dedi.' geçerli bir dizedir).

Çok satırlı dizeler, üçlü kesme işareti veya tırnak işaretleri (""") kullanılarak gösterilir. Python, kutudan çıktığı haliyle unicode'u destekler. Ancak, Python'un ikinci sürümü, unicode içeren bir dizeyi belirtmek için (u) karakterini kullanır: u"Bu bir unicode dize". 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 dizesidir".

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

>>>print "Ad: %s\ Numara: %s\ Dize: %s" % (sınıfım.name, 3, 3 * "-") Ad: Poromenos Numarası: 3 Dize: --- strString = """ Bu çok satırlı bir dizedir.""" # UYARI: "%(key)s" içindeki sondaki s'ye dikkat edin. >>> "Bu %(fiil)s bir %(noun)s" yazdırın. % ("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. Python'da bunun yerine kullanılıyorsa, anahtar veya durum yoktur. For, bir listenin (veya demetin) öğelerini yinelemek için kullanılır. Bir sayı dizisi elde etmek için aralık( ) . Break, döngünün çalışmasını bozmak 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: # Sayının, demet içindeki # sayılardan biri olup olmadığını kontrol edin. (3, 4, 7, 9)'daki sayı ise: # "Break", "else" yan tümcesini # yürütmeden for'yu sonlandırır. break else: # "Continue", 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ü "bozulmadıysa" yürütülür. pass # rangelist == 2: 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 "Dunno" iken rangelist == 1: pass

Python'daki Fonksiyonlar

İşlevler "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, isteğe bağlı argümanlardan bazılarını atlayarak veya fonksiyonda bildirilenden farklı bir sıraya yerleştirerek, adlarını ve değerlerini belirterek argümanları iletebilirsiniz.

İşlevler bir demet döndürebilir ve demet açmayı kullanarak birden çok 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ı yoluyla iletilir. Geçilen listeye eleman ekleyerek, fonksiyonun dışında güncellenmiş bir liste alacaksınız. Bu durumda, fonksiyon içindeki parametrelere yeni bir değer atamak yerel bir eylem olarak kalacaktır. Yalnızca bellek konumu aktarıldığından, bir parametreye değişken olarak yeni bir nesne atamak, yeni bir nesnenin oluşturulmasına neden olur.

Kod örnekleri:

# def funcvar(x) ile aynı: dönüş 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ğerlere sahiptirler # eğer geçilmezse ( 2 ve sırasıyla "Varsayılan bir dize"). def pass_example(a_list, an_int=2, a_string="Varsayılan bir dize"): a_list.append("Yeni bir öğe") an_int = 4 a_list, an_int, a_string >>> my_list = >>> my_int = 10 >> > pass_example(my_list, my_int) (, 4, "Varsayılan bir dize") >>> my_list >>> my_int 10 yazdır

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 adın sonunda birden fazla alt çizgi (örneğin: "__spam") kullanılarak bildirilebilir (geleneksel olarak, bu yorumlayıcı tarafından kontrol edilmez).

Ayrıca sınıf örneklerine rastgele isimler de atayabiliriz. Örnekleri görüntüleyin:

SınıfımSınıf(nesne): common = 10 def __init__(self): self.myvariable = 3 def myfunction(self, arg1, arg2): return self.myvariable # Bu, sınıf örneğidir >>> classinstance = MyClass() >> > classinstance.myfunction(1, 2) 3 # Bu değişken tüm sınıflar tarafından paylaşılır. >>> classinstance2 = MyClass() >>> 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ğlayacaktır. >>> classinstance.common = 10 >>> classinstance.common 10 >>> classinstance2.common 30 >>> MyClass.common = 50 # "Common" artık bir örnek değişkeni olduğu için bu değişmedi. >>> classinstance.common 10 >>> classinstance2.common 50 # Bu sınıf MyClass'tan miras alır. Yukarıdaki örnek # sınıfı "nesne"den miras alır, bu da # onu "yeni stil sınıf" yapan şey yapar. # Çoklu kalıtım şu şekilde bildirilir: # class OtherClass(MyClass1, MyClass2, MyClassN) class OtherClass(MyClass): # "self" argümanı otomatik olarak iletilir # ve sınıf örneğine atıfta bulunur, böylece # örnek değişkenlerini yukarıdaki gibi ayarlayabilirsiniz, ancak class.def __init__(self, arg1): self.myvariable = 3 print arg1 >> > classinstance = OtherClass("merhaba") 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 classinstance üyesi olacağına dikkat edin. >>> classinstance.test = 10 >>> classinstance.test 10

Python'daki İstisnalar

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

Def some_function(): deneyin: # Sıfıra bölme, ZeroDivisionError dışında bir 10 / 0 istisnasını yükseltir: "Hata, geçersiz." else: # İstisna oluşmadı, iyiyiz. nihayet geç: # Bu, kod bloğu çalıştırıldıktan # ve işleme sırasında yeni bir istisna oluşturulsa bile # tüm istisnalar işlendikten sonra yürütülü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 aktarmadan da kullanabilirsiniz.

Zamandan rastgele içe aktar, saat randomint içe aktar = 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 (verileri turşu kitaplığıyla dizelere dönüştürme):

Import pickle mylist = ["This", "is", 4, 13327] # Yazmak için C:\\binary.dat dosyasını açın. # dosya adı dizesinden önceki r harfi, ters eğik çizgi kaçmasını önlemek için kullanılır. myfile = open(r"C:\\binary.dat", "w") pickle.dump(mylist, myfile) myfile.close() myfile = open(r"C:\\text.txt", "w" ) myfile.write("Bu bir örnek dizedir") myfile.close() myfile = open(r"C:\\text.txt") >>> print myfile.read() "Bu bir örnek dizedir" myfile .close() # Dosyayı okumak için açın. myfile = open(r"C:\\binary.dat") loadlist = pickle.load(myfile) myfile.close() >>> load list yazdır ["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 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 true değerini döndürür. >>> any(]) True # Bunun nedeni %4 3 = 1 ve 1'in doğru olmasıdır, dolayısıyla 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çeride özel bildirimler olmadan okunabilir, ancak bunları yazmak istiyorsanız, fonksiyonun başlangıcından özel "global" anahtar sözcüğünü kullanarak bildirmelisiniz, aksi takdirde Python yeni bir değer atayacaktır. yerel değişkene:
sayı = 5 def myfunc(): # Bu, 5 yazdıracaktır. print number def otherfunc(): # Değişken yazdırmadan önce # bağlanmadığı için bu bir istisna oluşturur. Python, bir # nesnesinin daha sonra kendisine bağlanacağını bilir ve global olana erişmek yerine yeni, yerel bir # nesnesi oluşturur. print number number = 3 def yetanotherfunc(): global sayı # Bu, globali doğru şekilde değiştirecektir. sayı = 3

Python programlama dili nasıl öğrenilir

Bu materyal, Python için kapsamlı bir rehber olduğunu iddia etmez. 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 Python'u Zor Yoldan Öğrenin'i öneriyorum. Ve tabii ki Python 2 Eğitimi ve Python 3 Eğitimi.

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

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

Dil sözdizimi piton Perl, C ve Java gibi dillerin söz dizimine birçok yönden benzer, ancak aynı zamanda bu programlama dillerinden bir takım farklılıkları vardır. Bu yazımızda gerekli temel bilgiler Bugün nasılsın? Programlama dili.

İlk Python programı:

Öncelikle belirtmek gerekir ki, üzerinde piton iki modda programlayabilirsiniz: etkileşimli ve yazılı

Etkileşimli programlama modu:

Bir dosya adını argüman olarak iletmeden çalışacaktır. Python yorumlayıcısı:

İstem satırından sonra aşağıdaki metni girin piton ve Enter'a basın:

>>> "Merhaba Python!" yazdır

Her şeyi doğru yaptıysanız, tercüman şu satırı yayınlayacaktır:

Bir hata alırsanız, kodu doğru bir şekilde yeniden yazdığınızdan ve 2.x yorumlayıcısını kullandığınızdan emin olun (sürüm 3.x için print ("Merhaba, Python") komutunu kullanmalısınız)

Komut dosyası programlama modu:

Python komut satırında çalıştır dosyanın adı (komut dosyası da denir) ile parametre olarak, bu dosyada yazılan kodu çalıştırmaya başlayacaktır. Komut dosyasının yürütülmesi tamamlandıktan sonra yorumlayıcı tekrar etkin olmayacaktır.

Basit bir komut dosyası programı oluşturalım piton. Herhangi bir metin düzenleyiciyi açın (Sublime, Notepad++, gedit...), içinde test adı ve .py uzantısıyla bir dosya oluşturun (tüm dosyalar piton bir uzantısı olmalı .py) ve zaten aşina olduğumuz kodu bu dosyaya yazıp dosyayı kaydedin:

"Merhaba Python!" Yazdır

(varsayılan Python yorumlayıcısı PATH değişkeninde ayarladınız, yani yorumlayıcıyı başlatmak için herhangi bir dizine python girebilirsiniz)

Bundan sonra, komut istemine aşağıdaki satırı girin ve Enter tuşuna basın:

Python'daki tanımlayıcılar:

Python'da tanımlayıcılar bir değişkene, fonksiyona, sınıfa, modüle veya başka bir nesneye atıfta bulunmak için kullanılan isimlerdir. Tanımlayıcı bir harf (a'dan Z'ye) veya alt çizgi (_) ile başlamalı, ardından herhangi bir sayıda harf, alt çizgi ve sayı (0'dan 9'a) gelmelidir.

AT piton@, $ veya % gibi noktalama işaretlerine veya özel karakterlere tanımlayıcı olarak izin verilmez. Ayrıca, piton büyük/küçük harfe duyarlı, yani kedi ve kedi ikisi farklı isimlerdir.

Python, tanımlayıcıları adlandırmak için aşağıdaki kurallara sahiptir:

  • Sınıf adları büyük harfle başlar, diğer tüm tanımlayıcılar küçük harfle başlar.
  • Bir tanımlayıcının ilk karakteri olarak bir alt çizgi kullanılması, verilen tanımlayıcının özel olduğu (sınıf dışında kullanımdan güvenli) anlamına gelir.
  • Bir tanımlayıcı iki alt çizgi ile başlıyor ve bitiyorsa (örneğin __init__), dil içinde tanımlanmış özel bir isim olduğu anlamına gelir.

Python'da ayrılmış (anahtar kelime) kelimeler:

Bu tablo hepsini içerir Python anahtar kelimeleri.

ve elif Eğer Yazdır
gibi başka içe aktarmak artırmak
iddia etmek dışında içinde dönüş
kırmak yürütmek dır-dir denemek
sınıf Sonunda lambda süre
devam etmek için olumsuzluk hangisi
tanım itibaren veya teslim olmak
del küresel geçmek

Bu ayrılmış sözcükler, bir değişken adı veya başka bir tanımlayıcı olarak kullanılamaz. Herşey Python anahtar kelimeleri sadece küçük harflerden oluşur. komutu ile yorumlayıcıda anahtar kelimelerin bir listesini almak mümkündür.

Yardım("anahtar kelimeler")

Çizgiler ve girintiler:

İlk özelliklerden biri piton Bu programlama dilini öğrenmeye başlayan programcıların dikkatini çeken şey, tek tek kod bloklarını belirtmek için parantez kullanmamasıdır. Onların yerine piton iki nokta üst üste ve girinti kullanılır.

Girintilerdeki boşluk sayısı isteğe bağlıdır ve herkes tarafından kendi takdirine bağlı olarak seçilir, ancak anlaşma ile dört boşluğa eşittir. Bu durumda, tüm bloğun girintisi aynı olmalıdır.

Örneğin, bu kod bloğu çalışacaktır (ancak bunu böyle yazmamalısınız):

Doğruysa: "Merhaba" yazdır, yoksa "Güle" yazdır

Bu bir hata verecektir:

Doğruysa: "Merhaba" yazdır "Hoşçakal" yazdır

Böylece, piton aynı girintiye sahip birden çok kod satırı, ayrı bir kod bloğu oluşturacaktır. Böyle bir sistem sayesinde kodun okunabilirliği büyük ölçüde artırılır ve yazma alışkanlığı net ve yapılandırılmış olur.

Çok satırlı ifadeler:

Python'daki ifadeler genellikle yeni bir satırla biter. Ancak bu programlama dilinde, kodun satırın sonuyla bitmediğini gösteren özel bir satır sonu karakteri (\) vardır. Örneğin:

Toplam = item1 + \item2 + \item3

Köşeli parantezler ((), küme parantezleri (( )) veya yuvarlak parantezler (()) içindeki ifadelerin satır sonu karakterine ihtiyacı yoktur. Örneğin:

Günler = ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"]

Python'da Alıntılar:

AT piton Bir dize veri türünü belirtmek için tek ("), çift ("") ve üçlü (""" veya """) tırnak işaretleri kullanabilirsiniz ve dize aynı tırnak işaretleri ile başlamalı ve bitmelidir. Birden çok kod satırını kapsayan bir dize, üçlü tırnak içine alınmalıdır. Örneğin:

Ad = "wasd" açıklama = "Biraz metin" biyografi = """ Birkaç satır kod için biraz uzun metin """

Sorularım var?

Yazım hatası bildir

Editörlerimize gönderilecek metin: