Python nedir? Güçlü, sezgisel programlama

1991'den kalma, Python programlama dili bir boşluk doldurucu, "sıkıcı şeyleri otomatikleştiren" komut dosyaları yazmanın bir yolu (Python öğrenmek üzerine popüler bir kitabın dediği gibi) veya diğer dillerde uygulanacak hızlı prototip uygulamaları olarak kabul edildi. .

Bununla birlikte, geçtiğimiz birkaç yılda Python, modern yazılım geliştirme, altyapı yönetimi ve veri analizinde birinci sınıf bir vatandaş olarak ortaya çıktı. Artık bir arka oda yardımcı dili değil, web uygulaması oluşturma ve sistem yönetiminde büyük bir güç ve büyük veri analitiği ve makine zekasındaki patlamanın temel itici gücüdür.

İlgili video: Python programlamayı nasıl kolaylaştırır?

BT için mükemmel olan Python, sistem otomasyonundan makine öğrenimi gibi son teknoloji alanlarda çalışmaya kadar pek çok işi basitleştirir.

Python'un temel avantajları 

Python'un başarısı, hem yeni başlayanlar hem de uzmanlar için sağladığı çeşitli avantajlar etrafında dönüyor.

Python öğrenmesi ve kullanması kolaydır

Dilin kendisindeki özelliklerin sayısı mütevazıdır ve ilk programlarınızı oluşturmak için nispeten az zaman veya çaba gerektirir. Python sözdizimi okunabilir ve anlaşılır olacak şekilde tasarlanmıştır. Bu basitlik, Python'u ideal bir öğretim dili yapar ve yeni gelenlerin bunu hızlı bir şekilde öğrenmesini sağlar. Sonuç olarak, geliştiriciler çözmeye çalıştıkları problem hakkında düşünmeye daha fazla, dil karmaşıklıkları hakkında düşünmeye veya başkaları tarafından bırakılan kodu çözmeye daha az zaman harcarlar.

Python geniş çapta benimsenir ve desteklenir

Tiobe Index gibi anketlerdeki yüksek sıralamalar ve Python kullanan çok sayıda GitHub projesi olduğu için Python hem popüler hem de yaygın olarak kullanılmaktadır. Python her büyük işletim sistemi ve platformda ve çoğu küçük işletim sisteminde çalışır. Birçok büyük kitaplık ve API destekli hizmet, Python bağlamalarına veya sarmalayıcılara sahiptir, bu da Python'un bu hizmetlerle serbestçe arabirim oluşturmasına veya bu kitaplıkları doğrudan kullanmasına izin verir. 

Python bir "oyuncak" dil değildir

Komut dosyası oluşturma ve otomasyon, Python'un kullanım durumlarının büyük bir bölümünü kapsasa da (bundan sonra daha fazlası), Python, hem bağımsız uygulamalar hem de web hizmetleri olarak profesyonel kalitede yazılım oluşturmak için de kullanılır. Python en hızlı dil olmayabilir , ancak hızdan yoksun olduğu şeyi çok yönlülükle telafi ediyor.

Python ilerlemeye devam ediyor

Python dilinin her revizyonu, modern yazılım geliştirme uygulamalarına ayak uydurmak için yararlı yeni özellikler ekler. Örneğin, eşzamansız işlemler ve eşzamanlı ifadeler artık dilin standart parçalarıdır ve eşzamanlı işlem gerçekleştiren Python uygulamalarının yazılmasını kolaylaştırır.

Python ne için kullanılır?

Python için en temel kullanım durumu, bir komut dosyası oluşturma ve otomasyon dilidir. Python, yalnızca kabuk komut dosyalarının veya toplu iş dosyalarının yerine geçmez; aynı zamanda web tarayıcıları veya uygulama GUI'leri ile etkileşimleri otomatikleştirmek veya Ansible ve Salt gibi araçlarda sistem sağlama ve yapılandırma yapmak için kullanılır. Ancak komut dosyası oluşturma ve otomasyon, Python ile buzdağının yalnızca görünen kısmını temsil eder.

G Python ile enel uygulama programlama

Python ile hem komut satırı hem de platformlar arası GUI uygulamaları oluşturabilir ve bunları kendi kendine yeten yürütülebilir dosyalar olarak dağıtabilirsiniz. Python, bir komut dosyasından bağımsız bir ikili dosya oluşturma yeteneğine sahip değildir, ancak cx_Freeze ve PyInstaller gibi üçüncü taraf paketleri bunu başarmak için kullanılabilir.

Python ile veri bilimi ve makine öğrenimi

Sofistike veri analizi, BT'nin en hızlı hareket eden alanlarından biri ve Python'un yıldız kullanım örneklerinden biri haline geldi. Veri bilimi veya makine öğrenimi için kullanılan kitaplıkların büyük çoğunluğu Python arabirimlerine sahiptir ve bu, dili makine öğrenimi kitaplıkları ve diğer sayısal algoritmalar için en popüler üst düzey komut arabirimi haline getirir.

Python'da web hizmetleri ve RESTful API'ler

Python'un yerel kitaplıkları ve üçüncü taraf web çerçeveleri, birkaç satır kodda basit REST API'lerinden tam gelişmiş, veri odaklı sitelere kadar her şeyi oluşturmak için hızlı ve kullanışlı yollar sağlar. Python'un en son sürümleri, zaman uyumsuz işlemler için güçlü desteğe sahiptir ve sitelerin doğru kitaplıklarla saniyede on binlerce isteği işlemesine izin verir.

Python'da meta programlama ve kod oluşturma

Python'da, dildeki her şey, Python modülleri ve kitaplıkların kendileri de dahil olmak üzere bir nesnedir. Bu, Python'un oldukça verimli bir kod oluşturucu olarak çalışmasını sağlayarak, kendi işlevlerini değiştiren ve diğer dillerde çıkarılması zor veya imkansız olan bir tür genişletilebilirliğe sahip uygulamalar yazmayı mümkün kılar.

Python, diğer dillerde verimli bir şekilde kod oluşturmak için LLVM gibi kod oluşturma sistemlerini çalıştırmak için de kullanılabilir.

Python'da "Glue code"

Python genellikle bir "tutkal dili" olarak tanımlanır, yani farklı kodların (tipik olarak C dili arayüzlü kütüphaneler) birlikte çalışmasına izin verebilir. Veri bilimi ve makine öğreniminde kullanımı bu damarda, ancak bu genel fikrin yalnızca bir cisimleşmiş hali. Bağlamak istediğiniz uygulamalarınız veya program alanlarınız varsa, ancak birbirinizle doğrudan konuşamıyorsanız, bunları bağlamak için Python'u kullanabilirsiniz.

Python'un yetersiz kaldığı yer

Ayrıca Python'un pek uygun olmadığı görevler de dikkate değerdir .

Python üst düzey bir dildir, bu nedenle sistem düzeyinde programlama için uygun değildir — aygıt sürücüleri veya işletim sistemi çekirdekleri görünmezdir.

Ayrıca, platformlar arası bağımsız ikili dosyalar gerektiren durumlar için ideal değildir . Windows, MacOS ve Linux için bağımsız bir Python uygulaması oluşturabilirsiniz, ancak zarif veya basit değil.

Son olarak, uygulamanın her alanında hız mutlak bir öncelik olduğunda Python en iyi seçim değildir. Bunun için, C / C ++ veya o kalibreye ait başka bir dil kullanmak daha iyidir.

Python programlamayı nasıl basitleştirir

Python'un sözdiziminin küçük bir iddiayla okunabilir ve temiz olması amaçlanmıştır. Python 3.x'te standart bir "merhaba dünya" şunlardan başka bir şey değildir:

print ("Merhaba dünya!")

Python, birçok ortak program akışını kısaca ifade etmek için birçok sözdizimsel öğe sağlar. Bir metin dosyasındaki satırları bir liste nesnesine okumak için örnek bir program düşünün, her satırını sonlanan satırsonu karakterini yol boyunca ayırın:

my_file olarak open ('myfile.txt') ile:

    file_lines = [x.rstrip ('\ n') dosyamdaki x için]

with/asYapı, bir bağlama yöneticisi bir kod bloğu için bir nesne oluşturmak ve daha sonra blok dışarıdan bunu imha etmek için etkili bir yol sağlar. Bu durumda nesne, işlevle my_filesomutlaştırılır open() . Bu, dosyayı açmak, ondan tek tek satırları okumak ve ardından kapatmak için birkaç ortak metin satırının yerini alır.

[x … for x in my_file]İnşaat Başka Python idiyosenkrazi olduğu liste anlama . Diğer öğeleri (burada my_fileve içerdiği satırlar) içeren bir öğenin yinelenmesini sağlar ve yinelenen her öğenin (yani her birinin x) işlenmesini ve bir listeye otomatik olarak eklenmesini sağlar.

Sen olabilir resmi olarak böyle bir şey yazmak for… başka bir dilde yapacağı gibi, Python döngü. Mesele şu ki Python, birden çok nesne üzerinde yinelenen ve döngüdeki her bir öğe üzerinde basit bir işlem gerçekleştiren döngüler gibi şeyleri ekonomik olarak ifade etmenin veya açık örnekleme ve elden çıkarma gerektiren şeylerle çalışmanın bir yoluna sahip olmasıdır.

Bunun gibi yapılar, Python geliştiricilerinin anlaşılırlığı ve okunabilirliği dengelemesini sağlar.

Python'un diğer dil özelliklerinin yaygın kullanım durumlarını tamamlaması amaçlanmıştır. Çoğu modern nesne türü - örneğin Unicode dizeleri - doğrudan dile yerleştirilmiştir. Veri yapıları - listeler, sözlükler (yani karma haritalar veya anahtar-değer depoları), tuple'lar (değişmez nesne koleksiyonlarını depolamak için) ve setler (benzersiz nesnelerin koleksiyonlarını depolamak için) - standart sayı öğeleri olarak mevcuttur.

Python 2 ve Python 3

Python, birçok yeni kullanıcıyı ayağa kaldıracak kadar farklı olan iki sürümde mevcuttur. Eski "eski" dal olan Python 2.x 2020'ye kadar desteklenmeye (yani resmi güncellemeleri almaya) devam edecek ve bundan sonra da resmi olmayan bir şekilde devam edebilir. Dilin mevcut ve gelecekteki enkarnasyonu olan Python 3.x, yeni sözdizimi özellikleri (örneğin, "mors operatörü"), daha iyi eşzamanlılık kontrolleri ve daha fazlası gibi Python 2.x'te bulunmayan birçok yararlı ve önemli özelliğe sahiptir. verimli tercüman.

Python 3'ün benimsenmesi, üçüncü taraf kitaplık desteğinin göreli eksikliği nedeniyle en uzun süre yavaşladı. Çoğu Python kitaplığı yalnızca Python 2'yi desteklediğinden geçiş yapmayı zorlaştırır. Ancak son birkaç yılda, yalnızca Python 2'yi destekleyen kitaplıkların sayısı azaldı; en popüler kitaplıkların tümü artık hem Python 2 hem de Python 3 ile uyumludur. Bugün, Python 3 yeni projeler için en iyi seçimdir; Başka seçeneğiniz yoksa Python 2'yi seçmeniz için hiçbir neden yoktur. Python 2 ile sıkışıp kaldıysanız, emrinizde çeşitli stratejileriniz vardır.

Python kütüphaneleri

Python'un başarısı, birinci ve üçüncü taraf yazılımlardan oluşan zengin bir ekosisteme dayanır. Python, hem güçlü bir standart kitaplıktan hem de üçüncü taraf geliştiricilerden kolayca elde edilen ve kolayca kullanılan çok çeşitli kitaplıklardan yararlanır. Python, onlarca yıllık genişleme ve katkı ile zenginleştirilmiştir.

Python'un standart kitaplığı, matematik, dizi işleme, dosya ve dizin erişimi, ağ oluşturma, eşzamansız işlemler, iş parçacığı oluşturma, çoklu işlem yönetimi vb. Gibi ortak programlama görevleri için modüller sağlar. Ancak, modern uygulamaların ihtiyaç duyduğu ortak, üst düzey programlama görevlerini yöneten modülleri de içerir: JSON ve XML gibi yapılandırılmış dosya biçimlerini okuma ve yazma, sıkıştırılmış dosyaları değiştirme, internet protokolleri ve veri biçimleriyle çalışma (web sayfaları, URL'ler, e-posta). C uyumlu bir yabancı işlev arayüzünü ortaya çıkaran çoğu harici koda Python ctypesmodülü ile erişilebilir .

Varsayılan Python dağıtımı ayrıca Tkinter aracılığıyla temel ama kullanışlı, çapraz platformlu bir GUI kitaplığı ve SQLite 3 veritabanının gömülü bir kopyasını sağlar.

Python Paket Dizini (PyPI) aracılığıyla sunulan binlerce üçüncü taraf kitaplığı, Python'un popülaritesi ve çok yönlülüğü için en güçlü vitrini oluşturur.

Örneğin:

  • BeautifulSoup kitaplığı, HTML'yi (karmaşık, bozuk HTML'yi bile) kazımak ve ondan veri çıkarmak için hepsi bir arada bir araç kutusu sağlar.
  • İstekler, HTTP istekleriyle çalışmayı sorunsuz ve basit hale getirir.
  • Flask ve Django gibi çerçeveler, hem basit hem de gelişmiş kullanım durumlarını kapsayan web hizmetlerinin hızlı gelişimine izin verir.
  • Python'un nesne modeli aracılığıyla Apache Libcloud kullanılarak birden fazla bulut hizmeti yönetilebilir.
  • NumPy, Pandas ve Matplotlib, matematik ve istatistiksel işlemleri hızlandırır ve verilerin görselleştirilmesini kolaylaştırır.

Python'un ödünleri

C #, Java ve Go gibi, Python da çöp toplanmış bellek yönetimine sahiptir, yani programcının nesneleri izlemek ve serbest bırakmak için kod uygulaması gerekmez. Normalde, çöp toplama arka planda otomatik olarak gerçekleşir, ancak bu bir performans sorunu oluşturuyorsa, bunu manuel olarak tetikleyebilir veya tamamen devre dışı bırakabilir ya da bir performans iyileştirmesi olarak çöp toplamadan muaf nesnelerin tüm bölgelerini bildirebilirsiniz.

Python'un önemli bir yönü dinamizmidir . Dildeki her şey, işlevler ve modüller dahil, nesneler olarak ele alınır. Bu hız pahasına gelir (bundan sonra daha fazlası), ancak üst düzey kod yazmayı çok daha kolay hale getirir. Geliştiriciler, yalnızca birkaç talimatla karmaşık nesne manipülasyonları gerçekleştirebilir ve hatta bir uygulamanın bazı kısımlarını gerektiğinde değiştirilebilecek soyutlamalar olarak ele alabilir.

Python'un önemli boşlukları kullanması, hem Python'un en iyi hem de en kötü özelliklerinden biri olarak gösterildi. Aşağıdaki ikinci satırdaki girinti sadece okunabilirlik için değildir; Python'un sözdiziminin bir parçasıdır. Python yorumlayıcıları, kontrol akışını belirtmek için uygun girinti kullanmayan programları reddeder.

my_file olarak open ('myfile.txt') ile:

    file_lines = [x.rstrip ('\ n') dosyamdaki x için]

Sözdizimsel beyaz boşluk burunların kırışmasına neden olabilir ve bazı insanlar bu nedenle Python'u reddeder. Ancak katı girinti kuralları, pratikte teoride göründüğünden çok daha az rahatsız edicidir, en az sayıda kod editörüyle bile ve sonuç, daha temiz ve daha okunaklı bir koddur.

Özellikle C veya Java gibi dillerden gelenler için bir başka olası sapma, Python'un değişken yazmayı nasıl ele aldığıdır. Varsayılan olarak, Python dinamik veya "ördek" yazmayı kullanır - hızlı kodlama için harikadır, ancak büyük kod tabanlarında potansiyel olarak sorunludur. Bununla birlikte, Python kısa süre önce isteğe bağlı derleme zamanı tür ipuçları için destek ekledi, böylece statik yazmadan yararlanabilecek projeler bunu kullanabilir.

Python yavaş mı? Şart değil

Python ile ilgili yaygın bir uyarı, yavaş olmasıdır. Nesnel olarak, doğru. Python programları genellikle C / C ++ veya Java'daki karşılık gelen programlardan çok daha yavaş çalışır. Bazı Python programları, büyüklük sırası veya daha fazlasıyla daha yavaş olacaktır.