Basic Python
Last updated
Last updated
Aprenda e pratique Hacking na AWS:Treinamento HackTricks AWS Red Team Expert (ARTE) Aprenda e pratique Hacking no GCP: Treinamento HackTricks GCP Red Team Expert (GRTE)
list(xrange()) == range() --> No python3, range é o xrange do python2 (não é uma lista, mas um gerador) A diferença entre uma Tupla e uma Lista é que a posição de um valor em uma tupla lhe dá significado, mas as listas são apenas valores ordenados. As tuplas têm estruturas, mas as listas têm uma ordem.
Para elevar um número você usa: 3**2 (não 3^2) Se você fizer 2/3, ele retorna 1 porque está dividindo dois inteiros (int). Se você deseja decimais, deve dividir floats (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) = Lista de todos os métodos disponíveis help(str) = Definição da classe str "a".upper() = "A" "A".lower() = "a" "abc".capitalize() = "Abc" sum([1,2,3]) = 6 sorted([1,43,5,3,21,4])
Juntar caracteres 3 * ’a’ = ‘aaa’ ‘a’ + ‘b’ = ‘ab’ ‘a’ + str(3) = ‘a3’ [1,2,3]+[4,5]=[1,2,3,4,5]
Partes de uma lista ‘abc’[0] = ‘a’ 'abc’[-1] = ‘c’ 'abc’[1:3] = ‘bc’ de [1] a [2] "qwertyuiop"[:-1] = 'qwertyuio'
Comentários # Comentário de uma linha """ Comentário de várias linhas Outro """
Laços
t1 = (1, '2', 'três') t2 = (5, 6) t3 = t1 + t2 = (1, '2', 'três', 5, 6) (4,) = Singleton d = () tupla vazia d += (4,) --> Adicionando em uma tupla NÃO PODE! --> t1[1] == 'Novo valor' list(t2) = [5, 6] --> De tupla para lista
d = [] vazio 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) --> De lista para tupla
d = {} vazio monthNumbers={1:'Jan', 2: 'fev','fev':2}--> monthNumbers ->{1:'Jan', 2: 'fev','fev':2} monthNumbers[1] = 'Jan' monthNumbers['fev'] = 2 list(monthNumbers) = [1, 2, 'fev'] monthNumbers.values() = ['Jan', 'fev', 2] keys = [k for k in monthNumbers] a={'9':9} monthNumbers.update(a) = {'9':9, 1:'Jan', 2: 'fev','fev':2} mN = monthNumbers.copy() #Cópia independente monthNumbers.get('chave',0) #Verifica se a chave existe, Retorna o valor de monthNumbers["chave"] ou 0 se não existir
Nos conjuntos não há repetições myset = set(['a', 'b']) = {'a', 'b'} myset.add('c') = {'a', 'b', 'c'} myset.add('a') = {'a', 'b', 'c'} #Sem repetições myset.update([1, 2, 3]) = set(['a', 1, 2, 'b', 'c', 3]) myset.discard(10) #Se presente, remove, se não, nada myset.remove(10) #Se presente, remove, se não, gera exceção myset2 = set([1, 2, 3, 4]) myset.union(myset2) #Valores em myset OU myset2 myset.intersection(myset2) #Valores em myset E myset2 myset.difference(myset2) #Valores em myset mas não em myset2 myset.symmetric_difference(myset2) #Valores que não estão em myset E myset2 (não em ambos) myset.pop() #Obtém o primeiro elemento do conjunto e remove myset.intersection_update(myset2) #myset = Elementos em ambos myset e myset2 myset.difference_update(myset2) #myset = Elementos em myset mas não em myset2 myset.symmetric_difference_update(myset2) #myset = Elementos que não estão em ambos
O método em __It__ será o utilizado pelo sort para comparar se um objeto desta classe é maior que outro
Map é como: [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 para quando o mais curto entre foo ou bar para:
Lambda é usado para definir uma função (lambda x,y: x+y)(5,3) = 8 --> Use lambda como uma função simples sorted(range(-5,6), key=lambda x: x** 2) = [0, -1, 1, -2, 2, -3, 3, -4, 4, -5, 5] --> Use lambda para ordenar uma lista m = filter(lambda x: x % 3 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9]) = [3, 6, 9] --> Use lambda para filtrar reduce (lambda x,y: x*y, [1,2,3,4]) = 24
Se a condição for falsa, a string será impressa na tela
Um gerador, ao invés de retornar algo, "cede" algo. Quando você o acessa, ele irá "retornar" o primeiro valor gerado e, em seguida, você pode acessá-lo novamente e ele irá retornar o próximo valor gerado. Portanto, todos os valores não são gerados ao mesmo tempo e muita memória pode ser economizada usando isso em vez de uma lista com todos os valores.
Se você executar, verá algo como o seguinte:
Aprenda e pratique AWS Hacking: HackTricks Treinamento AWS Red Team Expert (ARTE) Aprenda e pratique GCP Hacking: HackTricks Treinamento GCP Red Team Expert (GRTE)