Ir para o conteúdo
ou

Software livre Brasil

Magnun

Nenhum artigo selecionado ainda.
Tela cheia
 Feed RSS

Blog

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

[Curso de Pyhon] Índice

4 de Agosto de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

Olá pessoal!

Conforme já foi noticiado pelo Under-Linux, estou editando um curso de Python. Como ele está se tornando bem grande, resolvei criar essa página de índice para o curso. Dessa forma fica mais fácil para as pessoas localizarem o conteúdo desejado e também ver até onde o curso já chegou.

Clique na imagem para uma versão maior

Nome:	         python-logo-glassy_ori.png
Visualizações:	2
Tamanho: 	18,4 KB
ID:      	13468

Curso de Python

Aula 001 - Primeiros Passos
Aula 002 - Python Interativo
Aula 003 - Strings - Parte 1
Aula 004 - Strings - Parte 2
Aula 005 - Introdução à Tuplas e Lístas
Aula 006 - Introdução: Dicionários
Aula 007 - Introdução - Variaveis
Aula 008 - O Que é slicing?!
Aula 009 - Slicing em strings
Aula 010 - Slicing em Tuplas e Listas
Aula 011 - Produzindo saídas - parte 1
Aula 012 - Produzindo saídas - parte 2
Aula 013 - Interação com o usuário - Parte 1
Aula 014 - Interação com o usuário - Parte 2
Aula 015 - Interação com o usuário - Parte 3
Aula 016 - Condições e if
Aula 017 - Estruturas if, else e elif
Aula 018 - Mais um pouco sobre if/elif/else
Aula 019 - Atribuição condicional
Aula 020 - Condições com o operador in
Aula 021 - Comparando os tipos de variáveis
Aula 022 - Condições com variáveis vazias
Aula 023 - A estrutura while
Aula 024 - Exercícios com o while (correção)
Aula 025 - while else
Aula 026 - Estrutura while: continue e break
Aula 027 - Mais Sobre as Estruturas while
Aula 028 - Conhecendo o for... in...
Aula 029 - Entendendo o for
Aula 030 - Estruturas for Aninhadas
Aula 031 - A função range
Aula 032 - Correção: Estruturas For Aninhadas
Aula 033 - O for e Outras Palavras Mais
Aula 034 - Introdução à Funções em Python
Aula 035 - Correção - O for e Outras Palavras Mais
Aula 036 - Funções com Argumentos
Aula 037 - Correção - Funções com Argumentos
Aula 038 - Funções e Argumentos Nomeados
Aula 039 - Funções com Argumentos e Valores Padrões
Aula 040 - Funções Com Argumentos Indefinidos - Parte 1
Aula 041 - Funções Com Argumentos Indefinidos - Parte 2



[Curso de Python] Funções Com Argumentos Indefinidos - Parte 2/2

4 de Agosto de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

Antes de prosseguir leia os artigos anteriores aqui.



No último post falamos um pouco sobre argumentos indefinidos que se utilizam do * para receber um vetor de tamanho indefinido como argumento. Hoje vamos ver como utilizar dois asteriscos e sua funcionalidade.


Funções Com Argumentos Indefinidos - Parte 2/2



Anteriormente vimos como usar uma tupla para receber argumentos indefinidos em uma função. Essa abordagem traz um pequeno incômodo, referenciar os argumentos passados através de índices. Hoje vamos ver uma outra forma de receber argumentos porém referenciando-os pelo nome. A referência por nome ou palavras-chave (keywords) é mais intuitiva porém causa mais consumo de memória pois é necessário criar um dicionário para armazenar os argumentos. Um dicionário vazio é 5 vezes maior que uma tupla vazia. Geralmente esse argumento da função é referenciado por **kwargs, um mnemônico de "Keyword Arguments". Vamos ver um exemplo:

Código:
>>> def teste_kwargs(*kwargs):
...     print 'kwargs =',kwargs
...
>>> teste_kwargs()
kwargs = {}
>>> teste_kwargs(arg1=1, arg2=2, arg3=3)
kwargs = {'arg1':1, 'arg2':2, 'arg3':3)
>>> teste_kwargs(arg1=1, arg2=(2,3,4), arg3='teste')
kwargs = {'arg1': 1, 'arg2': (2, 3, 4), 'arg3': 'teste'}
>>>
Como podemos ver, devemos utilizar 'identificadores' para os argumentos. Esses 'identificadores' são convertidos nas 'chaves' do dicionário.

Um artifício muito poderoso é a combinação de *args com o **kwargs, o que nos traz a possibilidade de utilizar inúmeros argumentos nomeados e não nomeados. Segue um exemplo:

Código:
>>> def teste_kwargs(*args, **kwargs):
...     print 'args =',args
...     print 'kwargs =',kwargs
... 
>>> teste_kwargs(1, 2, 3, x='a', y='b', z='c'):
args = (1, 2, 3)
kwargs = {'y': 'b', 'x': 'a', 'z': 'c'}
>>> teste_kwargs('a', 'b', 'c')
args = ('a', 'b', 'c')
kwargs = {}
>>> teste_kwargs(teste1=1, teste2=2, teste3=3)
args = ()
kwargs = {'teste1': 1, 'teste3': 3, 'teste2': 2}
>>>
Como podemos ver, utilizando essa combinação, é possível passar apenas argumentos nomeados, apenas argumentos não nomeados ou ambos, respeitando a "etiqueta" que diz que os argumentos não nomeados devem sempre vir antes dos argumentos nomeados.

Boa semana a todos e até a próxima...


Tags deste artigo: python linux arch programação desenvolvimento vim