domingo, 21 de novembro de 2010

aula de python: tutorial-parte 1,2,3

bom gente eu venho divulgar a minha primeira série de tutoriais de:
Python, Panda3D e Unity...
esse tutorial é de Python, Depois vou fazer de Java script na Unity... e depois vou mostrar o poder do panda...
vamos conhecer o python?
python é uma linguagem de programação otima, dinamica e é conhecida por fazer tudo(sites, jogos, softawares, e tudo em geral...).
ela é uma das melhores linguagens de programação para jogos. E é enssencial você aprende-la se quiser fazer um curso, ou criar jogos profissionalmente.
Python é uma linguagem de origem do ABC e é usado até pela NASA.
ela é muito usada em jogos 3D, 2D. aqui vai engines que usam python:
Pygame
Panda3D
PYOpengl
cocos2d
soya3D
entre outras...

vamos começar
[size=18][color=red][b][center]a primeira parte para entender qualquer linguagem de programação[/center][/b][/color][/size]
a primeira coisa para se aprender python, e qualquer outra linguagem é entender que toda linguagem é uma calculadora.
que pode fazer qualquer conta, e é mais que uma calculadora até...
bom a primeira parte é baixar o python. Baixe no site:
www.python.org
ou o PyPy(editor de python) no baixaki.
bom abra o programa.
depois digite:
[code]2+2[/code]
clique [i]enter...[/i]
a resposta será 4.
acontece que python(diferente de GML) é uma linguagem que mostra o resultado de uma vez(isso so inverte em alguma engine que não use esse modelo de resposta rápida).
quando você digita 2+2
ele mostra a resposta na outra linha. No GML a respota do script não é de uma vez... correto?
não aparece na linha de baixo se tá errado, ou a resposta...

depois que entendemos que python mostra o resultado de uma vez, vamos entender seus 'tags' e significados de simbolos.
[b]1# o que é >>>[/b]
esse é o simbolo que significa que o python está pronto para receber seu comando. O famoso prompt de comando.
ou seja, você vai colocar o seu comando.
[code]>>> 2+2[/code]
e ele responde na outra linha:
[code]>>>2+2
>>> 4[/code]
ou seja:
>>> quer dizer que python está pronto pra receber o seu comando... um comando como o simples 2+2.

[b]2# o que é #?[/b]
se digitarmos no python:
[code]2+2 #2+2= 4 isso é verdade[/code]
o simbolo [b][i]''#''[/i][/b] [b]é a barra de comentário...[/b] é o ''// '' do GML.
é um comentário... ou seja... o python não vai rodar/indentificar depois do #.
que nem o GML...

[color=red][b][center]quais as contas que python suporta?[/center][/b][/color]

ele suporta [color=green]soma('+'), multiplacação('*'), subtração('-') e divisão('/')[/color]

com isso você pode criar inumeros calculos. Experimente seus calculos como:
2+2
4+3
4*2
5/2
3/1
3-1
100-2
[color=cyan]equanções:[/color]
2+2-3
(2+2)*6
(3-2)/1
5-5*2+(2+2)
e assim vai...

veja como é a interface e o que ocorrerrá quando abrir o PyPe:
[URL=http://img530.imageshack.us/i/pype.png/][img]http://img530.imageshack.us/img530/3397/pype.png[/img][/URL]



tente todos tipos de conta, menos com X ou objeto desconhecido.

[color=red][b]#2 denominando objetos...[/b][/color]

podemos fazer um banco de dados no python. Assim como no GML podemos colocar informação númerica ou escrita de uma palavra.
quer ver?
digite isso:

[code]>>> ola = 1
>>> oi = 'ola mundo'
[/code]

correto, quando você digitou [color=blue]'ola'[/color] definiu que ola = 1.
ou seja, ola é igual áo numero 1.
imagine se digitarmos:
ola +2
o que vai acontecer?
vai aparecer
3
por que ola = 1, e 1+2 = 3.
correto?
então entendemos como podemos nomiar um objeto no python numericamente.

e no caso do 'oi'
no caso do 'oi' da para entender por:
[code]oi = "ola mundo"[/code]
isso define que oi será igual á essa frase.
o python irá ligar a essa frase sem entendimento matematico.

o que acontece se digitarmos:
[color=green]ola e apertar enter?
oi e apertar enter?[/color]

vai acontecer isso:
[URL=http://img195.imageshack.us/i/pype2.png/][img]http://img195.imageshack.us/img195/2930/pype2.png[/img][/URL]



apredemos agora como colocar valores...

[color=black][b]3#apredendo a verificar True e False[/b][/color]

bom digite agora:
[code]>>> 2>1[/code]
bom a resposta do python:
[code]>>> True[/code]

e se digitarmos:
[code]>>>1>4[/code]

resposta do python:
[code]>>> False[/code]

entenda que a maioria das linguagens de programação são em ingles, e tentam usar alguns comandos em latim, para ficar mais 'globalizado'.
no caso do python, True = verdadeiro e False = Falso.
ou seja, quando digitamos algum desses sinais:
==(verifica se é igual)
>(verifica se é maior)
<(verifica se é menor)
=!(verifica se é diferente)
>=(verifica se é maior ou igual)
<=(verifica se é menor ou igual)

e apertamos enter. O python diz se é:
True("verdadeiro")
False("falso")

tradução se não entendeu:

[code][color=black]eu[/color]: 2>1?
[color=red]python[/color]: True(sim)
[color=black]eu[/color]:2<1?
[color=red]python[/color]: False(não)[/code]

bom agora entedemos.

[color=red][size=24][b]4#erros, não se preocupe[/b][/size][/color]

não se preocupe se errou os codigos, na sua vida irá ver isso quase toda hora.
mas erros que ajudam á gente a perceber e melhorar...
isso inclue na programação...

obrigado!

proxima aula: IF, Else, Elif e criando funções com Def
data: dia 19/11/2010 ou 20/11/2010
obrigado!
PYTHON!

[size=9][i]obs: o uso indevido do [i]''>>>''[/i] é para que usuários não copiem os codigos e aprendam.
no codigo, o python vai indentificar o erro se colocar >>> antes dos comandos...
ou seja, se colocar:
>>> >>>2+2
vai aparecer isso:

File "", line 1
>>>2+2
^
SyntaxError: invalid syntax

ok?
ok![/i][/size]

[center][color=red][size=24][b]aula 2: python á 100 por hora...[/b][/size][/color][/center]

bom nesse tutorial vamos aprender as funções If, Else, Elif e Def[i](criando funções)[/i].
vamos começar por If.

[size=18][color=blue][b]IF: apredendo a condição do ''Se''[/b][/color][/size]

[color=green][b]1# o que é If[/b][/color]

If vem do inglês, e significa ''Se''. Ele é usado em quase toda linguagem de programação, inclusive o GML.
o que acontece é que ele determina uma condição. Determina o que deve ser feito em alguma ocasião.
exemplo:
Se 2>(for) maior que 1:
o computador mostrará 'é sim'.

entendeu?
vamos transformar em Python:

[code]
>>> if 2>1:
. . . print 'ola'
. . .
[/code]

OBS: para executar esse comando você tera que digitar:
[b]if 2>1:('enter')
('tab')print 'ola'('enter')

ou seja tem que digitar:
2>1: #comentário: aperte enter
#comentário: aperte TAB e depois: print 'ola'

ok?
não esqueça do TAB.
[/b]

[color=green]2#o que é TAB?[/color]

a função TAB depois de '':'' indica que a proxima linha está contido na função da linha de cima.
é como se fosse isso no GML:

[code]if 2>1: {
'ola'
}[/code]

linha 1: if 2>1:
linha 2: print ''ola''

linha 2 contida na linha 1 ...

ele é a função que indica que está [b]'contido'[/b].
ou seja, indica que a função da ultima linha está contido na linha de cima...
[u]sempre usasse TAB numa função, ou depois de '':" na linha acima...
[/u]
não esqueça...
[color=green]

[b]3#contido no contido?[/b][/color]

olhe esse código:
[code]
>>> if 2>1:
. . . if 2>1:
. . . print 'ola'
. . .
[/code]

perceba que eu usei 2x TAB.
eu fiz isso:
[code]
se 2>1:(''enter'')
(TAB)se 2>1:(''enter'')
(TAB)(TAB)print 'ola'(''enter'')
[/code]

entendeu?
vou explicar...
eu posso colocar uma função dentro da outra.
assim eu posso determinar que:
[i]se 2 for >1:
o computador vai executar: se 2 for>1:
o computador vai executar: print 'ola'[/i]

[u]entendeu?[/u]

eu posso fazer com que uma função esteja dentra da outra... para isso eu tenho que apertar 2x TAB para indicar que a linha numero 3 pertence á linha numero 2, que pertence a numero 1...
[color=black]veja no PyPe:[/color]

[URL=http://img821.imageshack.us/i/pypeprint.png/][img]http://img821.imageshack.us/img821/8871/pypeprint.png[/img][/URL]



linha 1: if 2>1:
linha 2: if 2>1:#linha 2 contida na linha 1
linha 3: print ''ola''#linha 3 contida na linha 2,1...

ok?
agora faça isso no python:
if 2>1:
if 2>1:
print ''ola''

if 1>2:
if 2>1:
print ''ola''
ok?
veja resultados e teste mais outros...

[color=green][b]#3 o que é print?[/b][/color]

print é uma função que não tem no GML.
ela significa que o computador vai colocar a função entre aspas em 'impresso'...
traduzindo do inglês print é:
[u]substantivo[/u]
[i]impressão
impresso
estampa
gravura
imagem
tipografia
desenho
coisa impressa
verbo
imprimir
publicar
mandar imprimir
gravar
marcar[/i]

ele vai colocar na linha de resposta o comando de ''colocar'' a função entre aspas.
ou seja:
print 'ola'#vai impressar/mostrar/colocar ola na linha de resposta...

linha 1: [color=black]>>>[/color] [color=blue]print[/color] [color=indigo]''ola''[/color]
linha 2(de resposta): ola

se colocarmos:
linha 1:[color=black]>>>[/color] [color=violet]'ola'[/color]
linha 2(de resposta): [color=violet]'ola'[/color]

ok?
viu a diferença entre print ola, e so 'ola'.
o print aparece ola sem aspas, com ''ola'', aparece com aspas...

entendeu?
teste isso:
print 'ola'
print ''ola''
''ola''
'ola'
print 'sei que é você'
'sei que é você'
print ''sei que e voce''
'sei que e voce'

[color=orange]observe o que acontece...[/color]

[color=green][b]4# cores no PyPe...[/b][/color]

você deve ter percebido que se digirtamos:
if fica azul o ''if''
ou 'ola' fica violeta o ''ola''
e tudo depois de [color=green][i]# fica verde[/i][/color] e itálico
e tudo depois de def fica azul marinho...(você verá isso depois)

isso é o que editor faz...
ele lembra pelas cores do que á palavra é, e lembra quando pomos aspas, de fechar ela...
tudo que tiver violeta, é por que tem aspas, e no fim da frase você tem que fechar senão da erro...
esse o papel do editor...
vajamos o que essas cores significam...:
[color=darkblue]azul[/color]: função(normalmente em ingles) do python.
exe:
if, elif, else, def, class, my, import e etc...

[i][color=green]verde/italico[/color][/i]: comentário
[color=cyan]
azul marinho[/color]: veremos depois

[color=violet]violeta[/color]: que está em aspas, e você tem que fechar...

entre outras...
teste no PyPE...

[color=red][b][size=18]Else: se não for... condição se não for...[/size][/b][/color]

agora que você entendeu if fica mais fácil aprender Else...
else é se não for... assim veja esse codigo:
[code]
if 2>1:
print 'e'
else:
print 'nao e'
#resultado:
e

[/code]

outro:
[code]
if 1>2:
print 'e'
else:
print 'nao e'
#resultado:
nao e

[/code]
[u]não se esqueça:
eu errei alguns codigos, mas quando fizer entre aspas no python use uma aspa só:
correto:
'a'
errado:
''a''
ok?
ok!
[/u]

else é se não for...
traduzindo pro portugues:

[code]
se 1 for >2:
imprime 'e'
senão for:
imprime 'nao e'
[/code]

vai dar não e...
por que 2 não é maior que 1...
essa é uma forma de verificar o True ou False...

bom entendeu?
experimente no Pype vários desses jeitos...
faça do seu jeito...

[color=red][size=18][b]elif: se não é, e senão for... condição se não é, se nem for...[/b][/size][/color]

agora vamos aprender mais um comando que não existe no GML, ou eu nunca vi...

elif...
se não é, e senão for...
é um termo de condição pra verificar:
se 2>1:
senão for:
se não for, e nem for:(elif)

ele é como se fosse uma terceira condição, caso nenhuma das duas opções seja correta:
else ou if...
teste isso:
if 2>1:
print 'ola'
elif 2 == 0:
print 'oi'
else:
print 'e'

ou seja, a diferença de elif é que você terá que colocar uma função depois;como:
2 == 0
2=! 2
e assim vai...

ok?
treine isso...
no pype...

OBS: [b]elif tem que vir depois do if, e não depois do else... tem que ser desse jeito:
if 1°
elif 2°
else 3°
ok?

teste bastante...

[size=18][color=red][b]def: criando funções com DEF...[/b][/color][/size]

aprenda como criar suas funções no Python...

você pode configurar para criar suas funções no python...
assim você faz sua função...

veja bem:
digite isso no PyPE:

[code]
def variavel(x):
print 'ola'

variavel
[/code]

def é um criador de funções... ele faz com que você coloque sua propria função, ou seja, uma palavra que liga á uma ação do motor do python.
exemplo:
quando eu coloco:
def ola(x):
print 'ola'

cada vez que eu digitar ola no python, vai aparecer na linha de resposta:
ola(1)
print 'ola'
print 'ola' = ola

[color=green][b]2#entendendo melhor... def e esse (x)...[/b][/color]

quando eu coloco uma palavra depois do def vem em azul, pra indicar qué função def...
ok?
e entre parênteses tem o x...
quando eu digito apenas ola vai aparecer o numero da função no motor. mas quando eu digito ola(1) aparece a função que eu coloquei...
teste mais funções...
por que?
tem haver com X!
x entre parenteses quer dizer um numero.
ou seja, é um numero que você coloca quando digitar a função...
def ola(x)
ola(1)
x = 1
ola(2)
x = 2
teste isso...

agora vamos ver se X é igual ao numero entre parenteses quando digitamos depois de definir a função...

digite:

[code]
def x1(x):
x+1
x
[/code]
quando executamos:
[code]
x1(1)
linha de resposta:
2
1
[/code]
por que x = 1
x+1 = 2
x = 1
ok?
ok!
teste mais funções como essa...
[b]
[color=green]3#tem como eu colocar outra letra que não seja X?[/b][/color]
tem sim!
voce pode usar qualquer letra, e mais de uma até...

ex:
def ola(x,y):
x+y
x+1
ola(1,2)
linha de resposta:
3
2
ok?
ok!

experimente muito mais...
experimente essas:

def suafuncao(x,y,z):
x+z+y
x+z
x+y
...

lembrando que depois de DEF vem o nome da função, é uma variável, pode ser qualquer uma...
e entre parenteses é o numero...

teste muito mais...
não se esqueça da virgula, para mais de uma letra entre parenteses...

acabamos a aula de hoje!
proxima aula: apredendo Range, criar classes e tabelas...
dia da proxima aula: 21/11/2010 ou 22/11/2010

vlw!

8)

o que vocês acharam?

[size=24][color=red]apredendo Range, criar classes e tabelas...[/color][/size]

nesse tutorial vamos aprender sobre uma das funções mais usadas...
o Range...
vamos começar com essa função contida no python.
[size=18]
[color=darkblue]range: o que é?[/size][/color]

range vem do inglês e significa:
[b]substantivo[/b]
alcance
série
variedade
variação
distância
âmbito
extensão
ordem
cordilheira
classe
coleção
fileira
fila
calibre
serrania
fogo
[b]verbo[/b]
vaguear
alinhar
classificar
ordenar
enfileirar

bom o range é isso tudo, ele faz 2 coisas:
coloca em filas, e cria grupos de funções..
veja o que ele faz:
digite no Pype range...
vai aparecer isso:

[code]
>>> range

>>>
[/code]

agora digite isso:
[code]
>>> range(2)
[0, 1]
>>>
[/code]
percebeu?
vamos explicar:
range é uma função que mostra a ordem de numeros entre ''[]''(colchetes).
assim o numero entre parênteses define quantos numeros terá esse grupo(entre colchetes).
se digitarmos:
range(3)
vai aparecer o grupo entre colchetes:
[0,1,2]
se digitarmos:
range(4)
[0,1,2,3]
entendeu?
so lembrando que ele conta começando com zero, como você percebeu...
agora tente isso:
range(1+2+3)
vai aparecer:

[code]
[1,2,3,4,5]
[/code]
[u]simples, por que ele calcula quantos numeros irá aparecer, e não quais vão aparecer[/u]...
assim 1+2+3 será 6...
então aparecerá 6 numeros:
[0,1,2,3,4,5]
[color=black]6 numeros[/color]

tente isso denovo:
[code]
>>> range(1+2)
>>> [0, 1, 2]
[/code]

ok?
[u]ele mostra quantos e não quais![/u]

agora que entendemos o Range vamos entender outra coisa...
podemos configurar o Range para que mostre, por exemplo, um numero em cada linha...
a função:
[color=blue]for p in[/color]
configura alguma atribuição/função do motor.
assim a gente pode configurar o range como se fosse o Def.
veja so:
[code]
for p in range(5): # o que está entre parenteses é o numero de grupos, como dito antes^^
2+2 # o que deve aparecer

[/code]

vamos ver o que aparece:
[code]
4
4
4
4
4
[/code]
a função[color=blue] for p in range[/color] configura para que o Range apareça em cada linha, sem colchetes...
e configura o que deve aparecer, ao contrário de só range, que configura quantos numeros devem aparecer...
assim podemos fazer:
[code]for p in range(2)
'ola'

'ola'
'ola'
[/code]

e assim vai...
entendeu?
teste outras dessas funções...
ok?
ok!

[size=12][color=green]2#podemos substituir o ''p''[/color][/size]

podemos fazer isso:
for g in range
for h in range
for a in range
for ab in range
for ola in range
for variavel in range

portanto, concluimos que podemos susbtituir o ''p'' por qualquer palavra...

[size=12][color=green]3#entendendo melhor for e in[/color][/size]

bom do inglês as palavras:
for = de/para
in = em

assim entendemos que:
para g em range(2):
...

é como se fosse uma configuração que indica que para o range vai ser...
é como[size=24] se[/size] fosse isso.
é um modo de configurar range e até outros funções...
basta você testar...

[size=12][color=green]4#por que isso é importante em jogos[/color][/size]

bom se você quiser repetir um personagem, um calculo, um valor, ou o que seja...
o metodo é usar range...
invéz de ficar digitando por exemplo:
objeto 1 == 2
objeto 1 == 3
e assim vai...
use o range para configurar e mudar isso...
não se esqueça que pode-se usar Def junto com range para criar mais/cobinadas funções...
não esqueça que python é uma super calculadora e pode combinar diferentes formas matemáticas e funções...
[color=red]
[size=18]criando classes[/size][/color]
vamos aprender a criar uma coisa mais avançada... as classes...
a função principal das classes é chamada[color=blue] Class[/color].
digite no PyPE class e logo ele indicará que é uma função em azul...
lembrando que esse tipo de função não pode ter variavel. EX:
não podemos colocar
if = ola
ou assim vai...
tudo que é azul não pode ser substituido como variavel.
mas outras funções como range que não fica azul podem ser susbtituidas.
como:
range = grupo

[color=green]1#fazendo classes[/color]

para fazer classes é como def, basta colocar:

[code]class variavel:
2+2 #função proposta
[/code]

[u]so que lembrando:
sem o (x) do Def.
senão da errado...[/u]

agora digite:
variavel
vai aparecer tipo isso:
[code][/code]

envez da função...
esse é o numero da classe no console

[color=green]2#fazendo a função da classe[/color]

antes de fazer uma classe, ou faze-la funcionar, vamos entender o que é.
classe nada mais é que a definição de um objeto.
a classe quando atribui a outro objeto, isso é chamado de instância da classe.
o objeto é configurado segundo sua classe.
''Uma classe é definida em código-fonte, e possui nome, um conjunto de atributos e métodos.''
[color=orange]os métodos são as funções dentro da classe, orientada ao objeto.[/color]
[color=brown]os argumentos são as funções dentro dos metódos. são em geral funções matématicas e denominadora.[/color]

[size=12][color=green]2.1 função[/color] [color=blue]self[/color]
[/size]

bom todos os agumentos, em geral, tem uma chave chamada Self.
ela é liga á varias funções dentro da classe, e dos métodos.
por isso nunca se esqueça dela.
vejamos agora um exemplo de um código que eu explicarei para que você possa entender melhor.

[code]class Nó:# o nome da classe
esquerda, direita, valor = None, None, 0 #define o valor das palavras esquerda, direita e valor... veremos melhor o que é None depois

def __init__(self, valor): # __init__ é uma espécie de construtor, quando uma instância de uma classe é criada,

# construtor dos valores
self.esquerda = None #valores ligados ao Self
self.direita = None #valor ligado ao Self
self.valor = valor #veja que self é ligada com o ponto. No python várias coisas são ligadas assim. Inclusive no panda3D e suas funções.

class Ordenação:
def __init__(self):
# inicializa a raiz da árvore #vamos ver depois disso o que é árvore e sua raiz na programação
self.root = None #depois veremos o que é None.

def AdicionaNo(self, valor):
return Nó(valor) #return é a função que retorna algum objeto, função, instância ou metodo. guarde essa palavra.

def Inserir(self, raiz, valor):
# inserir novo valor
if raiz == None: #condição de se raiz for igual á None(nenhum valor)
# não há nenhum valor
return self.AdicionaNo(valor)
else:
# já está na árvore
if valor <= raiz.valor: #condição se valor for menor ou igual á raiz.valor
# se os dados forem menores do que os armazenados
# entra na sub-árvore do lado esquerdo
raiz.esquerda = self.Inserir (raiz.esquerda, valor)
else:
# entra na sub-árvore do lado direito
raiz.direita = self.Inserir (raiz.direita, valor)
return raiz[/code]

vamos entender algumas coisas agora.
[b]1° o que é None?[/b]
None é definido como valor nenhum. Logo se digitarmos no pype:
a = None
>>> a
resposta:
>>>
entendeu?
None indica que um objeto não tem valor. Assim podemos por exemplo configurar isso, o seu valor ou outras coisas...
[b]
o que é _init_?[/b]

_init_ é __init__ é uma espécie de construtor, quando uma instância de uma classe é criada.
ela é uma abreviatura para inicialização.
podemos fazer como teste, isso:
[code]class Point():
pass

point = Point()
point.x = 3.0
point.y = 4.0
[/code]

ou podemos fazer isso:

[code]class Point():
def __init__(self, x=0,y=0):
self.x = x
self.y = y[/code]

tente entender pelo lado matemático.
lembre-se que isso é um termo mais avançado, e está nessa 3° aula, para a gente conhecer melhor.
depois veremos, mais tarde, como fazer melhor classes, e orientações á objetos.
enfim, veremos como criar objetos completos segundo seus objetivos.

Agora você pode fazer um ponto como este:

= ponto ponto (3,4)

ou

= ponto ponto () # o que lhe dá um ponto de padrão 0,0.

veja esse site que explica uma questão de _init_:

[url=http://ubuntuforums.org/archive/index.php/t-540438.html]_init_[/url]

busque mais definições para entender melhor.
voltando...

[b]o que é self?[/b]

self nada mais é que uma espécie de variavel do metodo usado.
é como se invez de eu escrever o metodo, colocasse o Self.
por isso definimos no _init_ self e o resto entre parênteses.

[b]o que é pass?[/b]

vimos no codigo de exemplo, e o codigo acima, sobre pass.
[color=blue]pass[/color] nada mais é que, uma indicação que nada será feito, a não ser criar a classe, que terá nada.
é como se eu fizesse isso:

class ola:
'nada a dizer'
invés de colocar assim, para definirmos que a classe não terá nada, so é pra definir que a classe existirá. assim:
[code]class ola
pass
[/code]
ok?
nada será feito, a não ser definir a classe.

[b]o que é árvore? e raiz?[/b]

árvore na programação é como se fosse uma familia hierárquica de valores, objetos e etc.
assim um exemplo seria:
if 2>1:#linha A
if 2>1:#linha B
if 2>1#linha C
print "ola" #linha D


é um pequeno exemplo de árvore.
a linha D está contida nas linhas C,B,A.
a linha C está contida nas linha A,B.
a linha B está contida na linha A.

a raiz da árvore é a linha A. por que ela é o começo do código, o começo da árvore. É a raiz, é a base.
se a linha A não existir nenhuma outra existe correto?
pois é, que nem uma base/raiz de uma arvore.

[b]o que é return?[/b]

[color=blue]return[/color] é uma função que retorna o resultado.
por exemplo:
digite isso:

[code]
def retorna(x,y):
if 2>1:
return x
else:
return y
[/code]
se digitarmos depois:
[code]
retorna(2,3)
linha de resposta: 2[/code]

por que 2>1
então vai retornar o valor X, e exibir.
o valor X é o 2.

retorna(3,2)
o valor X é 3
retorna(4,9)
o valor X e 4
o valor Y é 9.
entendeu?
teste mais sobre isso!

bom vimos agora o que são classes, Métodos, instâncias, objetos, definindo valores, e:
o que é None, Self, return, Pass, árvores e etc.
vamos aprender a chamar uma classe.
[i]obs:se você não entender aquele codigo grande acima, não tem problema, a gente so tá no inicio... o importante é olhar no modo matemático e entender as funções que expliquei.[/i]

voltando...
podemos salvar o que fizemos como arquivo.py
podemos fazer um programa inteiro assim...
veja um outro codigo para aprender mais:

Brincando com instância de classe:
[code]class A:
a = 1 # atributo publico
__b = 2 # atributo privado a class A

class B(A):
__c = 3 # atributo privado

def __init__(self):
print self.a
print self.__c

a = A()
print isinstance(a, B) # ''Objeto a'' é uma instância da ''classe B''? Falso.

a = B() # Instancía o ''objeto a'' na ''classe B'' e imprime os atributos da classe.
print isinstance(a, B) # ''Objeto a'' é uma instância da ''classe B''?Verdadeiro.

b = B() # Instancía o ''objeto b'' na ''classe B'' e imprime os atributos da classe.
print isinstance(b, B) # ''Objeto b'' é uma instância da ''classe B''? Verdadeiro.

b = A() # Instancía o ''objeto b'' na ''classe A''.
print isinstance(b, A) # ''Objeto b'' é uma instância da ''classe A''? Verdadeiro.
[/code]

entendeu?
depois veremos mais sobre programação de orientação á objetos, classes, objetos, funções e métodos.
ok?
ok!

agora vamos criar uma coisa relativamente simples...

[size=18][color=red]criando tabelas, é uma forma de pensar...[/color][/size]

digamos que eu queria comparar o preço do dólar e do real.
assim no python eu vou fazer uma ''tabela comparativa''.
tem como fazer isso na Tkinter do python(Sistema de GUIs do python.)
mas o nosso caso, é um exercício.
para que podemos raciocinar.
esse exercício(acredite) me ajudou muito quando eu começei a programar.
bom digamos que o preço do dólar hoje é:
dolar = 1,685
real = 1,000
eu quero comparalos em uma tabela com tudo que eu sei.
digamos que eu tenho um problema.
vamos converter em real.
podemos fazer isso:
uma tabela!
como?
simples:

considerando:
d = dolar
d = 1.685

f[code]or p in range(4,16): print 'US$ %.2f = R$ %.2f' % (p,p*d)


US$ 4.00 = R$ 6.74
US$ 5.00 = R$ 8.43
US$ 6.00 = R$ 10.12
US$ 7.00 = R$ 11.80
US$ 8.00 = R$ 13.49
US$ 9.00 = R$ 15.17
US$ 10.00 = R$ 16.86
US$ 11.00 = R$ 18.55
US$ 12.00 = R$ 20.23
US$ 13.00 = R$ 21.92
US$ 14.00 = R$ 23.60
US$ 15.00 = R$ 25.29[/code]

[code]
>>> for p in range(9,13):
... print 'US$ %5.2f = R$ %5.2f' % (p, p * d)
... print '-' * 20 #define que terá a linha ''-----''
...
US$ 9.00 = R$ 15.17
--------------------
US$ 10.00 = R$ 16.85
--------------------
US$ 11.00 = R$ 18.54
--------------------
US$ 12.00 = R$ 20.22
--------------------
>>>[/code]
vamos entender...
podemos fazer uma tabela assim:
[code]for p in range(16):
9* d
10*d#calculando quanto será 10 dolares em reais
1*d
vai aparecer o resultado...
[/code]


agora, vamos aprender 2 coisas...
primeiro que se você faz uma coisa muito repetitiva, é por que não encontrou algo mais simples, para tirar isso...
segundo que podemos criar grupos no python.
digite isso:
lista = [1,2,3]
pronto!
agora digita isso:
for p in lista:
2+2

ok?
entendeu agora como podemos usar o for p in... em mais casos?
ok!

bom agora vai o exercício do dia...
tente fazer alguma das tabelas acima que eu mostrei^^
tipo essas:

[code]for p in range(9,13):
... print 'US$ %5.2f = R$ %5.2f' % (p, p * d)
... print '-' * 20 #define que terá a linha ''-----''
...
US$ 9.00 = R$ 15.17
--------------------
US$ 10.00 = R$ 16.85
--------------------
US$ 11.00 = R$ 18.54
--------------------
US$ 12.00 = R$ 20.22
--------------------[/code]
[u]
[b]e coloque aqui, ou mande como comentário...
o melho ganha um premio, e se quiser terá aula comigo de python...
valeu!
[/b][/u]
[b]proxima aula: entendendo e usando While,not, e outras funções..[/b]
atenção, a aula pode ser dia 22/11/2010 ou pode ser daqui uma semana...
mas tentarei divulgar aqui o mais rapido...obriado!

sexta-feira, 13 de agosto de 2010

bem vindo ao meu blog!

bem vindo ao meu blog! eu sou guilherme m. popularmente reconhecido como:
guilhermemig17
deixa eu me apresentar:
sou guilherme m. e trabalho com o blender há 9 meses já, sei python e java script e trabalho em uma empresa de games!
bom eu ainda estudo muito e tenho muito o que desenvolver e a 1° coisa para se desenvolver é mostrando meu trabalho! pois bem! esse blog é para mostrar meus diversos trabalhos mostrando dicas e sites além de muito mais!
começando por agora aqui vai alguns dos sites que indico para aqueles que tão começando na carreira de games:
http://programador.forumeiro.com/
http://www.programadoresdejogos.com/forum/index.php
http://www.blender.com.br
http://www.blender.org
http://www.panda3d.org
http://www.unity3d.org
http://ireconhecimento.blogspot.com/ (blog que apoio)
obrigado a todos que querem segui minha carreira e não deixem de conferir minhas postagens tanto para:
blender
panda3D
game maker
unity3D
cocos2d
dicas
modelagem e pixel art
programação e muito mais!
obrigado mesmo!