Basic Python
Python Basiese Beginsels
Nuttige inligting
list(xrange()) == range() --> In python3 is range die xrange van python2 (dit is nie 'n lys nie, maar 'n generator) Die verskil tussen 'n Tuple en 'n Lys is dat die posisie van 'n waarde in 'n tuple betekenis daaraan gee, maar die lyse is net geordende waardes. Tuples het strukture, maar lyse het 'n volgorde.
Hoofhandelinge
Om 'n getal te verhoog, gebruik jy: 3**2 (nie 3^2 nie) As jy 2/3 doen, gee dit 1 terug omdat jy twee ints (heeltalle) deel. As jy desimale wil hê, moet jy floats deel (2.0/3.0). i >= j i <= j i == j i != j a en b a of b nie 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) = Lys van al die beskikbare metodes help(str) = Definisie van die klas str "a".upper() = "A" "A".lower() = "a" "abc".capitalize() = "Abc" sum([1,2,3]) = 6 sorted([1,43,5,3,21,4])
Voeg karakters bymekaar 3 * ’a’ = ‘aaa’ ‘a’ + ‘b’ = ‘ab’ ‘a’ + str(3) = ‘a3’ [1,2,3]+[4,5]=[1,2,3,4,5]
Dele van 'n lys ‘abc’[0] = ‘a’ 'abc’[-1] = ‘c’ 'abc’[1:3] = ‘bc’ vanaf [1] tot [2] "qwertyuiop"[:-1] = 'qwertyuio'
Kommentaar # Eenreëelkommentaar """ Verskeie reëls kommentaar Nog een """
Lusse
Tuples
t1 = (1,'2,'three') t2 = (5,6) t3 = t1 + t2 = (1, '2', 'three', 5, 6) (4,) = Singelton d = () leë tuple d += (4,) --> Voeg by 'n tuple KAN NIE! --> t1[1] == 'Nuwe waarde' list(t2) = [5,6] --> Van tuple na lys
Lys (array)
d = [] leë 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) --> Van lys na tuple
Woordeskat
d = {} leë 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() #Onafhanklike kopie monthNumbers.get('key',0) #Kyk of sleutel bestaan, Gee waarde van monthNumbers["key"] of 0 as dit nie bestaan nie
Stel
In stelle is daar geen herhalings nie myset = set(['a', 'b']) = {'a', 'b'} myset.add('c') = {'a', 'b', 'c'} myset.add('a') = {'a', 'b', 'c'} #Geen herhalings myset.update([1,2,3]) = set(['a', 1, 2, 'b', 'c', 3]) myset.discard(10) #As teenwoordig, verwyder dit, as nie, niks myset.remove(10) #As teenwoordig, verwyder dit, as nie, gooi 'n uitsondering myset2 = set([1, 2, 3, 4]) myset.union(myset2) #Waardes in myset OF myset2 myset.intersection(myset2) #Waardes in myset EN myset2 myset.difference(myset2) #Waardes in myset maar nie in myset2 myset.symmetric_difference(myset2) #Waardes wat nie in myset EN myset2 is (nie in beide nie) myset.pop() #Kry die eerste element van die stel en verwyder dit myset.intersection_update(myset2) #myset = Elemente in beide myset en myset2 myset.difference_update(myset2) #myset = Elemente in myset maar nie in myset2 myset.symmetric_difference_update(myset2) #myset = Elemente wat nie in beide is nie
Klasse
Die metode in __It__ sal gebruik word deur sort om te vergelyk of 'n objek van hierdie klas groter is as 'n ander
map, zip, filter, lambda, sorted en eenregelige oplossingen
Map is soos: [f(x) vir 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 stop wanneer die kortste van foo of bar stop:
Lambda word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word
mult1 = [x vir x in [1, 2, 3, 4, 5, 6, 7, 8, 9] as x%3 == 0 ]
Uitsonderings
Assert()
As die voorwaarde vals is, sal die string op die skerm gedruk word.
Opwekkers, opbrengs
'n Opwekker, in plaas van om iets terug te gee, "lewer" iets op. Wanneer jy dit toegang gee, sal dit die eerste gegenereerde waarde "teruggee", dan kan jy dit weer toegang gee en dit sal die volgende gegenereerde waarde teruggee. So, al die waardes word nie op dieselfde tyd gegenereer nie en baie geheue kan bespaar word deur dit te gebruik in plaas van 'n lys met al die waardes.
g = myGen(6) --> 6 next(g) --> 7 next(g) --> Fout
Reëlmatige Uitdrukkings
import re re.search("\w","hola").group() = "h" re.findall("\w","hola") = ['h', 'o', 'l', 'a'] re.findall("\w+(la)","hola caracola") = ['la', 'la']
Spesiale betekenisse: . --> Alles \w --> [a-zA-Z0-9_] \d --> Nommer \s --> Spasie karakter[ \n\r\t\f] \S --> Nie-spasie karakter ^ --> Begin met $ --> Eindig met + --> Een of meer * --> 0 of meer ? --> 0 of 1 voorkomste
Opsies: re.search(pat,str,re.IGNORECASE) IGNORECASE DOTALL --> Laat punt om nuwe lyn te pas MULTILINE --> Laat ^ en $ om in verskillende lyne te pas
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 --> Genereer kombinasies tussen 1 of meer lysse, dalk herhalende waardes, kartesiese produk (verdelings eienskap) 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 --> Genereer kombinasies van alle karakters op elke posisie print list(permutations(['1','2','3'])) = [('1', '2', '3'), ('1', '3', '2'), ('2', '1', '3'),... Elke moontlike kombinasie print(list(permutations('123',2))) = [('1', '2'), ('1', '3'), ('2', '1'), ('2', '3'), ('3', '1'), ('3', '2')] Elke moontlike kombinasie van lengte 2
combinations from itertools import combinations --> Genereer alle moontlike kombinasies sonder om karakters te herhaal (as "ab" bestaan, genereer dit nie "ba") print(list(combinations('123',2))) --> [('1', '2'), ('1', '3'), ('2', '3')]
combinations_with_replacement from itertools import combinations_with_replacement --> Genereer alle moontlike kombinasies vanaf die karakter voort (byvoorbeeld, die 3de is gemeng vanaf die 3de voort maar nie met die 2de of eerste nie) 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')]
Versierders
Versierder wat die tyd meet wat 'n funksie neem om uitgevoer te word (vanaf hier):
As jy dit uitvoer, sal jy iets soos die volgende sien:
Last updated