Basic Python
Misingi ya Python
Taarifa muhimu
list(xrange()) == range() --> Katika python3, range ni kama xrange ya python2 (siyo orodha bali ni jenereta) Tofauti kati ya Tuple na Orodha ni kwamba nafasi ya thamani katika tuple inampa maana lakini orodha ni thamani zilizopangwa tu. Tuples zina muundo lakini orodha zina utaratibu.
Operesheni kuu
Kuongeza namba unatumia: 3**2 (siyo 3^2) Ikiwa unafanya 2/3 inarudisha 1 kwa sababu unagawanya nambari mbili (integers). Ikiwa unataka namba za kdecimals unapaswa kugawa floats (2.0/3.0). i >= j i <= j i == j i != j a na b a au b siyo 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) = Orodha ya njia zote zilizopo help(str) = Maelezo ya darasa la str "a".upper() = "A" "A".lower() = "a" "abc".capitalize() = "Abc" sum([1,2,3]) = 6 sorted([1,43,5,3,21,4])
Kuunganisha herufi 3 * ’a’ = ‘aaa’ ‘a’ + ‘b’ = ‘ab’ ‘a’ + str(3) = ‘a3’ [1,2,3]+[4,5]=[1,2,3,4,5]
Sehemu za orodha ‘abc’[0] = ‘a’ 'abc’[-1] = ‘c’ 'abc’[1:3] = ‘bc’ kutoka [1] hadi [2] "qwertyuiop"[:-1] = 'qwertyuio'
Maoni # Maoni ya mstari mmoja """ Maoni ya mistari kadhaa Mwingine """
Mizunguko
Tuples
t1 = (1,'2,'three') t2 = (5,6) t3 = t1 + t2 = (1, '2', 'three', 5, 6) (4,) = Singelton d = () empty tuple d += (4,) --> Adding into a tuple CANT! --> t1[1] == 'New value' list(t2) = [5,6] --> From tuple to list
Orodha (array)
d = [] empty 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) --> From list to tuple
Dictionary
d = {} empty monthNumbers={1:’Jan’, 2: ‘feb’,’feb’:2}—> monthNumbers ->{1:’Jan’, 2: ‘feb’,’feb’:2} monthNumbers[1] = ‘Jan’ monthNumbers[‘feb’] = 2 list(monthNumbers) = [1,2,’feb’] monthNumbers.values() = [‘Jan’,’feb’,2] keys = [k for k in monthNumbers] a={'9':9} monthNumbers.update(a) = {'9':9, 1:’Jan’, 2: ‘feb’,’feb’:2} mN = monthNumbers.copy() #Independent copy monthNumbers.get('key',0) #Check if key exists, Return value of monthNumbers["key"] or 0 if it does not exists
Set
In sets there are no repetitions myset = set(['a', 'b']) = {'a', 'b'} myset.add('c') = {'a', 'b', 'c'} myset.add('a') = {'a', 'b', 'c'} #No repetitions myset.update([1,2,3]) = set(['a', 1, 2, 'b', 'c', 3]) myset.discard(10) #If present, remove it, if not, nothing myset.remove(10) #If present remove it, if not, rise exception myset2 = set([1, 2, 3, 4]) myset.union(myset2) #Values it myset OR myset2 myset.intersection(myset2) #Values in myset AND myset2 myset.difference(myset2) #Values in myset but not in myset2 myset.symmetric_difference(myset2) #Values that are not in myset AND myset2 (not in both) myset.pop() #Get the first element of the set and remove it myset.intersection_update(myset2) #myset = Elements in both myset and myset2 myset.difference_update(myset2) #myset = Elements in myset but not in myset2 myset.symmetric_difference_update(myset2) #myset = Elements that are not in both
Classes
The method in __It__ will be the one used by sort to compare if an object of this class is bigger than other
map, zip, filter, lambda, sorted na mistari ya kifupi
Map ni kama: [f(x) kwa x katika 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 inakoma wakati wa kumalizika kwa mafupi kati ya foo au bar:
Lambda hutumiwa kuamua kazi (lambda x,y: x+y)(5,3) = 8 --> Tumia lambda kama kazi rahisi sorted(range(-5,6), key=lambda x: x** 2) = [0, -1, 1, -2, 2, -3, 3, -4, 4, -5, 5] --> Tumia lambda kuorodhesha orodha m = filter(lambda x: x % 3 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9]) = [3, 6, 9] --> Tumia lambda kuchuja reduce (lambda x,y: x*y, [1,2,3,4]) = 24
mult1 = [x kwa ajili ya x katika [1, 2, 3, 4, 5, 6, 7, 8, 9] kama x%3 == 0 ]
Makosa ya Kutokea
Assert()
Ikiwa hali ni ya uwongo, kamba itachapishwa kwenye skrini
Wazalishaji, toa
Mbadala ya kurudisha kitu, wazalishaji "hutoa" kitu. Unapofikia wazalishaji, itarudisha thamani ya kwanza iliyozalishwa, kisha unaweza kuifikia tena na itarudisha thamani inayofuata iliyozalishwa. Kwa hivyo, thamani zote hazizalishwi wakati mmoja na kwa kutumia hii badala ya orodha na thamani zote, unaweza kuokoa kumbukumbu nyingi.
g = myGen(6) --> 6 next(g) --> 7 next(g) --> Error
Mbinu za Kawaida
import re re.search("\w","hola").group() = "h" re.findall("\w","hola") = ['h', 'o', 'l', 'a'] re.findall("\w+(la)","hola caracola") = ['la', 'la']
Maana Maalum: . --> Kila kitu \w --> [a-zA-Z0-9_] \d --> Nambari \s --> Nafasi nyeupe [ \n\r\t\f] \S --> Herufi zisizo nafasi nyeupe ^ --> Anza na $ --> Ishi na + --> Moja au zaidi * --> 0 au zaidi ? --> 0 au 1 mara
Chaguo: re.search(pat,str,re.IGNORECASE) IGNORECASE DOTALL --> Ruhusu alama ya kipindi kuendana na mstari mpya MULTILINE --> Ruhusu ^ na $ kuendana katika mistari tofauti
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 --> Inazalisha mchanganyiko kati ya orodha 1 au zaidi, labda kurudia thamani, mchanganyiko wa Cartesian (mali ya kugawa) 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 --> Inazalisha mchanganyiko wa wahusika wote katika kila nafasi print list(permutations(['1','2','3'])) = [('1', '2', '3'), ('1', '3', '2'), ('2', '1', '3'),... Kila mchanganyiko unaowezekana print(list(permutations('123',2))) = [('1', '2'), ('1', '3'), ('2', '1'), ('2', '3'), ('3', '1'), ('3', '2')] Kila mchanganyiko unaowezekana wa urefu wa 2
combinations from itertools import combinations --> Inazalisha mchanganyiko wote unaowezekana bila kurudia wahusika (ikiwa "ab" ipo, haizalishi "ba") print(list(combinations('123',2))) --> [('1', '2'), ('1', '3'), ('2', '3')]
combinations_with_replacement from itertools import combinations_with_replacement --> Inazalisha mchanganyiko wote unaowezekana kutoka kwa wahusika kuanzia hapo baadaye (kwa mfano, ya 3 imechanganywa kutoka ya 3 lakini sio na ya 2 au ya 1) 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')]
Wapambaaji
Wapambaaji ambao hupima wakati ambao kazi inahitaji kutekelezwa (kutoka hapa):
Ikiendeshwa, utaona kitu kama hiki:
Last updated