Basic Python
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
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 dit betekenis gee, maar die lyste is net geordende waardes. Tuples het strukture, maar lyste het 'n volgorde.
Om 'n getal te verhef gebruik jy: 3**2 (nie 3^2) As jy 2/3 doen, keer dit 1 terug omdat jy twee ints (heelgetalle) deel. As jy desimale wil hê, moet jy floats deel (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) = 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 saam 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’ van [1] tot [2] "qwertyuiop"[:-1] = 'qwertyuio'
Kommentaar # Eenlyn kommentaar """ Verskeie lyn kommentaar Nog een """
Lusse
t1 = (1,'2,'three') t2 = (5,6) t3 = t1 + t2 = (1, '2', 'three', 5, 6) (4,) = Singleton d = () leë tuple d += (4,) --> Voeg by 'n tuple KAN NIE! --> t1[1] == 'Nuwe waarde' list(t2) = [5,6] --> Van tuple na lys
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
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) #Kontroleer of sleutel bestaan, Teruggee waarde van monthNumbers["key"] of 0 as dit nie bestaan nie
In stelle is daar geen herhalings 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 dit teenwoordig is, verwyder dit, as nie, niks myset.remove(10) #As dit teenwoordig is, 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 albei) 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 albei is
Die metode in __It__ sal die een wees wat deur sort gebruik word om te vergelyk of 'n objek van hierdie klas groter is as 'n ander
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 korter van foo of bar stop:
Lambda word gebruik om 'n funksie te definieer (lambda x,y: x+y)(5,3) = 8 --> Gebruik lambda as 'n eenvoudige funksie sorted(range(-5,6), key=lambda x: x** 2) = [0, -1, 1, -2, 2, -3, 3, -4, 4, -5, 5] --> Gebruik lambda om 'n lys te sorteer m = filter(lambda x: x % 3 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9]) = [3, 6, 9] --> Gebruik lambda om te filter 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 ]
As die voorwaarde vals is, sal die string op die skerm gedruk word.
'n Generator, in plaas daarvan om iets terug te gee, "gee" dit iets. Wanneer jy dit benader, sal dit die eerste waarde wat gegenereer is, "teruggee", dan kan jy dit weer benader en dit sal die volgende waarde wat gegenereer is, teruggee. So, al die waardes word nie terselfdertyd 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
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 --> Getal \s --> Spasie karakter[ \n\r\t\f] \S --> Nie-spasie karakter ^ --> Begin met $ --> Eindig met + --> Een of meer * --> 0 of meer ? --> 0 of 1 voorkoms
Opsies: re.search(pat,str,re.IGNORECASE) IGNORECASE DOTALL --> Laat kolletjie toe om nuwe lyn te pas MULTILINE --> Laat ^ en $ toe 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 produk from itertools import product --> Genereer kombinasies tussen 1 of meer lyste, moontlik herhalende waardes, kartesiese produk (distributiewe 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)]
permutasies from itertools import permutations --> Genereer kombinasies van alle karakters in 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
kombinasies from itertools import combinations --> Genereer alle moontlike kombinasies sonder om karakters te herhaal (as "ab" bestaan, genereer nie "ba") print(list(combinations('123',2))) --> [('1', '2'), ('1', '3'), ('2', '3')]
kombinasies_met_vervanging 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) 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')]
Decorator wat die tyd meet wat 'n funksie benodig om uitgevoer te word (van hier):
As jy dit uitvoer, sal jy iets soos die volgende sien:
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)