Você está na página 1de 10

Recomeço da Programação em Python

https://www.studytonight.com/python/utilising-list-elements#:~:text=usando%20a%20fun
%C3%A7%C3%A3o-,zip().,-Suponha%20que%20as

for x, y in zip(A, B):


C.append(x+y)
A função zip() atua sobre duas listas realizando operações entre elas conforme a sua instrução

Excluindo um elemento de uma lista


Pode acontecer que você tenha que deletar alguns elementos da sua lista. Abaixo listamos alguns métodos para
fazer o mesmo:

pop( )função:
Este método requer o número de índice do elemento que você deseja excluir. Por exemplo, se você deseja excluir o
5º elemento da lista , basta fazer assim:

>>> myList.pop(4)

cópia de
Exemplo ao vivo →

Como o 4º índice é o 5º elemento, pois os números do índice começam em 0.

delpalavra-chave:
Isso também requer o número do índice.

>>> del myList[4]

cópia de
Isso excluirá o 5º elemento da lista. Podemos combinar isso com o fatiamento para excluir a sequência de elementos
juntos, como se quiséssemos excluir todos os elementos do índice 3 a 6, então:

>>> del myList[3:7]

cópia de
Isso removerá todos os elementos do índice 3 a 6.

remove( )função:
Esta função, em vez do número do índice, requer o valor que deve ser excluído. Por exemplo,

>>> myList = ['Apple', 'Orange', 'Apple', 'Guava']>>>


myList.remove('Apple')

cópia de
Isso removerá o primeiro elemento 'Apple' da lista. Outros elementos com valor 'Apple' não serão excluídos. ou seja,
nossa lista será:
>>> print (myList);

cópia de
['Laranja', 'Maçã', 'Goiaba']

Converter uma lista em string


Se você deseja converter sua lista em uma string para imprimi-la como saída, pode fazê-lo facilmente.

Sem usar nenhum loop


Aqui está o código, se você não quiser usar forou fazer whileum loop para converter a lista em string.

mylist = ['butter', 'jam', 'curd']

myStr = ', '.join(mylist)print (myStr);

cópia de
manteiga, compota, requeijão

Exemplo ao vivo →

Se você tiver uma lista de intvalores, então

mylist = [1, 11, 111]

myStr = str(mylist).strip('[]')print (myStr);

cópia de
1, 11, 11

Usando forloop

Se tivermos uma lista de intvalores,

mylist = [1, 11, 111]

myStr = ''.join(str(e) for e in mylist)print (myStr)

cópia de
1, 11, 11

Mais funções para listas


1.insert(int, item)

Esta função é usada para inserir valores, em qualquer lugar da lista. O primeiro argumento da lista leva o índice onde
os itens serão inseridos e o segundo é o valor que deve ser inserido. Por exemplo,
>>> myList = ['Python', 'C++', 'Java', 'Ruby', 'Perl']>>>
myList.insert(1, 'JavaScript')>>> print (myList)

cópia de
['Python', 'JavaScript', 'C++', 'Java', 'Ruby', 'Perl']

Exemplo ao vivo →

Observe como o valor 'JavaScript' foi inserido no índice do arquivo 1.

2.reverse()

Como é óbvio pelo nome, é usado para inverter a ordem dos elementos na lista.

>>> myList.reverse()

cópia de
Exemplo ao vivo →

3.sort()

Uma das funções mais importantes em aplicativos da vida real é o sort(). A classificação organiza todos os
elementos da Lista em ordem crescente ou decrescente.

>>> myList.sort()

cópia de
Exemplo ao vivo →

Se a lista consistir em números, isso fará a sequência em ordem crescente; se a lista consistir em strings, os elementos
serão classificados em ordem lexicográfica crescente.

E se você quiser classificar em ordem decrescente?

>>> myList.sort().reverse()

cópia de
Isso primeiro classificará os elementos em ordem crescente e, em seguida, usaremos a reverse()função para
inverter a lista.

operador matemático

Abaixo temos os nomes das funções especiais para sobrecarregar os operadores matemáticos em python.
Nome Símbolo Função especial

Adição + __add__(self, other)

Subtração - __sub__(self, other)

Divisão / __truediv__(self, other)

Divisão Piso // __floordiv__(self, other)

Módulo (ou Restante) % __mod__(self, other)

Poder ** __pow__(self, other)

Operador de Atribuição

Abaixo temos os nomes das funções especiais para sobrecarregar os operadores de atribuição em python.

Nome Símbolo Função especial

Incremento += __iadd__(self, other)

Decrementar -= __isub__(self, other)

produtos *= __imul__(self, other)

Divisão /= __idiv__(self, other)

Módulo %= __imod__(self, other)

Poder **= __ipow__(self, other)

Operador relacional

Abaixo temos os nomes das funções especiais para sobrecarregar os operadores relacionais em python.

Nome Símbolo Função especial

Menor que < __lt__(self, other)

Maior que > __gt__(self, other)

Igual a == __eq__(self, other)

Não igual != __ne__(self, other)

Menos que ou igual a <= __le__(self, other)

Melhor que ou igual a >= __gt__(self, other)

É hora de ver alguns exemplos de código onde realmente usamos as funções especiais especificadas acima e
sobrecarregamos alguns operadores
Classes de exceção do Python incorporadas

Vamos aprender sobre algumas classes de exceção junto com os motivos comuns para sua
ocorrência para nossa referência futura.

NOTA: Estamos chamando-os de classe de exceção, pois todos eles são definidos em python
como classes.

classe de Descrição
exceção
AttributeError Esta exceção ocorre quando o atributo que
estamos tentando acessar (seja para atribuir
um valor ou obter um valor) não existe. Por
exemplo: Tentando acessar uma variável de
membro de classe que não está definida na
classe.
ImportError Essa exceção ocorre quando o módulo
importado não é encontrado.
IndentationError Essa exceção ocorre quando há algum
problema com o recuo do código.
TypeError Quando uma operação é executada em uma
variável de tipo incorreto.
ValueError Quando para uma função, o valor do
argumento está incorreto.
ZeroDivisionError Conforme discutido acima, quando tentamos
dividir um número com zero.
TabError Quando a indentação não é consistente em
todo o código em termos de tabulações e
espaços usados para indentação.
RuntimeError Quando um erro não é de nenhum tipo de
exceção definido específico, o python o
chama de RuntimeError.
NameError Quando um nome de variável que estamos
tentando usar não está definido.
Estas foram algumas das classes de exceção incorporadas que são mais comumente
encontradas ao codificar em python. Para todos os tipos de exceção em python, verifique
a documentação oficial do python .

https://docs.python.org/3/library/exceptions.html

# try block
try:

a = int(input("Enter numerator number: "))

b = int(input("Enter denominator number: "))

print("Result of Division: " + str(a/b))

# except block handling division by zero

except(ZeroDivisionError):

print("You have divided a number by zero, which is not allowed.")

# except block handling wrong value type

except(ValueError):

print("You must enter integer value")

Vamos discutir o significado de cada nível, um por um, na tabela abaixo:

Nível Hora de usar

Este nível é usado principalmente para


DEPURAR fornecer informações detalhadas , geralmente de
interesse apenas durante a depuração de problemas .

Este nível é usado para confirmar que as coisas estão


INFORMAÇÕE
funcionando conforme o esperado. Apenas as
S
informações habituais.

Este nível informa que algo inesperado aconteceu ,


AVISO mas não tão grave que possa afetar o funcionamento
normal do programa/software.

Isso deve ser usado para registrar problemas mais


ERRO sérios, como erros ou exceções que levam à interrupção
da funcionalidade .

Este nível indica um erro super sério, como


o aplicativo não está sendo iniciado ou o banco de
CRÍTICO
dados não está disponível para configurar a conexão,
etc.

Você pode todos os tipos de níveis de log em seu código python para registrar informações
diferentes.

Mas quais logs serão impressos, depende da configuração do Logging.


É importante observar que o nível padrão é WARNING, o que significa que serão
rastreados apenas eventos deste nível e acima deste nível, que
são, WARNING , ERROR e CRITICAL .

Métodos de log do Python


Existem algumas funções convenientes para uso simples de registro,
como debug(), info(), warning(), error()e critical(). Vamos discuti-los, um por um:

Como logar? Tarefa a executar

print()métod Se você deseja exibir mensagens normais no console para


o as informações do usuário.

Para registrar um aviso sobre um determinado evento de


tempo de execução.

O warning.warn()método é usado no código python se


o problema puder ser evitado e as alterações precisarem
warning.war
ser feitas para eliminar o aviso.
n()elogging.
warn()
O logging.warning()método é usado caso haja algum
pequeno problema/erro que não tenha impacto direto no
funcionamento do código , mas deve ser rastreado, pois
pode causar problemas posteriormente. Por exemplo,
incompatibilidade de versão do módulo, etc.

Gerar um Para relatar um erro relacionado a um evento de tempo de


erro/exceção execução específico.

Se você deseja relatar um erro sem gerar uma exceção. Se


você fez o tratamento de exceção adequado em python ,
mas ainda deve registrar a exceção que é tratada para que
logging.error
possa ser encontrada e corrigida posteriormente.
()oulogging.c
ritical()
logging.critical()pode ser usado para erros críticos, como
falha na inicialização do programa ou falha na conexão com
o banco de dados, etc.

O logging.info()método pode ser usado para relatar


eventos que ocorrem durante a operação normal de um
logging.info( programa (por exemplo, para monitoramento de status ou
)oulogging.d investigação de falhas).
ebug()
logging.debug()é usado especificamente para uma saída
muito detalhada para fins de diagnóstico.
$ mkvirtualenv my_django_environment

 deactivate— Fechar o ambiente virtual Python corrente.


 workon— Lista de ambientes virtuais disponíveis.
 workon name_of_environment— Ativa o ambiente virtual Python especificado.
 rmvirtualenv name_of_environment— Remova o ambiente especificado.

django-admin startproject mytestsite


cd mytestsite

python3 manage.py runserver


http://127.0.0.1:8000/

from django.db import models

class MyModelName(models.Model):
"""Uma típica classe definindo um modelo, derivada da classe Model."""

# Campos
my_field_name = models.CharField(max_length=20, help_text='Enter field
documentation')
...

# Metadados
class Meta:
ordering = ['-my_field_name']

# Métodos
def get_absolute_url(self):
"""Retorna a url para acessar uma instancia específica de MyModelName."""
return reverse('model-detail-view', args=[str(self.id)])

def __str__(self):
""" String para representar o objeto MyModelName (no site Admin)."""
return self.my_field_name

Nas seções abaixa, exploraremos detalhadamente cada um dos recursos dentro do modelo:

Campos (Fields)

Um modelo pode ter um número árbitrário de campos, de qualquer tipo -- cada um representa uma coluna de dados
que queremos armazenar em uma de nossas tabelas de banco de dados. Cada registro do banco de dados (row -
linha) consitirá em um valor de cada campo. Vamos ver o exemplo visto acima:

my_field_name = models.CharField(max_length=20, help_text='Enter field documentation')


Copy to Clipboard

Nosso exemplo acima tem um único campo chamado my_field_name, do tipo models.CharField - o que significa que
este campo conterá strings de caracteres alfanuméricos. Os tipos de cada campo são atribuídos usando classes
específicas, que determinam o tipo de registro usado para armazenar os dados no banco de dados, juntamente com
os critérios de validação a serem usados quando os valores são recebidos de um formulário HTML (ou seja, o que
constitui um valor válido). Os tipos de cada campo também podem receber argumentos que especifiquem como o
campo é armazenado ou pode ser usado. Neste caso, estamos dando ao nosso campo dois argumentos:
 max_length=20 — Afima que o valor máximo do comprimento desse campo é de 20 caracteres.
 help_text='Enter field documentation' — fornece um rótulo de texto para exibir uma ajuda para os usuários
saberem qual valor fornecer, quando esse valor é inserido por um usuário por meio de um formulário
HTML.

O nome do campo é usado para se referir a ele em consultas e modelos. Os campos também têm um rótulo, que é
especificado como um argumento (verbose_name) ou inferido ao capitalizar a primeira letra do nome da variável do
campo e substituindo quaisquer sublinhados por um espaço (por exemplo, my_field_name teria um rótulo padrão
de My field name).

A ordem em que os campos são declarados afetará sua ordem padrão, se um modelo for representado em um
formulário (por exemplo, no site Admin), embora isso possa ser substituído.

ARGUMENTOS COMUNS DE UM CAMPO

Os seguintes argumentos são comuns e podem ser usados quando declaramos muitos ou a maioria dos diferentes
tipos de campos:

 help_text: Fornece um rótulo de texto para formulários HTML (por exemplo, no site admin), conforme
descrito acima.
 verbose_name: Um nome legível para o campo usado nos rótulos de campo. Se não for especificado, o
Django irá inferir o nome detalhado do campo name.
 default: O valor padrão para o campo. Isso pode ser um valor ou um objeto que pode ser chamado. Cada
vez que o objeto for chamado será criado um novo registro.
 null: Se for True, o Django armazenará valores em branco como NULL no banco de dados, para campos
onde isso é apropriado (um CharField irá armazenar uma string vazia). O padrão é False.
 blank:Se for True, o campo poderá ficar em branco nos seus formulários. O padrão é False, o que significa
que a validação de formulário do Django forçará você a inserir um valor. Isso é frequentemente usado
com null = True, porque se você permitir valores em branco, também desejará que o banco de dados possa
representá-los adequadamente.
 choices: Um grupo de escolhas para este campo. Se isso for fornecido, o padrão widget de formulário
correspondente será uma caixa de seleção com essas opções, em vez do campo de texto padrão.
 primary_key:Se True, define o campo atual como a chave primária do modelo (uma chave primária é uma
coluna especial do banco de dados, designada para identificar exclusivamente as diferentes tabelas) . Se
nenhum campo for especificado como a chave primária, o Django adicionará automaticamente um campo
para essa finalidade.

Existem muitas outras opções - você pode ver a lista completa de opções aqui.

TIPOS COMUNS DE UM CAMPO

A lista a seguir descreve alguns dos tipos de campos mais usados.

 CharField é usado para definir um tamanho fixo (médio a curto) para a string. Você deve especificar
o max_length (tamanho máximo) para o dado que será armazenado.
 TextField é usado para grandes strings de comprimento variado. Você pode especificar
um max_length (tamanho máximo) para o campo, mas isso é usado somente quando o campo é exibido em
formulários (forms) (ele não é imposto no nível do banco de dados).
 IntegerField é um campo para armazenar números inteiros e para validar valores inseridos como números
inteiros em formulários.
 DateField e DateTimeField são usados para armazenar / representar datas e informações de data / hora
(como os objetos Python datetime.date in e datetime.datetime, respectivamente). Esses campos também
podem declarar os parâmetros (mutuamente exclusivos) auto_now = True (para definir o campo para a data
atual toda vez que o modelo é salvo), auto_now_add (para definir a data em que o primeiro modelo foi
criado) e default (para definir uma data padrão que pode ser substituída pelo usuário).
 EmailField é usada para armazenara e validar em endereço de email.
 FileField e ImageField são usados para carregar arquivos e imagens respectivamente,
(o ImageField simplesmente valida de forma adicional que o arquivo enviado é uma imagem). Eles têm
parâmetros para definir como e onde os arquivos enviados são armazenados.
 AutoField é um tipo especial de IntegerField que é incrementada automaticamente. Uma chave primária
desse tipo é adicionada de forma automatica ao seu modelo, se você não especificar explicitamente um.
 ForeignKey é usado para especificar um relacionamento um-para-muitos com outro modelo do banco de
dados (por exemplo, um carro tem um fabricante, mas um fabricante pode fazer muitos carros). O lado
"um" do relacionamento é o modelo que contém a "chave" (os modelos que contêm uma "chave
estrangeira" referem-se a essa "chave" e estão no lado "muitos" de tal relacionamento).
 ManyToManyField é usado para especificar um relacionamento muitos-para-muitos (por exemplo, um livro
pode ter vários gêneros e cada gênero pode conter vários livros). Em nosso aplicativo de biblioteca,
usaremos isso de maneira muito semelhante às ForeignKeys, mas elas podem ser usadas de maneiras mais
complicadas para descrever as relações entre os grupos. Eles têm o parâmetro on_delete para definir o que
acontece quando o registro associado é excluído (por exemplo, um valor
de models.SET_NULL simplesmente definiria o valor como NULL).

>workon my_django_environment
cd locallibrary
>py -3 manage.py runserver

Você também pode gostar