sábado, 9 de março de 2024

Pacotes em Python, como importá-los: import ou from ... import ...

Pacotes em Python



Quando importamos pacotes ou modulos em Python, podemos observar que encontramos duas nomenclaturas.

import nome_pacote

ou

from nome_pacote import nome_funcao


 Agora bem, podemos ter a 😏dúvida quando usar import ou from ... import .... ou simplesmente não entender😒 por que é implementada uma ou outra.


Tudo isso ocorre por desconhecimento, já que muitos iniciamos estudando Python, sem ter bem definidas as bases da linguagem. E é por isso que crie este post, para deixar bem explicado as duas nomenclaturas, eu sou Nadi Duno, e sou professora de TI e gosto de criar conteúdo para principiantes, altamente didático e ilustrativo.


Em caso que sejas principiante em Python e desejes, que te explique algum apartado da linguagem, com uma didática diferente que possas entender, deixa aqui tu solicitude, eu amaria💜 poder ajudar-te.

 

Agora sim, mãos na massa.👊

 

Iniciemos entendendo que é um pacote ou modulo.

 

Um pacote é um conjunto de códigos que oferecem funcionalidades especificas, para auxiliar-te.

 

Por exemplo, se desejas fazer um programa que apresente um número aleatório, só escreves uma linha de código e terás esse número aleatório, em lugar de criar um código com várias linhas; se já está criado e está disponível, o usamos, em conclusão, os pacotes estão para facilitar nossa vida.


Agora bem, para usar os pacotes e todas suas funcionalidades só devemos importá-las com a palavra-chave import.

 

Assim:

import random

 

Random é pacote que apresenta elementos aleatorios, ele contém diferentes funcionalidades como choice, randint, random,  ranrange, shuffle, entre outras.

 

Vamos a ver👀 como pegar as funcionalidades do random.


Caso import

Em caso de quer usar várias ou todas as funcionalidades do pacote implementamos import.


import random




E posteriormente usamos o nome do pacote como prefixo seguido de um ponto e o nome da função que você quer, assim:

nome_pacote.nome_funcao()

random.ranint(1,100)


 


 

Caso from .... import ...

Em caso de quer usar só uma funcionalidade do pacote implementamos from ... import ...


from random import choice



 

O choice você pode usá-la diretamente em seu código sem a necessidade de prefixá-la com o nome do pacote, assim:

nome_funcao()

choice('sim','não')









Em conclusão em Python, a diferença de usar import ou from ... import ... tem a ver com a forma como você acessa as funcionalidades do pacote.

 

A escolha entre import e from ... import ... geralmente depende da preferência pessoal, das convenções de estilo de código e da possibilidade de conflitos de nomes. Se você sabe que vai usar apenas um item específico de um pacote ou módulo.


Usar from ... import ... pode ser conveniente, pois evita a necessidade de digitar o nome do pacote ou módulo repetidamente. No entanto, se houver o risco de conflitos de nomes entre os itens que você está importando e outros itens em seu código, pode ser mais seguro usar a forma import para evitar ambiguidades.

 

Vou deixar dois códigos e o que eles apresentam em tela ao ser executados:

 

Caso import 



Executadando, obtemos



 

Caso from .... import ...



Executadando, obtemos


 


Nos exemplos usamos o pacote random, que não precisa de instalação por que ela faz parte da biblioteca padrão  de python, porém, alguns pacotes devemos instala-o separadamente antes de importá-lo,  para isso devemos usar um “gerenciador de pacotes”, chamado pip, o qual é ativado quando instalamos o python, só deves, ativar o PATH, na hora da instalação do programa, assim podes os comandos de python no terminal.












E um terminal, não é mais cedo que uma interface de linha de comando para interagir com o sistema operacional, mediante comandos de texto.

 









Em Windows podes usar o prompt de comando, para instalar o pacote desejado, usando a seguinte sintaxe:

pip install nome_pacote

 

Vamos a testar com um pacote que não vem na biblioteca padrão de Python, mtplotlib, Senão instalar previamente o pacote matplotlib e rodamos o código, vai gerar um erro indicando que o modulo ou pacote não foi encontrado ou instalado.

 

Bora a instalar,  recomendo abrir o terminal e rodar o comando

pip install matplotlib


Ao  finalizar apresenta um mensagem de sucesso, assim:


Testemos este código usando matplotlib.


Executadando, obtemos


 

Matplolib é um pacote para fazer gráficos que precisa ser instalado previamente.

 

👀Em Windows, recomendo usar o prompt de comando para rodar o pip install.👀


Para mais informação dos pacotes em python  podes entrar no site oficial

https://pypi.org/


Sempre verifica a documentação, é uma boa prática.   😎

terça-feira, 14 de novembro de 2023

Data com python

Você já teve que manipular datas em python?


Ela dá uma confusão e retorna a data errada. 😏

Olha o que estava acontecendo no meu código.

Ele estava retornando como data atual  15 de novembro sendo que hoje é 14 de novembro




Assim estava  meu código

#Importando a biblioteca import datetime
#Obter a data atual
date_today =datetime.datetime.now()

#Formatar a data em "dd/mm/aaaa"
date_formated= date_today.strftime("%d/%m/%Y")
print(date_formated)

15/11/2023


Tudo estava certinho, chamava a função, porém a data retornava errada.

Logo depois de dar umas pesquisadas, descobri 🙀🙀 que acontece pelo fuso horário ou localização incorreta no ambiente do sistema, ele pega a data e pela hora que estamos rodando o código, pode ter uma diferença de um dia.

É por isso que vamos melhorar o código definindo o fuso horário local

Vamos a usar uma nova biblioteca pytz e definimos explicitamente o fuso horário de 'America/São_Paulo'

Ficando o código assim

#Instalando pacote pytz com Pip Install Packages
pip install pytz

#Importando as bibliotecas
import datetime
import pytz  

# Obter a data e hora atual com o fuso horário local
datetime_now = datetime.datetime.now(pytz.timezone('America/Sao_Paulo'))

# Obter apenas a parte da data
date_today = datetime_now.date()

# Formatar a data em "dd/mm/aaaa"
date_formatted = date_today.strftime("%d/%m/%Y")

print(date_formatted)

14/11/2023



Agora sim 👌👌 imprime certinho o dia de hoje que é 14 de novembro



Código disponível em: https://github.com/nadiduno/linkColabGoogle/blob/main/datanadiduno.ipynb

sexta-feira, 10 de novembro de 2023

Atributo async e defer em JavaScript.

O atributo async é usado quando você está carregando um script externo e deseja que ele seja executado de forma assíncrona. Aqui estão algumas coisas importantes a saber:

  1. Carregamento Assíncrono:

    • Quando você inclui o atributo async em uma tag <script>, o navegador começa a baixar o arquivo JavaScript imediatamente, mas não bloqueia a renderização da página enquanto o arquivo está sendo baixado.
    • Isso é útil para melhorar o desempenho da página, especialmente quando você tem muitos scripts externos. A renderização da página não fica bloqueada esperando que todos os scripts sejam baixados.
  2. Ordem de Execução:

    • Scripts com o atributo async não garantem uma ordem específica de execução. O primeiro script que terminar de baixar será executado primeiro.
    • Se a ordem de execução for importante (por exemplo, se você tem dependências entre scripts), é melhor usar o atributo defer em vez de async.
  3. Compatibilidade com Navegadores:

    • O atributo async é suportado em navegadores modernos, mas pode não funcionar em navegadores mais antigos.
    • Certifique-se de testar seu código em diferentes navegadores para garantir a compatibilidade.
<script src="script.js" async></script>


domingo, 5 de novembro de 2023

Python - Ciência de dados

 Python é a linguagem de programação de código aberto mais usada por cientistas da computação. Essa linguagem se impulsionou para a vanguarda do gerenciamento de infraestrutura, análise de dados e desenvolvimento de software. De fato, entre suas qualidades, o Python permite que os desenvolvedores se concentrem no que fazem, em vez de como o fazem.

Como Criar um Pull Request (PR) no GitHub

  Como Criar um Pull Request (PR) no GitHub Um Pull Request (PR) é um recurso essencial no GitHub que permite propor mudanças em um repositó...