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
Comprimento de uma string
Dividir as palavras de uma string
Dividir a string em espaços em branco (space char, tabs, newlines)
Substituir partes da string
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
Encadear operadores
- quem vier primeiro, é executado primeiro
f-strings
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
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 (start, end 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', start, end) - 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", start, end) - Retorna TRUE se string terminar com o "sufixo", do contrário FALSE. Pode ser informado um intervalo para verificação.
mystring.find("sub", start, end) - 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", start, end) - 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", start, end) - 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", start, end) - 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
Logical Operators
Comparando tipos diferentes
Loop and While Loop
An iterable is an object that can return its members one at a time.
For-loop
Lists
Listas podem relacionar qualquer tipos de elementos, enquanto arrays apenas armazenam o mesmo tipo de dado.
While-loop