Resumão Python

 



REPL

read-evaluate-print-loop


Operadores

+  -  *  / 

* e /  possuem precedência na execução do código e mesmo peso, de forma que a ordem influencia no resultado

( )'s podem ser utilizados para descriminar adequadamente o cálculo

resto da divisão

// parte inteira da divisão (floor division)

** potência

podemos utilizar _ underscore para pegar o ultimo valor retornado


Variáveis

=  atribuir valor a uma variável

type(variável)  retorna o tipo da variável

Nomeando variáveis:

  - Case-sensitive (letras maiúsculas e minúsculas)

  - Pode usar underscore, inclusive no início

  - não pode outros símbolos

  - não pode começar com números

  - não pode conter espaços

  - preferível usar underscore no lugar de camel-case, mas não é proibido


String

'a' + 'b'  >>> 'ab'    concatenar

'ab' * 4  >>> 'abababab   repetir texto concatenando

'string'  ou  "string's"   aceita ambas as notações para o caso de aspas simples no texto

"I'm a so-called \"script kiddie\""  ou  'I\'m a so-called "script kiddie"'  tbm aceita o backslash para dar um escaping nesses caracteres especiais (evitar quando possível, pois deixa o código menos legível)

"""He said: "Hello, I've got a question" from the audience"""    tbm aceita o 3* aspas duplas para dar o escaping ou multiline text

o python poderá retornar o texto multilinhas com vários tripos de escaping:

      \n A newline (Newlines are generated with your return key). Advances to the next

      \r Carriage return: takes you back to the start of the line, without advancing to the next line

      \t A tab character

      \\ The slash character itself: because it is used as the start of escape sequences, we need to escape this character too. Python is quite forgiving if you forget to escape it, though.


Pegar uma letra da string 

     - toda string é uma lista de chars que pode selecionar um item especifico

>>> mystring = 'Hello world'
>>> mystring[2]
'l'
>>> mystring[0]
'H'


Comprimento de uma string

len("I wonder how long this string will be...")
40


Dividir as palavras de uma string

'Hello world'.split(' ')
['Hello', 'world']


Dividir a string em espaços em branco (space char, tabs, newlines)

'Hello \t\n there,\t\t\t stranger.'.split()
['Hello', 'there,', 'stranger.']


Substituir partes da string

'Hello world'.replace('l', '_')
'He__o wor_d


Reverter uma string

     - Slicing operator, which looks like this: mystring[start:stop:step_size]

     - Nós reverteremos a string do fim para o começo, usando um passo negativo -1. 

     - Deixando o início e fim vazios, garantimos que toda a string seja verificada

'Hello world'[::-1]
'dlrow olleH'


Encadear operadores

     - quem vier primeiro, é executado primeiro

'Hello world'.replace('world', 'student').upper()
'HELLO STUDENT'


f-strings 

>>> f'3 + 4 = {3+4}'
'3 + 4 = 7'
>>> my_age = 40
>>> f'My age is, unfortunately, not {my_age-8}'
'My age is, unfortunately, not 32'

F-strings indicam ao python, para procurar chaves e dentro destas chaves, podemos inserir qualquer expressão python


Quickly printing a variable

https://docs.python.org/3/reference/lexical_analysis.html#f-strings

name = "John"
age = 56
print(f"{name=}, {age=}") >>> name='John', age=56


String operations 

(https://docs.python.org/3/library/stdtypes.html#string-methods)

mystring.capitalize() - primeira letra maiúscula

mystring.title() - primeira letra de cada palavra em maiúscula

mystring.casefold() - simplifica a string e coloca toda em letras minúsculas para uma comparação de strings mais "limpa"

mystring.center(width) - retorna a string centralizada num comprimento de caracteres definido (se width menor que o comprimento da string, retorna a própria string

mystring.count("sub", start, end) - retorna o número de ocorrências da "sub" informada na string, dentro do intervalo informado (startend não são obrigatórios)

          mystring.count("sub") -> contar em toda string

          mystring.count(") -> contar espaços em branco na string

          mystring.count("") -> retorna o comprimento da string +1

 mystring.startswith('prefixo'startend) - Retorna TRUE se a string começar com o 'prefixo', do contrário FALSE. Pode ser informado um intervalo para verificação.

mystring.endswith("sufixo"startend) - Retorna TRUE se string terminar com o "sufixo", do contrário FALSE. Pode ser informado um intervalo para verificação.

 mystring.find("sub"startend) - Retorna a menor posição ao procurar a "sub" informada na string, dentro do intervalo informado (start, end não são obrigatórios). Retorna -1 se não encontrar.

mystring.index("sub"startend) - Retorna a menor posição ao procurar a "sub" informada na string, dentro do intervalo informado (start, end não são obrigatórios). Retorna ValueError se não encontrar.

 mystring.rfind("sub"startend) - Retorna a maior posição ao procurar a "sub" informada na string, dentro do intervalo informado (start, end não são obrigatórios). Retorna -1 se não encontrar.

mystring.rindex("sub"startend) - Retorna a maior posição ao procurar a "sub" informada na string, dentro do intervalo informado (start, end não são obrigatórios). Retorna ValueError se não encontrar.

 mystring.isalnum() - Retorna TRUE se string é composta por caracteres alfanuméricos e possui pelo menos um caractere, do contrário FALSE

 mystring.isalpha() - Retorna TRUE se string é composta por letras do alfabeto e possui pelo menos um caractere, do contrário FALSE

  mystring.islower() - Retorna TRUE se todos os caracteres da string estão lowercase, do contrário FALSE

 mystring.isupper() - Retorna TRUE se todos os caracteres da string estão uppercase, do contrário FALSE

 mystring.isnumeric() - Retorna TRUE se string é composta por caracteres númericos e possui pelo menos um caractere, do contrário FALSE

 mystring.isspace() - Retorna TRUE se string é composta somente por espaços em branco e possui pelo menos um caractere, do contrário FALSE

 mystring.join('iterable str') - retorna uma string composta pela iteração da string 'iterable str' com mystring

              '-'.join("banana") -> 'b-a-n-a-n-a'

 mystring.lower() - Retorna a string convertida para lowercase

  mystring.upper() - Retorna a string convertida para uppercase

  mystring.swapcase() - Retorna a string convertida de lowercase para uppercase e vice-versa

  mystring.lstrip("lista caract") - Retorna a string com os caracteres iniciais da lista removidos.

             ' spacious '.lstrip() -> 'spacious   ' se deixar vazio, remove os espaços em branco iniciais

       'www.example.com'.lstrip('cmowz.') -> 'example.com'

       'Arthur: three!'.lstrip('Arthur: ') -> 'ee!'

 mystring.rstrip("lista caract") - Retorna a string com os caracteres finais da lista removidos.

 mystring.strip("lista caract") - Retorna a string com os caracteres da lista removidos.

 mystring.removeprefix('prefixo') - retorna o texto sem o 'prefixo', se string iniciar com a string 'prefixo' definida, Case-Sensitive

 mystring.removesuffix('sufixo') - retorna o texto sem o 'sufixo', se string iniciar com a string 'sufixo' definids, Case-Sensitive

 mystring.replace('old', 'new', count) - retorna o texto com a substituição da string 'old' por a string  'new'. Count refere-se a quantidade de substituições a serem executadas.

 mystring.split('separador', maxplit=1) - retorna uma lista com cada trecho da string definido pela string separador'. 

            '1,2,3'.split() - > ['1,2,3']  não dividiu

           '1,2,3'.split(',') - > ['1', '2', '3'] dividiu todos os trechos

           '1,2,,3,'.split(',') - > ['1', '2','', '3','']

           '1,2,3'.split(',', maxsplit=1) - > ['1', '2,3']   executou uma divisão

           '1,2,3'.split(',', maxsplit=0) - > ['1,2,3']   não dividiu

           '1,2,3'.split(',', maxsplit=-1) - > ['1', '2', '3']   dividiu todos

 mystring.rsplit('separador', maxplit=1) - mesmo que split, executando do fim para o começo

           '1,2,3'.rsplit(',', maxsplit=1) - > ['1,2', '3']   executou uma divisão do fim para o começo

 mystring.splitlines() - Retorna uma lista de trechos da string separados por line boundaries,  para manter as line breaks na list, usar o argumento keepends=TRUE

              'ab c\n\nde fg\rkl\r\n'.splitlines() -> ['ab c', '', 'de fg', 'kl']

        'ab c\n\nde fg\rkl\r\n'.splitlines(keepends=True) -> ['ab c\n', '\n', 'de fg\r','kl\r\n']

        "".splitlines() -> []

        "One line\n".splitlines() -> ['One line']

        'Two lines\n'.split('\n') -> ['Two lines', '']


    Representation      Description

    \n                 Line Feed

    \r                 Carriage Return

    \r\n               Carriage Return + Line Feed

    \v or \x0b         Line Tabulation

    \f or \x0c         Form Feed

    \x1c               File Separator

    \x1d               Group Separator

    \x1e               Record Separator

    \x85               Next Line (C1 Control Code)

    \u2028             Line Separator

    \u2029             Paragraph Separator

Print Function 

print(1) -> 1

print('Some text') -> Some text

print('A tab:\t and some text') -> A tab: and some text

print() ou print('\n') -> 

print('This is my age:', 39) -> This is my age: 39

Boolean and Conditional Programming: if.. else


Logical Operators

2 > 1 TRUE Greater Than
2 < 1 FALSE    Less Than
2 < 3 < 4 < 5 < 6 TRUE
2 < 3 > 2 TRUE
3 <= 3 TRUE Greater than or equal to
3 >= 2 TRUE Smaller than or equal to
2 == 2 TRUE Is equal
4 != 5 TRUE     Is not equal
Strings (unicode https://en.wikipedia.org/wiki/Unicode) 'a' == 'a' TRUE
'a' > 'b' FALSE 'A' < 'a' TRUE Uppercase letters are ‘smaller’ than lowercase letters '1' < 'a' TRUE Digits are smaller than letters

Logical Operators

AND (true if both are true) True and False == False False and False == False True and True == True
OR (true if one is true) True or False == True True or True == True False or False == False NOT (negates thats follow) not True == False not False == True

Comparando tipos diferentes

True == 1 True False == 0 True True + True 2 False + False 0 False + True 1 True + 3 4

Loop and While Loop


An iterable is an object that can return its members one at a time.


For-loop

for <variable> in <iterable>:
... do something with variable
for
letter in 'Hello':
... print(letter)
...
H
e
l
l
o

Lists

Listas podem relacionar qualquer tipos de elementos, enquanto arrays apenas armazenam o mesmo tipo de dado.

>>> mylist = [1, 'a', 'Hello']
>>> for item in mylist:
... print(item)
...
1
a
Hello
>>> mylist = [1, 2, 'Hello', ['a', 'b'] ]
>>> mylist[0]
1
>>> mylist[0] + mylist[1]
3
>>> mylist[2]
'Hello'
>>> mylist[3][0]
'a'

While-loop