Basic Python
Python Temelleri
Faydalı bilgiler
list(xrange()) == range() --> Python3'te range, python2'nin xrange'ıdır (bir liste değil, bir üreteçtir) Bir Tuple ve Bir Liste arasındaki fark, bir tuple'daki bir değerin konumunun ona anlam vermesidir, ancak listeler sadece sıralı değerlerdir. Tuples yapıya sahiptir, ancak listeler bir sıraya sahiptir.
Temel işlemler
Bir sayıyı yükseltmek için: 3**2 (3^2 değil) 2/3 yaparsanız, iki tamsayıyı (integers) böldüğünüz için 1 döner. Ondalık sayılar istiyorsanız float'ları bölmelisiniz (2.0/3.0). i >= j i <= j i == j i != j a and b a or b not a float(a) int(a) str(d) ord("A") = 65 chr(65) = 'A' hex(100) = '0x64' hex(100)[2:] = '64' isinstance(1, int) = True "a b".split(" ") = ['a', 'b'] " ".join(['a', 'b']) = "a b" "abcdef".startswith("ab") = True "abcdef".contains("abc") = True "abc\n".strip() = "abc" "apbc".replace("p","") = "abc" dir(str) = Tüm mevcut yöntemlerin listesi help(str) = str sınıfının tanımı "a".upper() = "A" "A".lower() = "a" "abc".capitalize() = "Abc" sum([1,2,3]) = 6 sorted([1,43,5,3,21,4])
Karakterleri birleştirme 3 * ’a’ = ‘aaa’ ‘a’ + ‘b’ = ‘ab’ ‘a’ + str(3) = ‘a3’ [1,2,3]+[4,5]=[1,2,3,4,5]
Liste parçaları ‘abc’[0] = ‘a’ 'abc’[-1] = ‘c’ 'abc’[1:3] = ‘bc’ [1]'den [2]'ye "qwertyuiop"[:-1] = 'qwertyuio'
Yorumlar # Tek satırlık yorum """ Birkaç satırlık yorum Bir diğeri """
Döngüler
Tuplelar
t1 = (1, '2', 'üç') t2 = (5, 6) t3 = t1 + t2 = (1, '2', 'üç', 5, 6) (4,) = Tek elemanlı d = () boş tuple d += (4,) --> Tuple'a ekleme yapma YAPAMAZSIN! --> t1[1] == 'Yeni değer' list(t2) = [5, 6] --> Tuple'dan liste yapma
Liste (dizi)
d = [] boş a = [1, 2, 3] b = [4, 5] a + b = [1, 2, 3, 4, 5] b.append(6) = [4, 5, 6] tuple(a) = (1, 2, 3) --> Listeden tuple yapma
Sözlük
d = {} boş ayNumaraları = {1: 'Oca', 2: 'şub', 'şub': 2} --> ayNumaraları -> {1: 'Oca', 2: 'şub', 'şub': 2} ayNumaraları[1] = 'Oca' ayNumaraları[‘şub’] = 2 list(ayNumaraları) = [1, 2, 'şub'] ayNumaraları.values() = ['Oca', 'şub', 2] keys = [k for k in ayNumaraları] a = {'9': 9} ayNumaraları.update(a) = {'9': 9, 1: 'Oca', 2: 'şub', 'şub': 2} mN = ayNumaraları.copy() #Bağımsız kopya ayNumaraları.get('anahtar', 0) #Anahtar var mı diye kontrol et, ayNumaraları["anahtar"]'ın değerini döndür veya yoksa 0 döndür
Küme
Kümelerde tekrarlamalar yoktur myset = set(['a', 'b']) = {'a', 'b'} myset.add('c') = {'a', 'b', 'c'} myset.add('a') = {'a', 'b', 'c'} #Tekrarlamalar yok myset.update([1, 2, 3]) = set(['a', 1, 2, 'b', 'c', 3]) myset.discard(10) #Eğer varsa kaldır, yoksa bir şey yapma myset.remove(10) #Eğer varsa kaldır, yoksa hata ver myset2 = set([1, 2, 3, 4]) myset.union(myset2) #myset VEYA myset2'deki değerler myset.intersection(myset2) #myset VE myset2'deki değerler myset.difference(myset2) #myset'teki ama myset2'de olmayan değerler myset.symmetric_difference(myset2) #myset VE myset2'de olmayan değerler (her ikisinde de olmayan) myset.pop() #Kümenin ilk elemanını al ve kaldır myset.intersection_update(myset2) #myset = myset VE myset2'deki elemanlar myset.difference_update(myset2) #myset = myset'teki ama myset2'de olmayan elemanlar myset.symmetric_difference_update(myset2) #myset = myset VE myset2'de olmayan elemanlar
Sınıflar
__It__ içindeki yöntem, bu sınıfın bir nesnesinin diğerinden daha büyük olup olmadığını karşılaştırmak için sort tarafından kullanılacak yöntem olacaktır.
map, zip, filter, lambda, sorted ve tek satırlar
Map şu şekilde çalışır: [f(x) for x in iterable] --> map(tutple,[a,b]) = [(1,2,3),(4,5)] m = map(lambda x: x % 3 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9]) --> [False, False, True, False, False, True, False, False, True]
zip foo veya bar'ın daha kısa olanı durduğunda durur:
Lambda, bir fonksiyon tanımlamak için kullanılır (lambda x,y: x+y)(5,3) = 8 --> Basit bir fonksiyon olarak lambda kullanın sorted(range(-5,6), key=lambda x: x** 2) = [0, -1, 1, -2, 2, -3, 3, -4, 4, -5, 5] --> Bir listeyi sıralamak için lambda kullanın m = filter(lambda x: x % 3 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9]) = [3, 6, 9] --> Filtrelemek için lambda kullanın reduce (lambda x,y: x*y, [1,2,3,4]) = 24
mult1 = [x for x in [1, 2, 3, 4, 5, 6, 7, 8, 9] if x%3 == 0 ]
İstisnalar
Assert()
Eğer koşul yanlış ise, dize ekran üzerinde yazdırılacaktır.
Üreteçler, yield
Bir üreteç, bir şey döndürmek yerine bir şey "yield" eder. Ona eriştiğinizde, ilk üretilen değeri "döndürür" ve sonra tekrar erişebilirsiniz ve bir sonraki üretilen değeri döndürür. Bu nedenle, tüm değerler aynı anda üretilmez ve tüm değerleri içeren bir liste yerine bunu kullanarak çok fazla bellek tasarrufu sağlanabilir.
g = myGen(6) --> 6 next(g) --> 7 next(g) --> Hata
Düzenli İfadeler
import re re.search("\w","hola").group() = "h" re.findall("\w","hola") = ['h', 'o', 'l', 'a'] re.findall("\w+(la)","hola caracola") = ['la', 'la']
Özel anlamlar: . --> Her şeyi \w --> [a-zA-Z0-9_] \d --> Sayı \s --> Boşluk karakteri[ \n\r\t\f] \S --> Boşluk olmayan karakter ^ --> İle başlar $ --> İle biter + --> Bir veya daha fazla * --> 0 veya daha fazla ? --> 0 veya 1 kez
Seçenekler: re.search(pat,str,re.IGNORECASE) IGNORECASE DOTALL --> Noktanın yeni satırı eşleştirmesine izin verir MULTILINE --> ^ ve $'ın farklı satırlarda eşleşmesine izin verir
re.findall("<.*>", "<b>foo</b>and<i>so on</i>") = ['<b>foo</b>and<i>so on</i>'] re.findall("<.*?>", "<b>foo</b>and<i>so on</i>") = ['<b>', '</b>', '<i>', '</i>']
IterTools product from itertools import product --> 1 veya daha fazla liste arasında kombinasyonlar oluşturur, değerleri tekrarlayabilir, kartez ürünü (dağıtma özelliği) print list(product([1,2,3],[3,4])) = [(1, 3), (1, 4), (2, 3), (2, 4), (3, 3), (3, 4)] print list(product([1,2,3],repeat = 2)) = [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
permutations from itertools import permutations --> Her pozisyonda tüm karakterlerin kombinasyonlarını oluşturur print list(permutations(['1','2','3'])) = [('1', '2', '3'), ('1', '3', '2'), ('2', '1', '3'),... Tüm olası kombinasyonlar print(list(permutations('123',2))) = [('1', '2'), ('1', '3'), ('2', '1'), ('2', '3'), ('3', '1'), ('3', '2')] Uzunluğu 2 olan tüm olası kombinasyonlar
combinations from itertools import combinations --> Tekrar eden karakterleri olmadan tüm olası kombinasyonları oluşturur ("ab" varsa "ba" oluşturmaz) print(list(combinations('123',2))) --> [('1', '2'), ('1', '3'), ('2', '3')]
combinations_with_replacement from itertools import combinations_with_replacement --> Karakterden sonraki tüm olası kombinasyonları oluşturur (örneğin, 3. karakter 3. karakterden itibaren karıştırılır, ancak 2. veya 1. ile karıştırılmaz) print(list(combinations_with_replacement('1133',2))) = [('1', '1'), ('1', '1'), ('1', '3'), ('1', '3'), ('1', '1'), ('1', '3'), ('1', '3'), ('3', '3'), ('3', '3'), ('3', '3')]
Dekoratörler
Bir fonksiyonun çalışması için gereken süreyi ölçen bir dekoratör (buradan alındı: buradan):
Eğer çalıştırırsanız, aşağıdakine benzer bir şey göreceksiniz:
Last updated