diff --git "a/Extens\303\265es.txt" "b/Extens\303\265es.txt" new file mode 100644 index 0000000..034663c --- /dev/null +++ "b/Extens\303\265es.txt" @@ -0,0 +1,3 @@ +Extensões do VSCODE a serem instaladas +- 1. +- 2. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..8b577c7 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# curso-python Bóson Treinamentos diff --git a/active-directory.py b/active-directory.py new file mode 100644 index 0000000..28d853b --- /dev/null +++ b/active-directory.py @@ -0,0 +1,64 @@ +# Install with 'pip install ms_active_directory' +from ms_active_directory import ADDomain + + +domain_dns_name = 'tiozaodolinux.com' +domain_servers = ['ldaps://auth.tiozaodolinux.com'] +domain_user='Administrator@tiozaodolinux.com' +domain_password='SuperSecretPassword@2025' +domain_user_attrs=['cn', 'sn', 'title', 'description', 'physicalDeliveryOfficeName', 'telephoneNumber', 'givenName', 'displayName', + 'department', 'company', 'name', 'sAMAccountName', 'userPrincipalName', 'mail', 'loginShell', 'objectGUID', 'objectSid' ] +domain_group_attrs=['cn', 'sn', 'description', 'name', 'sAMAccountName', 'member', 'objectGUID', 'objectSid'] + +domain = ADDomain(domain_dns_name, ldap_servers_or_uris=domain_servers) +session = domain.create_session_as_user(user=domain_user, password=domain_password) + +# # find_functional_level returns an enum indicating the level. +# # decision making based on level should be done based on the +# # needs of your application +# print(domain.find_functional_level()) + +# # might print "['EXTERNAL', 'DIGEST-MD5']" +# print(domain.find_supported_sasl_mechanisms()) + +# # returns a python datetime object in utc time +# curr_time = domain.find_current_time() + +# # allowed drift defaults to 5 minutes which is the kerberos standard, +# # but we can use a shorter window to detect drift before it causes an +# # outage. this returns a boolean +# synced = domain.is_close_in_time_to_localhost(allowed_drift_seconds=60) + +# # returns a map that maps server hostnames -> ip addresses, where +# # the hostnames are computers running dns services +# dns_map = session.find_dns_servers_for_domain() +# ip_addrs = dns_map.values() +# hostnames = dns_map.keys() +# print(f'DNS MAP = {dns_map}') +# print(f'IP ADDRS = {ip_addrs}') +# print(f'hostnames = {hostnames}') + +# Find user by name +user = session.find_user_by_sam_name('tiozao', domain_user_attrs) + +# Find group by name +group = session.find_group_by_sam_name('Turma da Monica', domain_group_attrs) + +# users and groups support a generic "get" for any attributes queried +print() +print(f''.rjust(70,'=')) +print(f'USER:'.ljust(10,'.'),f'{user.distinguished_name}') +print(f''.rjust(70,'=')) +for attr in domain_user_attrs: + if user.get(attr) != None: + print(attr.ljust(30,'-'),' : ',user.get(attr)) + +print() +print(f''.rjust(70,'=')) +print(f'GROUP:'.ljust(10,'.'),f'{group.distinguished_name}') +print(f''.rjust(70,'=')) + +for attr in domain_group_attrs: + if group.get(attr) != None: + print(attr.ljust(30,'-'),' : ',group.get(attr)) +# print(f'{attr}:\t\t{group.get(attr)}') diff --git a/aleatorios.py b/aleatorios.py new file mode 100644 index 0000000..8587c65 --- /dev/null +++ b/aleatorios.py @@ -0,0 +1,28 @@ +import random + +# valor = random.randint(1,20) +# print(valor) + +# print('Gerar cinco números aleatórios entre 1 e 50: \n') +# for i in range(5): +# n=random.randint(1,50) +# print(f'Número gerado: {n}') + +# valor = random.random() # gera um aleatório entre 0 e 1 +# print(f'Número gerado: {round(valor*10,2)}') # aleatório entre 1 e 10 com duas casas decimais + +# valor = random.uniform(1,100) +# print(f'Número: {round(valor,4)}') # entre 1 e 100 com duas decimais + +L=[2,4,6,9,10,13,14,16,18,20,21,27,33] +# n=random.choice(L) +# print(f'Número escolhido: {n}') # um aleatório de uma lista + +# n = random.sample(L,3) # três valores da lista L +# print(f'Números escolhidos: {n}') + +# Embaralhar +print(f'Exibir a lista original: {L}') +print(f'Embaralhar a lista e exibí-la:') +n=random.shuffle(L) +print(L) \ No newline at end of file diff --git a/arquivo.txt b/arquivo.txt new file mode 100644 index 0000000..7a7b18a --- /dev/null +++ b/arquivo.txt @@ -0,0 +1,5 @@ +Um arquivo é uma área em um dispositivo de armazenamento onde gravamos e lemos dados. +Arquivos de texto simples (plano) são uma sequência estruturada de linhas, contendo caracteres, sem informações sobre formatação. +Cada linha de um arquivo de texto é terminada com um caractere especial de fim de linha, o EOL (End Of Line) +No geral, o caractere EOL é o \n. + diff --git a/arquivos.py b/arquivos.py new file mode 100644 index 0000000..9d9a399 --- /dev/null +++ b/arquivos.py @@ -0,0 +1,27 @@ +# Manipulação de arquivos de texto + +# manipulador = open('arquivo.txt','r', encoding='utf-8') + +# print(f'Método read():\n') +# print(manipulador.read()) + +# print(f'Método readline():\n') +# print(manipulador.readline()) +# print(manipulador.readline()) + +# print(f'Método readlines():\n') +# print(manipulador.readlines()) + +try: + manipulador = open('arquivo.txt','r', encoding='utf-8') + for linha in manipulador: + linha = linha.rstrip() + print(linha) +except IOError: + print(f'Não foi possível abrir o arquivo') +else: + manipulador.close() + + + + diff --git "a/compreens\303\243o-de-lista.py" "b/compreens\303\243o-de-lista.py" new file mode 100644 index 0000000..8dd631e --- /dev/null +++ "b/compreens\303\243o-de-lista.py" @@ -0,0 +1,29 @@ +# Compreensões de lista +# Sintaxe +# expressão for item in lista + +# criar uma lista de quadrados de outra lista +numeros = [1,4,7,9,10,12,21] + +# método utilizando list e map com lambda +quadrados = list(map(lambda num: num**2, numeros)) +print(quadrados) + +# método utilizando compreensão de lista +quadrados = [num**2 for num in numeros] +print(quadrados) + +# criar uma lista de números pares de 0 a 10 +pares = [num for num in range(11) if num % 2 == 0] +print(pares) + +# contar qtde de vogais numa frase +frase = 'A lógica é apenas o princípio da sabedoria, e não o seu fim.' +vogais = ['a','e','i','o','u','á','é','í','ó','ú'] + +lista_vogais = [v for v in frase if v in vogais] +print(f'A frase "{frase}" possui {len(lista_vogais)} vogais') + +# distributiva entre valores de duas listas +distributiva = [k * m for k in [2,3,5] for m in [10,20,30]] +print(distributiva) diff --git a/condicionais.py b/condicionais.py new file mode 100644 index 0000000..94b3a86 --- /dev/null +++ b/condicionais.py @@ -0,0 +1,21 @@ +# Simpes, Composto, Encadeado + +## Calcular média + +n1 = n2 = 0.0 +media = 0.0 + +n1=float(input('Digite a primeira nota: ')) +n2=float(input('Digite a segunda nota: ')) +# Calcular a média aritmética das notas +media = (n1 + n2) / 2 + +if (media >= 7): + print('Resultado: Aprovado') + print('Parabéns!') +elif (media >= 5): + print('Aluno está de recuperação...') +else: + print('Aluno reprovado...') + +print('Sua média é {}'.format(media)) diff --git a/conjuntos.py b/conjuntos.py new file mode 100644 index 0000000..7e35034 --- /dev/null +++ b/conjuntos.py @@ -0,0 +1,55 @@ +# Set são conjuntos (não tem valores duplicados) + +planeta_anao = {'Plutão', 'Ceres', 'Eris', 'Haumea', 'Makemake'} +print(planeta_anao) +# print(len(planeta_anao)) + +# print('Ceres' in planeta_anao) +# print('Lua' not in planeta_anao) + +for astro in planeta_anao: + print(astro.upper()) + +astros = ['Lua', 'Venus', 'Sirius', 'Marte', 'Lua'] +print(astros) +astros_set = set(astros) +print(astros_set) + +astros1 = {'Lua', 'Venus', 'Sirius', 'Marte', 'Lua', 'Io'} +astros2 = {'Lua', 'Venus', 'Sirius', 'Marte', 'Lua', 'Cometa Halley'} +print(astros1 != astros2) + +# união de conjuntos +print(astros1 | astros2) +print(astros1.union(astros2)) + +# intersecção de conjuntos +print(astros1 & astros2) +print(astros1.intersection(astros2)) + +# diferença simétrica +print(astros1 ^ astros2) +print(astros1.symmetric_difference(astros2)) + +# adicionar elementos +astros1.add('Urano') +astros1.add('Sol') +print(astros1) + +# remover elementos +astros1.remove('Io') +print(astros1) + +# se não existir não dá erro na remoção +astros1.discard('Plutão') +print(astros1) + +# remoção aleatoriamente +astros1.pop() +print(astros1) + + + + + + diff --git a/dicionarios.py b/dicionarios.py new file mode 100644 index 0000000..29a827d --- /dev/null +++ b/dicionarios.py @@ -0,0 +1,49 @@ +# Dicionários permitem armazenar dados em pares (chaves, valor) - "arrays associativos" + +elemento = { + 'z': 3, + 'nome': 'Lítio', + 'grupo': 'Metais Alcalinos', + 'densidade': 0.534 +} + +print(elemento) + +print(f"Elemento: {elemento['nome']}") +print(f"Densidade: {elemento['densidade']}") +print(f'O dicionário possui {len(elemento)} elementos') + +# Atualizar uma entrada +elemento['grupo']='Alcalinos' +print(elemento) + +# Adicionar uma entrada +elemento['periodo']=1 +print(elemento) + +# Exclusão de entrada +del elemento['periodo'] +print(elemento) + +# # Limpar dicioinario +# elemento.clear() +# print(elemento) + +# del elemento +# print(elemento) + +print(elemento.items()) +for i in elemento.items(): + print(i) + +print(elemento.keys()) +for i in elemento.keys(): + print(i) + +print(elemento.values()) +for i in elemento.values(): + print(i) + +# Desempacotar itens e chaves +for i, j in elemento.items(): + print(f'{i}: {j}') \ No newline at end of file diff --git a/escopo.py b/escopo.py new file mode 100644 index 0000000..7ee72d0 --- /dev/null +++ b/escopo.py @@ -0,0 +1,17 @@ +# Escopo Global e Local + +var_global = 'Curso Completo de Python' + +def escreve_texto(): + global var_global + var_global = 'Bancos de Dados com SQL' + var_local = "Jarbas Peixoto" + print(f'Variável Global: {var_global}') + print(f'Variável Local: {var_local}') + +print(f'Executa a função escreve_texto()') +escreve_texto() + +print('Tentar acessar as variáveis diretamente') +print(f'Variável Global: {var_global}') +#print(f'Variável Local: {var_local}') diff --git "a/excess\303\265es-raise.py" "b/excess\303\265es-raise.py" new file mode 100644 index 0000000..96239f0 --- /dev/null +++ "b/excess\303\265es-raise.py" @@ -0,0 +1,19 @@ +from math import sqrt + +class NumeroNegativoError(Exception): + def __init__(self): + pass + +if __name__ == '__main__': + try: + num = int(input("Digite um número positivo: ")) + if num < 0: + raise NumeroNegativoError + except NumeroNegativoError: + print(f'Foi fornecido um número negativo') + else: + print(f'A raiz quadada de {num} é {sqrt(num)}') + finally: + print(f'Fim do cálculo.') + + \ No newline at end of file diff --git "a/excess\303\265es.py" "b/excess\303\265es.py" new file mode 100644 index 0000000..074b39a --- /dev/null +++ "b/excess\303\265es.py" @@ -0,0 +1,27 @@ +# Excessão é um objeto que representa um erro ao executar o programa +# Blocos try ... except + +def div(k, j): + return round(k / j, 2) + +if __name__ == '__main__': + while True: + try: + n1=int(input('Digite um número: ')) + n2=int(input('Digite outro número: ')) + break + except ValueError: + print(f"Ocorreu um erro ao ler o valor. Tente novamente.") + + try: + r = div(n1, n2) + except ZeroDivisionError: + print('Não é possível dividir por zero!') + except: + print('Ocorreu um erro desconhecido...') + else: + print(f'Resultado: {r}') + finally: + print('\nFim do cálculo') + + diff --git a/for.py b/for.py new file mode 100644 index 0000000..651356a --- /dev/null +++ b/for.py @@ -0,0 +1,25 @@ +# lista = [2,6,9,4,0,12,3,7] +# for item in lista: +# print(f'O valor de item = {item}') + +# palavra = 'Tiozão' +# for letra in palavra: +# print(f'O valor da letra = {letra}') + +# for numero in range(1,11): +# print(numero) + +# nome = input('Digite seu nome: ') +# for x in range(10): +# print(f'{x+1} {nome}') + +# range(valor_inicial, valor_final +1, incremento) +# for x in range(21,2,-3): +# print(x) + +# Tuplas +pedras = ('Rubi', 'Esmeralda', 'Quartzo', 'Safira', 'Diamente', 'Turmalina') +for pedra in pedras: + if pedra == 'Quartzo': + continue + print(pedra) diff --git "a/fun\303\247\303\265es-especiais.py" "b/fun\303\247\303\265es-especiais.py" new file mode 100644 index 0000000..b53b3bc --- /dev/null +++ "b/fun\303\247\303\265es-especiais.py" @@ -0,0 +1,63 @@ +# Funções lambda (anônimas) +# Sintaxe: +# lambda argumentos: expressão + +# quadrado = lambda x: x**2 +# for i in range(1,11): +# print(quadrado(i)) + +# par = lambda x: x % 2 == 0 +# print(par(8)) + +# # converter temperatura (farenheith to celsius) +# f_c = lambda f: (f-32) * 5/9 +# print(f_c(212)) + +# Função map() +# Sintaxe +# map(função, iterável) + +num = [1,2,3,4,5,6,7,8] +dobro = list(map(lambda x: x*2,num)) +print(num) +print(dobro) + +palavras = ['Python', 'é', 'uma', 'linguagem', 'de', 'programação'] +maiusculas = list(map(str.upper,palavras)) +print(palavras) +print(maiusculas) + +# Função filter() +# Sintaxe: +# filter(função, sequência) + +def numeros_pares(n): + return n % 2 == 0 + +numeros = [1,2,3,4,5,6,7,8,9,10,11,12,13,14] +num_par = list(filter(numeros_pares, numeros)) +print(numeros) +print(num_par) + +num_impar = list(filter(lambda x: x % 2 != 0, numeros)) +print(num_impar) + +# Função reduce() +# Sintaxe +# reduce(função, sequência, valor_inicial) +from functools import reduce + +def mult(x, y): + return x * y + +numeros = [1,2,3,4,5,6] +total = reduce(mult, numeros) +print(numeros) +print(total) + +# Soma cumulativa dos quadrados de valores , usando lambda +numeros = [1,2,3,4] +# ((1² + 2²)² + 3²)² + 4² +total = reduce(lambda x,y: x**2 + y**2, numeros) +print(numeros) +print(total) diff --git "a/fun\303\247\303\265es.py" "b/fun\303\247\303\265es.py" new file mode 100644 index 0000000..07cbccd --- /dev/null +++ "b/fun\303\247\303\265es.py" @@ -0,0 +1,70 @@ +# Funções Motivos +# Modularização, Reúso de Código, Legibilidade + +# Função sem argumentos +def mensagem(): + print('Bóson Treinamentos em Tecnologia') + print('Curso Completo de Python') + +# mensagem() + +# Função com argumentos +def soma(a,b): + print(a+b) + +# soma(12,7) + +# Retorna valor +def mult(x, y): + return x*y + +# a=5 +# b=8 +# c=mult(a,b) +# print(f'O produto de {a} e {b} é {c}') + +def div(k, j): + if j != 0: + return k/j + else: + return "Impossível dividir por zero!" + +# if __name__ == '__main__': +# a = int(input('Digite um número: ')) +# b = int(input('Digite um número: ')) + +# r = div(a,b) +# print(f'{a} dividido por {b} é igual à {r}') + +# Quadrados de numeros +def quadrado(val): + quadrados = [] + for x in val: + quadrados.append(x ** 2) + return quadrados + +def contar(num=11, caractere='+'): + for i in range(1,num): + print(caractere) + +x=5 +y=6 +z=3 + +def soma_mult(a,b,c=0): + if c == 0: + return a * b + else: + return a + b + c + +if __name__ == '__main__': + # valores = [2,5,7,9,12] + # resultados = quadrado(valores) + # for g in resultados: + # print(g) + + # print(resultados) + + # contar(caractere='&',num=5) + res = soma_mult(x,y,z) + print(res) diff --git "a/la\303\247os-encadeados.py" "b/la\303\247os-encadeados.py" new file mode 100644 index 0000000..11ea89b --- /dev/null +++ "b/la\303\247os-encadeados.py" @@ -0,0 +1,12 @@ +# for cont_ex in range(1,6): +# print(f'\nRodada: {cont_ex}') +# for cont_in in range(5,0,-1): +# print(f'Valor: {cont_in}') +# print('Fim dos lcaços!') + +import random +for A in range(1,6): + print(f'\nConjunto {A}') + for B in range(5): + num = random.randint(1,100) + print(f'Valor: {num}') \ No newline at end of file diff --git a/listas.py b/listas.py new file mode 100644 index 0000000..126a0a5 --- /dev/null +++ b/listas.py @@ -0,0 +1,64 @@ +# Lista: representa uma sequência de valores + +# Sintaxe: nome_lista = [valores] + +alunos = [] + +for i in range(2): + print("Informações do aluno[",i+1,"]:") + matricula = input(" Matricula: ") + nota = float(input(" Nota: ")) + aluno = [ matricula, nota ] + alunos.append(aluno) + + +for aluno in alunos: + matricula = aluno[0] + nota = aluno[1] + print("O aluno", matricula, "tirou a nota:", nota) + +#notas = [5,7,8,6,9] +#print(notas) + +n1=[4,6,7,8,0,3] +n2=[1,6,3,0,12,11] +valores=n1+n2 +valores[0]=9 +# #print(valores[-2:]) +# print(len(valores)) +# print(sorted(valores,reverse=True)) +# print(sum(valores)) +# print(min(valores)) +# print(max(valores)) + +# valores.append(13) +# print(valores) +# valores.pop() +# print(valores) +# valores.pop(3) +# print(valores) +# valores.insert(3,21) +# print(valores) +# print(12 in valores) + + +# # Planetas +# planetas=['Mercúrio','Vênus', 'Marte', 'Saturno', 'Urano', 'Neturo'] +# for planeta in planetas: +# print(planeta) + +# Crie um script que peça para o usuário digitar o nome +# de 5 bebidas favoritas dele, armazenando esses valores em uma lista +# Na sequência, exiba na tela os elementos da lista em ordem alfabética, um por linna, usando um laço de repetição for. + +bebidas=[] +for i in range(5): + #print(f'Digite uma bebida favorita: ') + bebida=input(f'Digite uma bebida favorita: ') + bebidas.append(bebida) + +bebidas.sort() +print(f'\nBebidas escolhidas:') +for bebida in bebidas: + print(bebida) +print('Saude') \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..599b0cd --- /dev/null +++ b/main.py @@ -0,0 +1,19 @@ +from flask import Flask, render_template + +app = Flask(__name__) + +# rotas +@app.route('/') +def homepage(): + #return "Meu site no Flask" + return render_template('homepage.html') + +@app.route('/blog') +def blog(): + return "Meu Blog no Flask" + +if __name__ == '__main__': + app.run() + + + diff --git "a/matem\303\241tica.py" "b/matem\303\241tica.py" new file mode 100644 index 0000000..f90b7f2 --- /dev/null +++ "b/matem\303\241tica.py" @@ -0,0 +1,22 @@ +# Funções builtin + +valores = [2,5,8,-1,0,11,7,-6] +print(max(valores)) +print(min(valores)) + +a = -5 +b = 4 +print(abs(a)) +print(pow(a,b)) +c = 2.789011 +print(round(c,3)) + +import math +print(math.pi) + +x = 8 +y = 100 +raiz_quadrada = math.sqrt(x) +print(round(raiz_quadrada,3)) + +print(math.factorial(y)) \ No newline at end of file diff --git a/mod_func.py b/mod_func.py new file mode 100644 index 0000000..b517c07 --- /dev/null +++ b/mod_func.py @@ -0,0 +1,24 @@ +# Módulo com funções variadas + +# Função que exibe mensagem de boras-vindas: +def mensagem(): + print('Bóson Treinamentos em Tecnologia!\n') + +# Função para cálculo de fatoria de um número: +def fatorial(numero): + if numero < 0: + return 'Digite um valor maior ou igual à zero' + else: + if numero==0 or numero==1: + return 1 + else: + return numero * fatorial(numero - 1) + +# Função para retornar uma série de Fibonacci até # um valor X: +def fibo(n): + resultado = [] + a, b = 0, 1 + while b <= n: + resultado.append(b) + a, b = b, a+b + return resultado \ No newline at end of file diff --git a/modulos.py b/modulos.py new file mode 100644 index 0000000..cff6bf5 --- /dev/null +++ b/modulos.py @@ -0,0 +1,27 @@ +import math +print(math.sqrt(81)) + +from math import sqrt, sin +print(sqrt(81)) + +import math as m +print(m.sqrt(99)) + +# É perigoso pois outros módulos importado podem conflitar +from math import * +print(sqrt(45)) + + +import mod_func as mf +if __name__ == "__main__": + mf.mensagem() + + num = int(input("Digite um número inteiro positivo: ")) + + print(f'\nCalcular fatorial do número:') + fat = mf.fatorial(num) + print(f'O fatorial é {fat}') + + print(f'\nCalcular sequencia de fibonacci:') + fib = mf.fibo(num) + print(f'O fatorial é {fib}') \ No newline at end of file diff --git a/objetos.py b/objetos.py new file mode 100644 index 0000000..3d446d0 --- /dev/null +++ b/objetos.py @@ -0,0 +1,75 @@ +# Programação Orientação a Objetos em Python +# Paradigma de programação (forma de programação) + +# Classes e Objetos + +class Veiculo: + def movimentar(self): + print(f'Sou um veículo e me desloco!') + + def __init__(self, fabricante, modelo): + # Encapsulamento de atributo com '__' + self.__fabricante = fabricante + self.__modelo = modelo + self.__num_registro = None + + # Getter + def get_fabr_modelo(self): + print(f'Modelo: {self.__modelo}, Fabricante: {self.__fabricante}') + + def get_num_registro(self): + return self.__num_registro + + # Setter + def set_num_registro(self, registro): + self.__num_registro = registro + +# HERANÇA +class Carro(Veiculo): + # O método __INIT__ será herdado + def movimentar(self): + print(f'Sou um Carro e ando pelas ruas') + +class Motocicleta(Veiculo): + def movimentar(self): + print(f'Sou uma moto e corro muito!') + +class Aviao(Veiculo): + def __init__(self, fabricante, modelo, categoria): + super().__init__(fabricante, modelo) + self.__cat = categoria + + def get_categoria(self): + return self.__cat + + def movimentar(self): + print(f'Eu voo alto') + + +if __name__ == '__main__': + meu_veiculo = Veiculo('GM', 'Cadillac Escalade') + meu_veiculo.movimentar() + #print(meu_veiculo.fabricante) + #print(meu_veiculo.modelo) + meu_veiculo.get_fabr_modelo() + meu_veiculo.set_num_registro('490321-1') + print(f'Registro: {meu_veiculo.get_num_registro()}') + + meu_carro = Carro('Volkswagen', 'Polo') + meu_carro.movimentar() + meu_carro.get_fabr_modelo() + + seu_carro = Carro('Audi', 'A5 Sportback') + seu_carro.movimentar() + seu_carro.get_fabr_modelo() + + moto = Motocicleta('Harley-Davidson', 'Nighster Special') + moto.movimentar() + moto.get_fabr_modelo() + + meu_aviao = Aviao('Boeing', '747', 'Comercial') + meu_aviao.movimentar() + meu_aviao.get_fabr_modelo() + print(f'Categoria: {meu_aviao.get_categoria()}') + + \ No newline at end of file diff --git a/operadores-aritmeticos.py b/operadores-aritmeticos.py new file mode 100644 index 0000000..bb51bd9 --- /dev/null +++ b/operadores-aritmeticos.py @@ -0,0 +1,10 @@ +x = y = z = 0 + +# Uso do castin +x = int(input('Digite um número: ')) +y = int(input('Digite outro número: ')) + +z = x + y + +print('A soma dos dois valores é',z) + diff --git a/operadores-comparacao.py b/operadores-comparacao.py new file mode 100644 index 0000000..a509b4d --- /dev/null +++ b/operadores-comparacao.py @@ -0,0 +1,16 @@ +x =y = z = False + +n1 = n2 = 0 + +print("Digite um número: ") +n1 = int(input()) +n2 = int(input("Digite outro número: ")) + +x = n1 == n2 +print('São iguais?', x, '\n') + +z = n1 > n2 +print(n1, 'é maior que', n2, '? ', z, '\n') + +y = n1 != n2 +print('São diferentes?' + str(y)) \ No newline at end of file diff --git a/operadores-logicos.py b/operadores-logicos.py new file mode 100644 index 0000000..dd91174 --- /dev/null +++ b/operadores-logicos.py @@ -0,0 +1,19 @@ +## Operador and +# idade = 15 +# altura = 1.75 +# resultado = (idade >= 18) and (altura >= 1.70) +# msg = 'Pode participar do evento? ' + str(resultado) +# print(msg) + +## Operador or +# porta = 'a' +# janela = 'f' +# alarme = (porta=='a') or (janela=='a') +# msg='Alarme disparado? ' + str(alarme) +# print(msg) + +## Operador not +tem_dinheiro = False +tem_dinheiro = not tem_dinheiro +msg='Tem dinheiro? ' + str(tem_dinheiro) +print(msg) \ No newline at end of file diff --git a/os.py b/os.py new file mode 100644 index 0000000..a4d5b42 --- /dev/null +++ b/os.py @@ -0,0 +1,18 @@ +# https://docs.python.org/3/library/os.html +# https://docs.python.org/3/library/pathlib.html + +import os +os.chdir('/tmp/Teste') +print(f'Diretório atual: {os.getcwd()}') + +padrao_nome = input('Qual o padrão de nomes de arquivos a usar (sem a extensão)? ') + +for contador, arq in enumerate(os.listdir()): + if os.path.isfile(arq): + nome_arq, exten_arq = os.path.splitext(arq) + nome_arq = padrao_nome + ' ' + str(contador) + + nome_novo = f'{nome_arq}{exten_arq}' + os.rename(arq, nome_novo) + +print(f'Arquivos renomeados.') diff --git a/print.py b/print.py new file mode 100644 index 0000000..e89155d --- /dev/null +++ b/print.py @@ -0,0 +1,41 @@ +# Sintaxe: +# print(objetos, argumentos) + +# mensagem = 'Função print()' +# print(mensagem) +# print('Aula de Python') + +# nome = 'Jarbas Peixoto' +# canal = 'Tiozão do Linux' +# print(canal,'-',nome) + +# nome=input('Digite seu nome: ') +# msg= 'Olá ' + nome + '! Bem-vindo o curso de Python!' +# print(msg) +# print('Outro texto') + +# print('Imprime a mensagem e muda de linha') +# print('Imprime a mensagem e permanece na linha.',end='') +# print('Continuo na mesma linha') + +# nome = 'Maria' +# idade = 30 +# msg_formatada = 'O nome dela é {0} e ela tem {1} anos'.format(nome,idade) +# print(msg_formatada) + +# nome = 'Jarbas' +# peso = 73.50 +# msg = f'Olá, meu nome é {nome} e eu peso {peso} quilos.' +# print(msg) + +# a = 10 +# b = 5 +# res = f'A some de {a} com {b} é igual a {a+b}' +# print(res) + +# valor = 123.456789 +# print(f'O valor é "{valor:.2f}"') + +nome = 'João' +idade = 32 +print(f'Nome: {nome}\tIdade: {idade}') \ No newline at end of file diff --git a/recursividade.py b/recursividade.py new file mode 100644 index 0000000..590f930 --- /dev/null +++ b/recursividade.py @@ -0,0 +1,23 @@ +# Parece mágica no começo, mas vai funcionar + +# Formula geral para o fatorial: +# fatorial(num)=1, se num=0 ou se num=1 # 'Caso-Base' - vai finalizar +# faturial(num) = num * fatorial(num -1), para num>1 # 'Caso-Recursivo' +# 4! -> 4 * fatorial(3) = 4 *3 * fatorial(2) = 4 * 3 * 2 * fatorial(1) +# 4! = 4 * 3 * 2 * 1 = 24 + +def fatorial(numero): + if numero == 0 or numero == 1: + return 1 + else: + return numero * fatorial(numero-1) + +if __name__ == '__main__': + x = int(input("Digite um número positivo para calcular o fatorial: ")) + try: + res = fatorial(x) + except RecursionError: + print(f'O número fornecido é muito grande ou negativo') + else: + print(f'O fatorial de {x} é {res}') + diff --git a/strings.py b/strings.py new file mode 100644 index 0000000..b9d8d8f --- /dev/null +++ b/strings.py @@ -0,0 +1,80 @@ +# nome = 'Curso de Python' +# instrutor = 'Fábio' +# letra = nome[2] +# print(letra) +# print(len(nome)) +# print(nome+' com '+instrutor) + +# frase = 'Vamos aprender Python hoje.' +# palavras = frase.split() +# print(palavras[1]) +# for palavra in palavras: +# print(palavra) + +# for letra in frase: +# print(letra) + +# print(frase[7:19]) +# print(frase[-3:]) + +# email = input('Digite seu endereço de email: ') +# arroba = email.find('@') +# print(arroba) + +# usuario=email[0:arroba] +# dominio=email[arroba+1:] + +# print(usuario) +# print(dominio) + +# produtos = 'carbonato de sódio e óxido de zinco' +# print('sódio' in produtos) +# print('magnésio' not in produtos) + +# item = 'hipoclorito' +# pos = item.find('clor') +# print(pos) +# pos = item.find('flu') +# print(pos) + +# objeto_celeste = 'galáxia esPiral M31' +# print(objeto_celeste.upper()) +# print(objeto_celeste.lower()) +# print(objeto_celeste.capitalize()) +# print(objeto_celeste.title()) + +# suplemento = 'cloreto de magnésio' +# n_suplemento = suplemento.replace('magnésio','zinco') +# print(suplemento) +# print(n_suplemento) + +## Remoção de 'espaços' +# frase = ' Ômega 3 é bom para a saúde! ' +# print(frase) +# print(frase.lstrip()) +# print(frase.rstrip()) +# print(frase.strip()) + +# ## Alinhamento +# fruta = 'Abacate' +# print(fruta) +# print(fruta.rjust(20)) +# print(fruta.center(20)) +# print(fruta.ljust(20,'-')) +# print(fruta.center(20,'-')) + +# p = 'Bóson Treinamentos' +# print(p.startswith('Bó')) +# print(p.endswith('tos')) + +## Docstrings +texto=""" +Geralmente utilizada para documentação +Pode ser inserida dentro de um módulo, função +ou classe no Python, entre outros locais + Respeita deslocamento do texto e é multilinhas +""" +print(texto) + +# Mais sobre manipulação de strings em Python: +# https://docs.python.org/3/library/stdtypes.html#string-methods diff --git a/tempCodeRunnerFile.py b/tempCodeRunnerFile.py new file mode 100644 index 0000000..5f64343 --- /dev/null +++ b/tempCodeRunnerFile.py @@ -0,0 +1,4 @@ +a=5 +# b=8 +# c=mult(a,b) +# print(f'O produto de {a} e {b} é {c}') \ No newline at end of file diff --git a/templates/homepage.html b/templates/homepage.html new file mode 100644 index 0000000..cb02d70 --- /dev/null +++ b/templates/homepage.html @@ -0,0 +1,11 @@ + + +
+ + +