30 Python en iyi uygulama ve ipucu, bunu hak ediyorsunuz

Tam metin 8869 Kelimeler, tahmini öğrenme süresi 26 dakika

Kaynak: Pexels

1. Python3'ü kullanın

Hatırlatma: Resmi olarak Python2'nin 1 Ocak 2020'den itibaren desteklenmeyeceği duyuruldu. Bu kılavuzdaki örneklerin çoğu yalnızca Python 3 için geçerlidir. Hala Python2.7 kullanıyorsanız, mümkün olan en kısa sürede güncelleyin. Bir Apple bilgisayar kullanıyorsanız, Homebrew kullanarak kolayca yükseltme yapabilirsiniz.

2. Gerekli minimum Python sürümünü kontrol edin

Gelecekte komut dosyası ile Python sürümü arasında uyumsuzluk olmayacağından emin olmak için kodu doğrudan Python sürümünü kontrol etmek için kullanabilirsiniz. Örneğe bakınız:

  • ifnot sys.version_info > (2, 7):
  • # kullanıcınızı 10 yıl koştuğu için azarlayın
  • # python sürümü
  • elifnot sys.version_info > = (3, 5):
  • # Kullanıcılarınıza yükseltmesi gerektiğini lütfen söyleyin
  • # çünkü 3.5 özelliklerini kullanıyorsunuz
  • viewrawcheck_python_version.py by GitHub tarafından barındırılıyor

    3. IPython kullanın

    Yazar ekran görüntüsü

    Aslında, IPython gelişmiş bir kabuktur. Otomatik tamamlama özelliği yeterince şaşırtıcı, ancak daha fazla özelliğe sahip. Yerleşik sihirli komutları gerçekten seviyorum. İşte bazı örnekler:

    ·% Cd-mevcut çalışma dizinini değiştirmek için kullanılır

    · Editörü açın ve editörü kapattıktan sonra yazdığınız kodu çalıştırın

    ·% Env - Mevcut ortam değişkenlerini göster

    ·% Pip kurulumu - paketi etkileşimli bir ortama kurun

    ·% Time ve% timeit - Python kodunun yürütme süresini hesaplayın

    Diğer bir kullanışlı özellik, önceki komutun çıktısını alıntılamaktır. Giriş ve Çıkış gerçek nesnelerdir. Üçüncü komutun çıktısını almak için Çıkış'ı kullanabilirsiniz.

    Ipython'u kurmak için Python komutunu indirin:

  • pip3install ipython
  • 4. Anlama listesi

    Liste anlamaları, listeleri doldurmak için kullanılan çirkin for döngüsünün yerini alabilir. Liste anlamanın temel sözdizimi şöyledir:

  • Bu, bir listeyi bir dizi sayı ile dolduran en temel örnektir:

  • mylist =
  • baskı (mylist)
  • #
  • viewrawlist_comprehensions_1.py hostedwith by GitHub

    Aynı zamanda, bu ifadeyi matematiksel işlemleri gerçekleştirmek için de kullanabilirsiniz:

  • kareler =
  • baskı (kareler)
  • #
  • viewrawlist_comprehensions_2.py hostedwith by GitHub

    Hatta ek olarak yeni bir işlev oluşturun:

  • defsome_function (a):
  • getiri (a +5) / 2
  • my_formula =
  • baskı (my_formula)
  • #
  • viewrawlist_comprehensions_3.py hostedwith by GitHub

    Son olarak, listeyi filtrelemek için "if" kullanabilirsiniz. Bu örnekte, yalnızca 2'ye bölünebilen değerler tutulur

  • filtrelenmiş =
  • baskı (filtrelenmiş)
  • #
  • viewrawlist_comprehensions_4.py, by GitHub tarafından barındırılır

    5. Nesnenin bellek kullanımını kontrol edin

    Sys.getsizeof () kullanarak nesnenin belleğini kontrol edebilirsiniz:

  • ithalat sys
  • mylist = aralık (0, 10000)
  • baskı (sys.getsizeof (mylist))
  • # 48
  • viewrawcheck_memory_usage_1.py hostedwith by GitHub

    Neden bu kadar büyük bir liste yalnızca 48 bayt bellek kaplıyor?

    Bunun nedeni, range işlevi tarafından döndürülen sınıfın yalnızca bir listeyi temsil etmesidir. Aralıklar, gerçek numara listelerini kullanmaktan daha fazla bellek tasarrufu sağlar.

    Aynı aralıktaki gerçek sayıların bir listesini oluşturmak için liste anlamalarını kullanabilirsiniz:

  • ithalat sys
  • myreallist =
  • baskı (sys.getsizeof (myreallist))
  • # 87632
  • viewrawcheck_memory_usage_2.py by GitHub tarafından barındırılır

    6. Birden çok değer döndür

    Kaynak: Pexels

    Python'daki işlevler, sözlüklere, listelere veya sınıflara ihtiyaç duymadan birden çok değişken döndürebilir. Aşağıdaki gibi çalışır:

  • defget_user (id):
  • # kullanıcıyı veritabanından getir
  • # ....
  • dönüş adı, doğum tarihi
  • isim, doğum tarihi = get_user (4)
  • viewrawreturn_multiple_variables.py by GitHub tarafından barındırılır

    Sınırlı sayıda dönüş değeri için bu mümkündür. Ancak 3'ten fazla değere sahip herhangi bir içerik bir (veri) kategorisine yerleştirilmelidir.

    7. Veri sınıflarını kullanın

    3.7 sürümünden başlayarak, Python veri sınıfları sağlar. Normal sınıflarla veya diğer alternatif yöntemlerle karşılaştırıldığında (birden çok değer veya sözlük döndürmek gibi), birkaç avantaj vardır:

    · Bir veri sınıfı minimum kod gerektirir

    · _Eq__ uygulandığı için veri sınıfları karşılaştırılabilir

    · Hata ayıklama için bir veri türünü kolayca yazdırabilirsiniz, çünkü _repr__ de uygulanır

    · Veri türleri tür ipuçlarına ihtiyaç duyar, bu da hata olasılığını azaltır

    Aşağıda bir veri sınıfı örneği verilmiştir:

  • veri sınıflarından veri sınıfını içe aktar
  • @dataclass
  • classCard:
  • rank: str
  • takım elbise: str
  • kart = Kart ("Q", "kalpler")
  • baskı (kart == kart)
  • # Doğru
  • baskı (card.rank)
  • # 'Q'
  • baskı (kart)
  • Kart (sıra = 'Q', renk = 'kalpler')
  • viewrawdataclass.py, by GitHub tarafından barındırılıyor

    Üst düzey kılavuz için burayı tıklayın.

    8. Değişken Değişim

    Küçük bir numara ile birkaç satır kod ihmal edilebilir.

  • a = 1
  • b = 2
  • a, b = b, a
  • baskı (a)
  • # 2
  • baskı (b)
  • # 1
  • viewrawin_place_variable_swapping.py by GitHub ile barındırılıyor

    9. Sözlükleri birleştirme (Python3.5 +)

    Python 3.5'ten beri sözlükleri birleştirmek daha kolay

  • dict1 = {'a': 1, 'b': 2}
  • dict2 = {'b': 3, 'c': 4}
  • birleştirilmiş = {** dict1, ** dict2}
  • baskı (birleştirilmiş)
  • # {'a': 1, 'b': 3, 'c': 4}
  • viewrawmerging_dicts.py hostedwith by GitHub

    Çakışan değerler varsa, ilk sözlükteki değerin üzerine yazılacaktır.

    10. Başlık durumu

    Bu, oynamanın ilginç yollarından sadece biri:

  • mystring = "10 harika python numarası"
  • print (mystring.title ())
  • '10 Harika Python Hileleri '
  • viewrawstring_to_titlecase.py by GitHub tarafından barındırılıyor

    11. Diziyi listeye kesin

    Kaynak: Pexels

    Bir dizeyi dizeler listesine bölebilirsiniz. Aşağıdaki örnekte boşluklara göre kesin

  • mystring = "Hızlı kahverengi tilki"
  • mylist = mystring.split ('')
  • baskı (mylist)
  • #
  • viewrawstring_to_list.py by GitHub tarafından barındırılıyor

    12. Dizeler listesinden bir dizi oluşturun

    Önceki tekniğin aksine, bu örnekte, dize listesinden bir dize oluşturun ve kelimeler arasına bir boşluk girin:

  • mylist =
  • mystring = "" .join (mylist)
  • baskı (dizgim)
  • #'Hızlı kahverengi tilki'
  • viewrawlist_to_string.py hostedwith by GitHub

    Neden mylist.join ("") olmadığını düşünüyor olabilirsiniz, güzel soru!

    Son çözümlemede, String.join () işlevi yalnızca listelere katılmakla kalmaz, aynı zamanda herhangi bir yinelenebilir listeye de katılabilir. Bir String'e koymak, aynı işlevin birden çok konumda uygulanmasını engeller.

    13. İfadeler

    İfade, ifadeye bağlı olarak ya mutlu ya da iğrençtir. Daha da önemlisi, bu özellikle sosyal medya verilerini analiz ederken kullanışlıdır.

    İlk önce emoji modülünü indirin

  • pip3install emoji
  • İndirdikten sonra aşağıdaki işlemleri yapabilirsiniz:

  • emojiyi içe aktar
  • sonuç = emoji.emojize ('Python: thumbs_up:')
  • baskı (sonuç)
  • # 'Python:'
  • # Bunu da tersine çevirebilirsiniz:
  • sonuç = emoji.demojize ('Python is')
  • baskı (sonuç)
  • # 'Python: thumbs_up:'
  • viewrawemoji.py , GitHub tarafından barındırılıyor

    Daha fazla açıklama ve örnek için emoji sayfasını ziyaret edin

    14. Bir liste dilimi yapın

    Liste diliminin sözdizimi:

  • a
  • Başlatma, durdurma ve adımın tümü isteğe bağlıdır. Ayarlanmazsa, varsayılan değer

    · Başlangıç değeri 0

    · End, dizenin sonudur

    · Adım değeri 1'dir

    Aşağıda bir örnek verilmiştir:

  • # Buradan kolayca yeni bir liste oluşturabiliriz
  • # bir listenin ilk iki öğesi:
  • first_two =
  • baskı (ilk_iki)
  • #
  • # Ve adım değeri 2 kullanırsak,
  • # her ikinci sayıyı atlayabiliriz
  • # bunun gibi:
  • adımlar =
  • yazdır (adımlar)
  • #
  • # Bu, dizeler üzerinde de çalışır. Python'da,
  • # bir dizgeye bir liste gibi davranabilirsiniz
  • # harf:
  • mystring = "abcdefdn nimt"
  • baskı (dizgim)
  • #'Yol açtı'
  • viewrawlist_slicing.py, by GitHub tarafından barındırılıyor

    15. Ters dizeler ve listeler

    Bir dizeyi veya listeyi ters çevirmek için yukarıdaki dilim gösterimini kullanın. -1 negatif adım değeri kullanılarak, öğeler tersine çevrilir:

  • revstring = "abcdefg"
  • baskı (revstring)
  • # "gfedcba"
  • revarray =
  • baskı (revarray)
  • #
  • viewrawreversing_stuff.py by GitHub tarafından barındırılıyor

    16. Yavru kediyi gösterin

    Önce Pillow'u (Python görüntü kitaplığının bir dalı) yükleyin:

  • pip3install Yastık
  • Bu resmi indirin ve kittens.jpg olarak adlandırın:

    Resim kaynağı TheDigitalArtist Pixabay'a yüklendi

    Aşağıdaki kod, resmi Python kodunda görüntülemek için kullanılabilir:

    Veya doğrudan IPython kullanın:

  • fromPILimport Görüntüsü
  • im = Image.open ("kedi.jpg")
  • im.show ()
  • baskı (im.format, im.size, im.mode)
  • # JPEG (1920, 1357) RGB
  • viewrawpillow.py by GitHub ile barındırılıyor

    Görüntüleri görüntülemeye ek olarak, Pillow ayrıca analiz edebilir, yeniden boyutlandırabilir, filtreleyebilir, iyileştirebilir, deforme edebilir ve daha fazlasını yapabilir. Tüm özellikleri için lütfen belgelere bakın.

    17. Haritayı kullan ()

    Python'un yerleşik işlevlerinden biri map () 'dir. Map () sözdizimi şöyledir: map (işlev, birşey_düzenlenebilir)

    Yürütülecek bir işlev ve çalıştırılacak bazı değişkenler verildi. Yinelenebilir herhangi bir öğe olabilir. Aşağıdaki örnekte bir liste kullanacağım.

  • defupper (ler):
  • return s.upper ()
  • mylist = liste (harita (üst,))
  • baskı (mylist)
  • #
  • # Bir dize gösterimini dönüştür
  • # İnts listesine bir sayı.
  • list_of_ints = list (harita (int, "1234567")))
  • print (list_of_ints)
  • #
  • viewrawmap.py hostedwith by GitHub

    Kendi kodunuza bir göz atın ve map () işlevini döngü yerine bir yerde kullanıp kullanamayacağınızı görün!

    18. Listelerden ve dizelerden benzersiz öğeler çıkarın

    Bir küme oluşturmak için set () işlevini kullanarak, tüm benzersiz öğeleri bir liste veya liste benzeri nesneden alabilirsiniz:

  • mylist =
  • baskı (set (mylist))
  • # {1, 2, 3, 4, 5, 6}
  • # Ve bir dizge bir
  • # harf listesi, ayrıca
  • Bu şekilde bir dizeden # benzersiz harf:
  • baskı (set ("aaabbbcccdddeeefff"))
  • # {'a', 'b', 'c', 'd', 'e', 'f'}
  • viewrawset.py, ile GitHub tarafından barındırılır

    19. En sık kullanılan değeri bulun

    Bir liste veya dizede en sık görülen değeri bulun:

  • test =
  • baskı (max (set (test), key = test.count))
  • # 4
  • viewrawmost_frequent.py hostedwith by GitHub

    Bunun neden olduğunu anlıyor musunuz? Daha fazla okumadan önce, kendiniz bulmaya çalışın. Henüz denemediniz mi? Sana cevabı söylemek istiyorum.

    · Max () listedeki maksimum değeri döndürecektir. Key parametresi, sıralama düzenini özelleştirmek için tek bir parametre işlevini kabul eder, bu durumda bu test.count'tur. Bu işlev, yinelenebilen her öğeye uygulanır.

    · Test yapmak. count yerleşik bir liste işlevidir. Bir parametreyi kabul eder ve bu parametrenin oluşum sayısını sayar. Bu nedenle test.count (1) 2, test.count (4) ise 4 değerini döndürecektir.

    · Set (test), testteki tüm benzersiz değerleri döndürür, bu nedenle {1,2,3,4}

    Bu nedenle, bu kod satırında yaptığımız şey, testin tüm benzersiz değerlerini yani {1,2,3,4} 'ü elde etmektir. Daha sonra max, list.count işlevini uygulayacak ve maksimum değeri döndürecektir.

    20. Bir ilerleme çubuğu oluşturun

    Kendi ilerleme çubuğunuzu oluşturmak eğlencelidir. Ancak ilerleme paketini kullanmak daha hızlıdır:

  • pip3install ilerleme
  • Artık bir ilerleme çubuğu oluşturmak daha az zaman alıyor

  • progress.bar'dan içe aktarma çubuğu
  • bar = Bar ('İşleme', maks = 20)
  • i inrange için (20):
  • # Biraz iş yap
  • bar.next ()
  • bar.finish ()
  • viewrawprogress_bar.py hostedwith by GitHub

    21. Etkileşimli pencerelerde _ kullanın

    Kaynak: Pexels

    Örneğin IPython'da son ifadenin sonucunu aşağıdaki gibi almak için alt çizgi operatörünü kullanabilirsiniz:

  • İçinde: 3 * 3
  • Çıkış: 9In: _ + 3
  • Çıkış: 12
  • Bu aynı zamanda Python kabuğu için de geçerlidir. Ek olarak, IPython kabuğu, ifadenin değerini içinde almak için Out kullanmanıza izin verir. Örneğin, Out 9 sayısını verecektir.

    22. Hızla bir web sunucusu oluşturun

    Web sunucusunu hızlı bir şekilde başlatın ve mevcut dizinin içeriğini sağlayın:

  • python3-m http.server
  • Meslektaşlarınızla bazı içerikleri paylaşmak istiyorsanız veya basit bir HTML sitesini test etmek istiyorsanız bu çok kullanışlıdır.

    23. Çok satırlı dizi

    Çok satırlı dizeler eklemek için kodunuzda üçlü tırnak kullanabilseniz de bu ideal değildir. Üç tırnak işareti arasına yerleştirilen her şey, aşağıda gösterildiği gibi biçim dahil olmak üzere bir dizge haline gelecektir.

    Kodu iyi biçimlendirebilmeniz için birden çok satırı birbirine bağlayan ikinci yöntemi tercih ediyorum. Tek dezavantajı, açıkça satır sonları eklemeniz gerekmesidir.

  • s1 = "" "Çok satırlı dizeler konulabilir
  • üçlü tırnak arasında. İdeal değil
  • "" "kodunuzu biçimlendirirken
  • baskı (s1)
  • # Çok satırlı dizeler konulabilir
  • # üçlü tırnak arasında. İdeal değil
  • # kodunuzu biçimlendirirken
  • s2 = ("Ayrıca birden fazla \ n birleştirebilirsiniz" +
  • "bu şekilde dizeler, ancak yapmanız gerekecek \ n"
  • "açıkça yeni satırlara koyun")
  • baskı (s2)
  • # Ayrıca birden çok
  • # dize bu şekilde, ancak yapmanız gerekecek
  • # açıkça satırsonu satırlarına koyun
  • viewrawmultiline_strings.py by GitHub tarafından barındırılmaktadır

    24. Koşullu atama için üçlü operatör

    Bu, kodu hem kısa hem de okunabilir hale getirmenin başka bir yoludur: eğer değilse

    misal:

  • x = "Başarılı!" if (y == 2) başka "Başarısız!"
  • 25. Hesaplama sıklığı

    Listedeki tüm benzersiz öğelerin sayılarını içeren bir sözlüğü almak için koleksiyon kitaplığındaki Sayaç'ı kullanın:

  • koleksiyonlardan ithalat Sayacı
  • mylist =
  • c = Sayaç (mylist)
  • baskı (c)
  • # Sayaç ({1: 2, 2: 1, 3: 1, 4: 1, 5: 3, 6: 2})
  • # Ve dizelerde de işe yarar:
  • baskı (Sayaç ("aaaaabbbbbccccc"))
  • # Sayaç ({'a': 5, 'b': 5, 'c': 5})
  • viewrawcounter.py , GitHub tarafından barındırılıyor

    26. Bağlantılı karşılaştırma operatörleri

    Daha okunabilir ve kısa kod oluşturmak için Python'daki karşılaştırma operatörlerini bağlayın:

  • x = 10
  • # Onun yerine:
  • eğer x > 5 ve x < 15:
  • baskı ("Evet")
  • # Evet
  • # Ayrıca şunları da yazabilirsiniz:
  • if5 < x < 15:
  • baskı ("Evet")
  • # Evet
  • viewrawchaining_comparisons.py, by GitHub tarafından barındırılıyor

    27. Biraz renk ekleyin

    Colorama'dan Jonathan Hartley tarafından ekran görüntüsü

    Colorama'yı kullanarak terminale bazı renkler ekleyin.

  • koloramadan içe aktarım Ön, Geri, Stil
  • baskı (Ön.KIRMIZI + 'bazı kırmızı metinler')
  • baskı (Back.GREEN + 've yeşil arka planlı')
  • yazdır (Style.DIM + 've soluk metin')
  • baskı (Style.RESET_ALL)
  • print ('şimdi normale dön')
  • viewrawcolorama.py, ile GitHub tarafından barındırılmaktadır

    28. Eklenme tarihi

    Python-dateutil modülü, standart datetime modülüne güçlü bir uzantı sağlar. Yükleyen:

  • pip3 python-dateutil'i yükle
  • Bu kütüphane ile çok güzel şeyler yapabilirsiniz. Yalnızca benim için özellikle yararlı olan örneklere odaklanacağım: günlük dosyalarındaki tarihlerin bulanık analizi gibi.

  • dateutil.parser içe aktarma ayrıştırmasından itibaren
  • logline = 'INFO 2020-01-01T00: 00: 01 Mutlu yıllar, insan.'
  • zaman damgası = ayrıştırma (log_line, fuzzy = True)
  • baskı (zaman damgası)
  • # 2020-01-0100:00:01
  • viewrawdateutil.py, by GitHub tarafından barındırılıyor

    Unutmayın: python-dateutil, normal Python tarih ve saat işlevleri çalışmadığında işe yarar!

    29. Tam Sayı Bölme

    Python 2'de, işlenenlerden biri kayan noktalı sayı olmadığı sürece bölme operatörü (/) varsayılan olarak tamsayı bölmeyi kullanır. Bu nedenle aşağıdaki işlemler vardır:

  • # Python 2
  • 5/2 = 2
  • 5 / 2.0 = 2.5
  • Python 3'te, bölme operatörü varsayılan olarak kayan nokta bölmeye ayarlıdır ve // operatörü bir tamsayı bölme haline gelmiştir. Böylece şunu elde ederiz:

  • Python 3
  • 5/2 = 2.5
  • 5 // 2 = 2
  • 30. Karakter seti tespiti için pazı kullanın

    Kaynak: Pexels

    Dosyanın karakter setini algılamak için chardet modülünü kullanın. Bu, büyük miktarda rastgele metin analiz ederken kullanışlıdır.

    Kurulum yöntemi:

  • pip pazı takmak
  • Şimdi, chardetect adında şu şekilde kullanılabilen ek bir komut satırı aracı var:

  • chardetect somefile.txt
  • somefile.txt: güven 1.0 ile ascii
  • Bunlar, 2020'nin en iyi 30 kodlama tekniğidir. Umarım liste oluştururken içeriğin tadını çıkarırsınız. Herhangi bir yorumunuz varsa, lütfen yorum yapmaktan çekinmeyin!

    Kaynak: Pexels

    Yorum Beğen Takip Et

    Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım

    Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun

    NEX 3S telefonları kazanın! Maskenizi çıkardığınızda ve isteksizce nefes aldığınızda en çok ne yapmak istersiniz? Konuşalım ~
    önceki
    Proje Yönetim Enstitüsü (PMI): Scrum'ı kullanmayı bırakın
    Sonraki
    Bugün Xinsheng | Maske korumalı ve tekrar kullanılabilir! Şüpheli vakaların kendi kendine izolasyonu tehlikelidir
    Öğrenmek için en değerli veri becerilerini nasıl seçeceğinizi size öğretiyor musunuz?
    Yapay zeka çalışanlarına ilham vermek için gerekli bir koşul olan sinestezi
    Bugünün Temel Sesi | Sifonu çekerken tuvalet kapağını kapatın! Yeni koroner pnömoni hastalarında dışkı veya hayatta kalan virüs
    480 milyon vahşi hayvan öldürüldü! Avustralya'da orman yangınları yayılmaya devam ediyor
    Bağımsız kitapçı yeniden yola çıktı: farklı yollar: Xu Zhiyuan Weiya canlı yayın bağlantısı, 1200 kitapçı çevrimdışı dönüşüm
    30 saatlik "maraton tarzı" canlı yayın, yeni Land Rover Discovery Sport versiyonu piyasaya sürüldü
    Guangzhou Polis Doktor Ailesi: Baş hemşirenin karısı Wuhan'dan dönmedi ve polisin kocası tatili iptal ederek ön cepheye gitti
    15 çocuk önlüğünün değerlendirilmesi: 2 Beiyiner ve Yalian numunesi kalifiye değildir ve küçük aksesuarların düşmesi kolaydır
    "Bir Jia" nın sonu "yetişkin sevgisinden" yorulmayı göze alamaz, bazen başka bir tür mutluluktur
    Jiangmen'de bir kamyon yol boyunca 4 varil mazot dökerek 10 aracın hasar görmesine ve 4 kişinin yaralanmasına neden oldu
    Xintian: Ulusal bayrak dikme, bayrak indirme ve sessizlik töreni
    To Top