Mostrando postagens com marcador Python. Mostrar todas as postagens
Mostrando postagens com marcador Python. Mostrar todas as postagens

domingo, 13 de agosto de 2017

Python vetores

Uma das facilidades da utilização de vetores em python é a possibilidade de se mesclar como o usar, você pode plotar apenas os valores pares, impares, pular de dois em dois.

vetor = range(10)


O vetor pode ser impresso usando usando print vetor, mas imagine que você queira apenas o valores pares.


print vetor[::2]
Agora somente os ímpares:
print vetor[1::2]
Imprimindo apenas os múltiplos de 4:
print vetor[::4]
É isso ai, lembre-se que é a posição não o valor.

segunda-feira, 6 de junho de 2016

Funcao - parte II

Uma função possui valores dentro da função, fora dela, os valores não existem.

Exemplo:

a=2
def func():
    a=3
    print a

func() #imprime o a dentro da função
print a #imprime o a fora da função

>>>
3
2
>>>

Percebe-se que a variável a possui dois valores, um dentro da função e outro fora da função.

Pode-se usar o a tanto dentro como fora da função com o mesmo valor?

Existe algumas maneiras para fazer isso, uma que normalmente faço é o seguinte:


a=2
def func():
    global a
    a=3
    print a

func()
print a

>>>
3
3
>>>

acrescento o global a, fazendo o valor de a, ser único no código.

abs

domingo, 8 de novembro de 2015

Interface com linhas e colunas

Para uma interface simples o código abaixo mostra uma pequena janela na tela.

from Tkinter import *
root = Tk()
root.mainloop()

Janela com Tkinter e Python
A janela não possui nada, mas podemos colocar botões, caixa de texto, textos (label), ou outros itens de janela.

Algo legal ao se colocar objetos na Janela, é poder alinha-los como se fosse uma tabela, com linhas e colunas.









Para isto vamos codificar:

from Tkinter import *

btnButton = Button (text='1').grid(row=0, column=0)

btnButton = Button (text='2').grid(row=1, column=0)
btnButton = Button (text='3').grid(row=0, column=1)

btnButton = Button (text='4').grid(row=0, column=4)

root = Tk()
root.mainloop()


Ao colocar os botões, eu coloquei no final do código o .grid(row, column). Com isto pode-se definir as posições dos botões como se fosse uma planilha. Isto ajuda para deixar seus botões mais organizado.



Até a próxima.

sexta-feira, 2 de janeiro de 2015

Interface - parte III

Imagine que você tenha de fazer um programa que converta a temperatura de Celsius para Fahrenheit, a primeira coisa que pensamos é que o usuário deverá introduzir um valor e o programa converte e apresenta o resultado.

Com uma pesquisa básica você descobre a fórmula para essa conversão.

C/5= (F -32)/9

Basicamente é simples. E o código usando uma função seria assim:

def mudanca(x):
    F = x*9/5 + 32
    print "o valor em Fahrenheit e " + str(F)


O usuário chamará a função com o valor correto e terá o resultado


Essa é a janela normal de execução em Python. E temos o resultado.
Mas, imagine que você queira fazer uma interface gráfica =].
Utilizando o Tkinter isso é simples. a diferença agora é que temos de receber o resultado de uma caixa de texto e converte-lo ao clicar em um botão.



Essa é a ideia. O que será acrescentado nessa código é a caixa de texto e o evento que irá armazenar o valor da mesma ao clique do botão.

from Tkinter import *
#funcao que converte a temperatura
def mudanca():
    temp = temperatura.get()
    #convertendo
    F = temp*9/5 + 32
    #colocando o resultado em uma Label
    mTemperatura.configure(text="A temperatura em Fahreight e : " + str(F))


mJanela = Tk()
#valor que será armazenado da caixa de texto
temperatura = IntVar()
mJanela.geometry("250x200")
mJanela.title("Temperatura")
mlabel = Label(text = 'Digite a temperatura em Celcius:').pack()
#caixa de texto
mTexto_entry = Entry(mJanela,textvariable = temperatura).pack()
#Botao
mButao =  Button(text = "Calcular", command = mudanca).pack()
#label sem texto
mTemperatura = Label(text = "")
mTemperatura.pack()
mJanela.mainloop()

Simples até. A caixa de texto recebe o valor pelo usuário e o armazena ao clicar no botão na variável temperatura. A função mudanca() é chamada e faz todo o processo.

O interessante do código é o fato de atualizar o valor da Label.


 mTemperatura.configure(text="A temperatura em Fahreight e : " + str(F))

Bom é isso ai.

quarta-feira, 31 de dezembro de 2014

Random e Interface - Parte II

No post ANTERIOR, fizemos uma interface e um gerador de números aleatórios. Bom, havia alguns problemas no código.

Erros:

A lista não ficava ordenada, um usuário gostaria de que seu jogo estivesse em ordem crescente.
A lista poderia apresentar números repetidos, imagine o usuário indo jogar e seu código apresentava um, dois ou mais números repetidos.

Esses erros são comuns quando não analisamos o que o usuário poderá fazer. E sabe eles sempre fazem coisas que não acreditamos.

Enfim, vamos melhorar nosso código.

Código antigo ( somente será necessário modificar a função):

#funcao gerar
def gerar():
    listasena=range(6) 
    for i in range(0,5):
        listasena[i]=random.randrange(1,60)
    
    mlbl = Label(text=listasena).pack()



Novo código


#funcao gerar
def gerar():
    listasena = random.sample(range(60),6)
    listasena.sort()
    mlbl = Label(text=listasena).pack()

O que foi modificado?

Foi acrescentado o:

listasena = random.sample(range(1,60),6)

Agora com essa linha, não precisa mais da função for. Definimos o range(1,60) que vai de 1-60, e depois da virgula definimos quantos números aleatórios queremos. Basicamente uma linha nos salvou. E a linha:



listasena.sort()

coloca a lista em ordem.

Bom, isso deixa nosso código pronto para usar.

Código:

from Tkinter import *
import random

#funcao gerar
def gerar():
    listasena = random.sample(range(1,60),6)

    listasena.sort()
    mlbl = Label(text=listasena).pack()

#janela
mJanela = Tk()
mJanela.geometry("200x200")
mJanela.title("Sena")
#janela

#botao
mbtn2 = Button(text = 'Gerar', command = gerar).pack()
#botao

mJanela.mainloop()

terça-feira, 30 de dezembro de 2014

Random e Interface

Imagine que você queira implementar a função random junto à uma interface, e que ao clicar de um botão pelo usuário seria apresentado seis valores para ele jogar na Sena.

Bom, apesar de simples a ideia é um bom treino.

Vamos utilizar o código para criar uma lista com seis valores aleatórios.

#code
import random

#criando a lista com seis valores
k=range(6)

#for para colocar seis numeros aleatorios na lista
for i in range(0,5):
    numero = random.randrange(1, 60);
    k[i] = numero

#apresentar a lista nova
print 'os seis valores: ', k
#code


E o código para desenhar uma janela na tela.


#codigo
from Tkinter import *

mGui = Tk()
mGui.geometry("450x450")
mGui.title("Exemplo")
myButton = Button(text='botao').pack()

mGui.mainloop()#somente necessario no Windows
#codigo


A proposta será juntar esses dois códigos.

Vamos começar. 

 Para que aconteça alguma coisa ao clicar do botão, deve-se acrescentar o código command:


myButton = Button(text='botao'  , command = gerar  ).pack()


O gerar será o nome da função que será chamada ao evento clicar sobre o botão.
 A função será essa:


#funcao gerar
def gerar():
    listasena=range(6) 
    for i in range(0,5):
        listasena[i]=random.randrange(1,60)
    
    mlbl = Label(text=listasena).pack()


Bom, ao clicar no botão será chamada a função gerar, que cria uma lista com seis valores, e os mesmos são trocados por valores aleatórios de 1-60. 
Após isso temos a a linha:


mlbl = Label(text=listasena).pack()

Que chama uma Label que seu texto será o conteúdo da lista.

 

Cada vez que o botão gerar é clicado aparecerá uma linha com código. Ainda tem que se arrumar algumas coisas no código. Depois continuamos.

Código completo:


#codigo

from Tkinter import *
import random

#funcao gerar
def gerar():
    listasena = range(6)
    for i in range(0,5):
        listasena[i]=random.randrange(1,60)
    mlbl = Label(text=listasena).pack()

#janela
mJanela = Tk()
mJanela.geometry("200x200")
mJanela.title("Sena")
#janela

#botao
mbtn2 = Button(text = 'Gerar', command = gerar).pack()
#botao

mJanela.mainloop()
#codigo



Random

Imagine que você precise de um numero aleatório. Bom, em Python isso acaba sendo tranquilo até, pois, temos a função random.

Exemplo:

#code
import random
numero = random.randrange(1, 60);
#code

Nesse exemplo o numero 1 e 60, serão de onde até onde os números serão gerados, e a variável 'numero' será onde o mesmo será armazenado.

Bom, imagine que você queira criar um programa que crie um jogo, de seis números aleatórios (MegaSena é pura coincidência rs).

O legal que achei é poder armazenar os seis números aleatórios em uma lista.

Exemplo:

#code
import random

#criando a lista com s
k=range(6)

#for para colocar seis numeros aleatorios na lista
for i in range(0,5):
    numero = random.randrange(1, 60);
    k[i] = numero

#apresentar a lista nova
print 'os seis valores: ', k
#code

Ainda há uma falha, pois, pode-se haver números repetidos. Depois completo. abs

Interface grafica - parte 2

Imagine agora que você queira colocar algo em sua janela. O básico é um botão, pois, é onde o usuário terá sua primeira iteração.

No Tkinter a sintaxe para botões é bem simples

#code
myButton = Button().pack()
#code

Com esse código simples você implementa um botão em sua janela.

#codigo
from Tkinter import *


mGui = Tk()
mGui.geometry("450x450")
mGui.title("Exemplo")
myButton = Button(text='botao').pack()

mGui.mainloop()#somente necessario no Windows
#codigo

Eu acrescentei o text = 'botao' no segundo código para acrescentar que dentro dos parenteses do Button é onde coloca-se os códigos de cor, texto e evento.



Outro código acrescentado foi o:

mGui.title("Exemplo")

Que coloca um nome na sua janela.



sexta-feira, 26 de dezembro de 2014

Interface gráfica

Uma das coisas que acho mais legal em programar é poder desenvolver um aplicativo com interface para o usuário. Particularmente sou muito visual, prefiro que meus programas sejam voltados para o usuário. Pois, em suma será para eles que será fornecido nosso trabalho.

Em Python temos a biblioteca Tkinter, eu prefiro usar alguma IDE para interface gráfica, mas neste primeiro momento estou usando o modo texto. É um pouco demorado, mas ajuda.

Tkinter

Vamos mostrar o código para uma janela simples.

#codigo
from Tkinter import *

mGui = Tk()
mGui.geometry = ('420x380')
mGui.mainloop()
#codigo

Simples e eficiente.


O código mGui.geometry = ('420x380'), é o que define o tamanho da janela. Tente muda-lo ou remover esse código para verificar como sua janela terá outra dimensão.

Funcao

No mundo da programação as funções são de extrema importância, pois, devemos deixar o código mais limpo. E para mim essa é uma das vantagens da função.

Vamos logo ao exemplo.

Exemplo 1:


def temp():
    d = 2
    return d


print temp()

Aqui temos um caso em que o print chama a função temp()
 que retorna o valor d e será imprimido 2 na tela. Simples mas eficiente.

Outro caso é onde você define um valor a ser utilizado na função temp().

Exemplo 2:


def temp(c):
    d = 2*c
    return d

print temp(2)

A função temp() agora recebe um valor de 2, e dentro dela o 
valor 2 valerá c. Sendo retornado o valor de d que será c*2.

Funções ajudam a deixar o código mais limpo.


Matrizes

Imagine que você tenha uma matriz 2x2, ou lista como chamam.

1 2
2 4
2 5
4 5
5 6

E que estão separadas por um espaço.
Isso é bem comum de se trabalhar, essa lista está salva em um arquivo .txt, ou outro.
Utilizando o código anterior.


matriz = [ map(float, line.split()) for line in file('nome do arquivo.extencao') if
line.strip() ]

Podemos salvar essa lista em matriz, e o que podemos fazer com ela depois?
Bom, temos inúmeras possibilidades.

Mas, uma coisa que acho interessante é podermos separar essa lista 2x2 em duas 1x1. Existe inúmeras maneiras de fazer isso, a que gostei, foi utilizando a função FOR.



FOR


#split matriz2x2 para duas matrix1x1
matrizx=range(0,len(matriz))
matrizy=range(0,len(matriz))

for z in range(0, len(matriz)):
    matrizx[z]=matriz[z][0]
    matrizy[z]=matriz[z][1]
#split matriz2x2 para duas matrix1x1

Nesse caso, teremos duas listas matrizx e matrixy e ainda temos a matrix 2x2.


quarta-feira, 24 de dezembro de 2014

Python e as matrizes

Bom uma coisa que achei muito bom no Python é a possibilidade de trabalhar com vetores ou matrizes. Em outras linguagem isso dá um pouco de trabalho. Mas, agora com o Python ficou tudo melhor.

Exemplos:

a=[1,2,3]
print a, a[2] 

A saída será: [1,2,3], [3]

Em Python e matriz podemos fazer algo interessante, que é chamar um arquivo externo, e com algumas linhas de comando:


matriz = [ map(float, line.split()) for line in file('nome do arquivo.extencao') if
line.strip() ]

Essa linha chama um arquivo de texto e o transforma em matriz: 1x1, 2x2, e assim por diante.

E ainda pode-se ter qualquer extensão.

Facilidade é a regra com Python. 

Python e os lacos

O básico novamente. Acho que em qualquer linguagem de programação a lógica é sempre a mesma, o que diferencia uma da outra é como escrever. Em Python, temos de aprender novamente. Bom vamos à alguns exemplos:

For

for z in range(0,10):
  a = a + 1
  b +=1
print a, b

Esse código simples nos será muito útil, pois, em programação isso é muito comum. E temos também as decisões.

If
 
if a==b :
 print 'a = b'
else
 print 'a !=b'


São casos simples, mas, a partir dai começamos a brincar mais com a linguagem. 

Até

Iniciando em Python

Bom, estou começando a programar em Python. Parece uma ótima linguagem de programação para programas matemáticos, que é minha meta agora.
Não vou perder tempo explicando o que é a linguagem de programação Python.
Só sei que é muito fácil até.

a=1
b=2
c=a+b
print c

Este código simples, sem precisar declarar a variável foi o que me chamou a atenção em Python, podemos ir além do que com as famigeradas linguagens. Bom é isso ai, vamos ver o que mais podemos fazer e vou postando.

 Abs

P.s.: link para fazer o download do Python. https://www.python.org/
Um editor de texto bom e leve é o PyScripter. https://code.google.com/p/pyscripter/