Substituindo caracteres em Zope/Python
Lembre, foram feitos estes testes em plataforma ZOPE.
Pode ser usado tanto para Page Template quanto para script Python.
Vamos lá!
Exemplo 1:
No primeiro exemplo vamos usar este código em um script Python. Adicione um script Python no seu Zope com qualquer nome, após criar mande editar o mesmo.
Ele vai procurar dentro da variável "texto" o caractere "a" (variável trocar) e vai substituir por AAA (variável trocando), pronto!
Exemplo 2:
No segundo exemplo vamos usar em Page Template o esquema de trocar os caracteres. Crie um Page Template com o nome de sua preferência, após isso edite o mesmo.
Como você pode ver, não existe muita diferença entre os dois exemplos, a maior diferença é que o HTML foi estruturando.
Você pode copiar o exemplo aí como está e colar nos seus respectivos tipos (script Python e Page Template), ele funciona sem problema.
Gravar campos com acentuação em MySQL via Python
Descobri uma maneira de colocar acentos no MySQL via Python. Coloquei a codificação de caracteres como UTF-8 no banco de dados e no Python, mas sempre tinha problemas com a inserção de caracteres com acentos, entre outros, nos campos de dados do MySQL.
Sempre imaginei que bastava colocar isso no início do arquivo:
#-*- coding:utf-8 -*-
mas descobri que era necessário algo mais. Então está aí o exemplo de conexão com um banco de dados MySQL. Com definição de codificação de caracteres, o nome do banco de dados, usuário e senha são "python". Exemplo de código:
Com isso terminei todos os meus problemas com acentuação no MySQL. Espero que essa dica ajude mais pessoas.
Livro: Python para desenvolvedores
Lançado a segunda edição do livro: Python para desenvolvedores, um ótimo livro e em português para quem quer aprender a linguagem python.
As duas versões do livro podem ser baixadas Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... O livro é distribuído gratuitamente e está sob a licença Creative Commons.
Ordenando dicionários em Python
Bom galera, vai uma dica legal sobre Python. Como ordenar dicionários. Quem já tentou ordenar algum dicionário em Python percebeu que ele simplesmente não mantém a ordem com que os dados são inseridos, ou seja, se eu fizer isto:
O dicionário resultado teria ordem aleatória, ou seja, qualquer ordem, menos a que nos queremos (ordem de inserção). Bom, se o Python não tivesse o mal costume não manter a ordem no dicionário, conforme os itens são adicionados, isto resolveria o nosso problema. Mas como ele não mantém a ordem, precisaremos de uma classe auxiliar que faça este trabalho. A classe se chama "ordict.py", está disponível neste link.
Coloque o arquivo no mesmo diretório que o seu arquivo Python e faça a importação da classe desta maneira no começo do seu script:
Pronto, agora seu script enxerga todos os métodos implementados em "odict.py". Agora vamos usá-lo. Basicamente o script de ordenação será o mesmo, com a diferença que o vetor resultado em vez de ser um dicionário será uma instância (objeto) da classe "OrdeneDict", ficando assim o resultado final:
Bom, é isso aí por enquanto, espero que seja útil.
Python + SQLite
Introdução
Se você precisa de um banco de dados com sintaxe SQL, mas não deseja ter o overhead de instalar um SGBD, o banco de dados SQLite é uma alternativa a ser levada em consideração.
O SQLite é um banco de dados para ser utilizado embutido com conexão através de bibliotecas próprias da linguagem.
Aqui mostraremos em poucas linhas como você pode sair por usando SQL para armazenar seus dados.
Instalando o módulo SQLite no Python
Como o sistema que foi usado para esse escrever essa dica foi o Ubuntu, usamos o "apt" para instalar a biblioteca sqlite no Python, já que o pacote não veio instalado por padrão:
# apt-get install python-sqlite
Vamos ao código:
Conclusão
Essa dica é apenas o ponto de partida para aqueles que desejam usar o SQLite dentro de seus programas em Python. Através dele é possível aprender a sintaxe do SQL para construir desde programinhas simples para uma agenda até coisas mais complexas.
Para mais informações:
* Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
* Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Acessando o Gmail com script em Python
Acesse sua conta do Gmail usando seu próprio script Python, através da libgmail.py. É muito simples.
Criei um script de exemplo que permite que você armazene diversos arquivos na sua conta do Gmail de uma única vez. Ele usa threads, portanto você pode enviar "simultaneamente" diversos arquivos.
Antes de usar altere seu login e sua senha. Você pode fazer isso dentro do código editando as variáveis ACCOUNT e PW no início do código ou depois que você executar o script pela primeira vez, ele irá criar um arquivo de configuração ~/.gbackup/ . Faz uso da libgmail.py.
Para baixar o script acesse:
* Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Script Python para consumir Web Services em .Net
Tive um desafio a poucos dias, que foi consumir Web Services feitos em .Net a partir de um servidor Solaris 10 via processo.
De todas as soluções possíveis que estive a ver, a melhor foi usar Python.
Encontrei este exemplo:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Assim fiz o WebServiceGenericClientNet.py:
Para executar o script basta dar permissões de execução e executar:
# chmod +x WebServiceGenericClientNet.py
# ./WebServiceGenericClientNet.py host=localhost url=/HelloWorld.asmx namespace=http://tempuri.org/ method=HelloWorld param_strSay=HelloWorld
O output é:
HelloWorld
Os parâmetros do WebServiceGenericClientNet.py são:
* host: Endereço do servidor
* url: Endereço do webservice
* namespace: Namespace do webservice, que pode ser encontrado vendo o WSDL, Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
* method: Método do webservice a ser chamado
* param_*NOME_DO_PARAMETRO*: Caso o método precise de parâmetros, podem ser definidos assim, atenção a ordem.
Além de usar este script no Solaris, também acabei por usar este script para chamar web services a partir do .Net/C#, pois são web services que serão atualizados constantemente, com novos métodos e tal, e em vez de ficar atualizando o WSDL basta chamar diretamente com o script a queima-roupa e a configuração da chamada dos web services pode ser feita a partir de configurações em base de dados. Para fazer isto no .Net/C# foi só lançar um processo assim:
Para mais informações e para acompanhar as atualizações deste script:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Programando páginas da Web com Python
Se você tem o Apache instalando no seu computador e gostaria de programar para web com Python, aí vai a dica.
Abra o editor de texto e digite:
Salve esse arquivo na pasta cgi-bin do seu Apache. Acesse essa pasta pelo console e digite:
$ chmod +x nomedoseucript
ou
$ chmod 777 nomedoseuscript
Ative o servidor e acesse, pelo navegador, o script:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
OBS: Não é necessário a extensão .py.
Python: Somando valores em um dicionário de strings
Bom galera, é uma dica simples mas útil em alguns momentos, visto que você pode ter um dicionário como este:
E você quer somar os valores contidos no dicionário, ou seja, sum(dic.values()).
Um método de fazer isso é usando a função anônima lambda combinada com funções do python, neste caso filter e map.
Vejam como ficou:
Onde:
* a função map que é o 2 elemento da função filter que vai converter todos valores do dicionário dic para float e gerando uma lista de floats;
* a função filter só é utilizada para formar uma lista com as respostas, ela vai adicionando cada valor convertido no 2 parâmetro, no caso o resultado da função map, que é uma lista de floats a uma lista de resposta que terá todos os termos somados pela função sum e o resultado guardado em total.
Uma maneira direta que obtém o mesmo resultado é:
Mas fica um exemplo de combinação de funções do Python como estudo e também uma forma de utilizar a função lambda, que economiza muito código.
Usando a função map em vez de for (Python)
Uma coisa que muita gente não conhece no Python é a função map, vamos analisar esse código que criar uma lista com os quadrados dos números de 0 a 10:
Deu pra ver que isso deixa e código muito grande, e pode ser simplificada usando o map, que é um comando parecido com o for, só que mais simples...
Segue um exemplo:
Sim, essa linha (a definição da função não conta =P) é a mesma coisa que aquele código, e isso pode simplificar muito o seu programa! Espero que aproveite
Superkaramba sob x86_64
Tive alguns muitos problemas e muita paciência pra conseguir instalar o Superkaramba sob a arquitetura 64 bits, então resolvi escrever esta dica pra ajudar a galera nessa arquitetura (que são realmente minoria!). A dica vale para o Slamd64 (Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...) que é a distro extra-oficial do Slackware portado para 64 bits.
Vamos lá então:
O problema de instalar o Superkaramba é que ele não consegue se comunicar direito com as bibliotecas Python 2.3.xx, pois estas foram portadas com caminho diferente da arquitetura 32 bits. Então, aplicativos nativamente 64 bits não conseguem localizá-las. Atualizar tais bibliotecas é o caminho. Baixe-as no link:
* Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Essa é a biblioteca mais recente (16/10/2005). Instale-a, com os seguintes procedimentos:
$ tar -xvf Python-2.x.x.tgz
$ cd Python-2.x.x
$ ./configure
$ make
$ su -c "make install"
password:
Depois disso, baixe os fontes do Superkaramba em:
* Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
E execute novamente os comandos (na pasta do download):
$ tar -xvf superkaramba-0.xx.tar.gz
$ cd superkaramba-0.xx
$ ./configure
$ make
$ su -c "make install"
password:
Inicie o Superkaramba com:
$ superkaramba
It's done! A propósito, qualquer biblioteca Python de versão superior à 2.3.xx será bem-vinda! Agora todo programa que precisar do Python para compilar/interpretar encontrará o caminho correto.
Atualização da blibioteca Python
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Fonte: vivaoLinux
Postado Por: RedDeviL
Lembre, foram feitos estes testes em plataforma ZOPE.
Pode ser usado tanto para Page Template quanto para script Python.
Vamos lá!
Exemplo 1:
No primeiro exemplo vamos usar este código em um script Python. Adicione um script Python no seu Zope com qualquer nome, após criar mande editar o mesmo.
Código:
texto = """
Aqui vem aquele texto enorme que você deseja substituir apenas alguns caracteres
"""
#Vamos criar uma variável a ser substituída
troca = 'a'
#Vamos criar uma variável a substituir
trocando = 'AAA'
#Vamos por o código aqui
return texto.replace(troca,trocando)
Exemplo 2:
No segundo exemplo vamos usar em Page Template o esquema de trocar os caracteres. Crie um Page Template com o nome de sua preferência, após isso edite o mesmo.
Código:
<!-- Vamos estruturá-lo dentro de uma HTML -->
<html>
<head>
<Title>Trocando os caracteres - thiagofigueiredo.com.br</Title>
</head>
<body>
<!--
Na linha de baixo vamos definir uma variável pelo ZPT.
Não é necessário a indentação pois no ZPT, isso é apenas uma forma de organizar o código.
No Python, dependendo do que estiver sendo feito, é necessário a indentação para finalizar o bloco de código.
Foram criadas três variáveis nas linhas abaixo, a cada *;* e criada uma variável.
-->
<div tal:define="texto python:'Aqui vem aquele texto enorme que você deseja substituir apenas alguns caracter';
troca string:a;
trocando string:AAA;">
<!-- A linha abaixo troca os caracteres -->
<b tal:content="python:texto.replace(troca,trocando)"></b>
</div>
</body>
</html>
Você pode copiar o exemplo aí como está e colar nos seus respectivos tipos (script Python e Page Template), ele funciona sem problema.
Gravar campos com acentuação em MySQL via Python
Descobri uma maneira de colocar acentos no MySQL via Python. Coloquei a codificação de caracteres como UTF-8 no banco de dados e no Python, mas sempre tinha problemas com a inserção de caracteres com acentos, entre outros, nos campos de dados do MySQL.
Sempre imaginei que bastava colocar isso no início do arquivo:
#-*- coding:utf-8 -*-
mas descobri que era necessário algo mais. Então está aí o exemplo de conexão com um banco de dados MySQL. Com definição de codificação de caracteres, o nome do banco de dados, usuário e senha são "python". Exemplo de código:
Código:
bd=MySQLdb.connect(host="localhost",user="python",passwd="python",db="python",charset="utf8", use_unicode = True)
Livro: Python para desenvolvedores
Lançado a segunda edição do livro: Python para desenvolvedores, um ótimo livro e em português para quem quer aprender a linguagem python.
As duas versões do livro podem ser baixadas Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... O livro é distribuído gratuitamente e está sob a licença Creative Commons.
Ordenando dicionários em Python
Bom galera, vai uma dica legal sobre Python. Como ordenar dicionários. Quem já tentou ordenar algum dicionário em Python percebeu que ele simplesmente não mantém a ordem com que os dados são inseridos, ou seja, se eu fizer isto:
Código:
##DIC 1 E O DICIONÁRIO QUE SERÁ ORDENADO
dic_1 = {'a':1,'b':3,'c':2}
##DICIONÁRIO AUXILIAR
dic_aux = dic_1
##ORDENANDO DIC_1 PELOS VALORES
dic_1 = sorted(dic_1.values())
##PEGA VALORES DO DIC_1 E VAI MONTANDO DIC_RESULTADO A PARTIR DO MENOR VALOR
dic_resultado = {}
for i in dic_1:
for item in dic_aux:
if item[i] == i
dic_resultado[item] = i
print dic_resultado
Coloque o arquivo no mesmo diretório que o seu arquivo Python e faça a importação da classe desta maneira no começo do seu script:
Código:
from odict import *
Código:
from odict import *
##DIC 1 E O DICIONÁRIO QUE SERA ORDENADO
dic_1 = {'a':1,'b':3,'c':2}
##DICIONARIO AUXILIAR
dic_aux = dic_1
##ORDENANDO DIC_1 PELOS VALORES
dic_1 = sorted(dic_1.values())
##PEGA VALORES DO DIC_1 E VAI MONTANDO DIC_RESULTADO A PARTIR DO MENOR VALOR
dic_resultado = OrderedDict()
for i in dic_1:
for item in dic_aux:
if item[i] == i:
dic_resultado[item] = i
print dic_resultado
Python + SQLite
Introdução
Se você precisa de um banco de dados com sintaxe SQL, mas não deseja ter o overhead de instalar um SGBD, o banco de dados SQLite é uma alternativa a ser levada em consideração.
O SQLite é um banco de dados para ser utilizado embutido com conexão através de bibliotecas próprias da linguagem.
Aqui mostraremos em poucas linhas como você pode sair por usando SQL para armazenar seus dados.
Instalando o módulo SQLite no Python
Como o sistema que foi usado para esse escrever essa dica foi o Ubuntu, usamos o "apt" para instalar a biblioteca sqlite no Python, já que o pacote não veio instalado por padrão:
# apt-get install python-sqlite
Vamos ao código:
Código:
import sqlite
# Cria a conexão como o banco, que no caso do sqlite
# corresponde a um arquivo, caso o arquivo não exista ele é criado
connection = sqlite.connect("demo.db")
# Cria o cursor para enviar comandos
cur = connection.cursor()
# A partir de agora já podemos executar nossas queries através
# da função execute do objeto cursor
# para criar uma tabela podemos usar os seguintes comando
# Definição da query
sql = "CREATE TABLE contatos(id NUMBER, nome VARCHAR, fone VARCHAR)"
# Execução da query
cur.execute(sql)
# Para inserir dados no nosso banco de dados usamos
sql = "INSERT INTO contatos(id,nome,fone) VALUES(1,'fulano', '999-9999')"
cur.execute(sql)
# A linha seguinte é usada para consolidar os dados na base
connection.commit()
# E finalmente para consultar os dados no nosso banco de dados, usamos
sql = "SELECT * FROM contatos"
cur.execute (sql)
result = cur.fetchall()
for contato in result:
print "Nome: %s\tFone: %s" %(contato[1],contato[2])
Conclusão
Essa dica é apenas o ponto de partida para aqueles que desejam usar o SQLite dentro de seus programas em Python. Através dele é possível aprender a sintaxe do SQL para construir desde programinhas simples para uma agenda até coisas mais complexas.
Para mais informações:
* Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
* Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Acessando o Gmail com script em Python
Acesse sua conta do Gmail usando seu próprio script Python, através da libgmail.py. É muito simples.
Criei um script de exemplo que permite que você armazene diversos arquivos na sua conta do Gmail de uma única vez. Ele usa threads, portanto você pode enviar "simultaneamente" diversos arquivos.
Antes de usar altere seu login e sua senha. Você pode fazer isso dentro do código editando as variáveis ACCOUNT e PW no início do código ou depois que você executar o script pela primeira vez, ele irá criar um arquivo de configuração ~/.gbackup/ . Faz uso da libgmail.py.
Para baixar o script acesse:
* Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Script Python para consumir Web Services em .Net
Tive um desafio a poucos dias, que foi consumir Web Services feitos em .Net a partir de um servidor Solaris 10 via processo.
De todas as soluções possíveis que estive a ver, a melhor foi usar Python.
Encontrei este exemplo:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Assim fiz o WebServiceGenericClientNet.py:
Código:
#!/usr/bin/python
# by eduveks
import sys, httplib, array
try:
host = ""
url = ""
namespace = ""
method = ""
params = {}
for arg in sys.argv[1:]:
if host == "" and arg.find("host=") == 0:
host = arg[len("host="):]
elif url == "" and arg.find("url=") == 0:
url = arg[len("url="):]
elif namespace == "" and arg.find("namespace=") == 0:
namespace = arg[len("namespace="):]
elif method == "" and arg.find("method=") == 0:
method = arg[len("method="):]
elif arg.find("param_") == 0:
params[arg[len("param_"):arg.find("=")]] = arg[arg.find("=") + 1:]
SOAP_Request = ""
SOAP_Request += "<SOAP-ENV:Envelope"
SOAP_Request += " SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\""
SOAP_Request += " xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\""
SOAP_Request += " xmlns:xsi=\"http://www.w3.org/1999/XMLSchema-instance\""
SOAP_Request += " xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\""
SOAP_Request += " xmlns:xsd=\"http://www.w3.org/1999/XMLSchema\">"
SOAP_Request += "<SOAP-ENV:Body>"
SOAP_Request += "<"+ method +" xmlns=\""+ namespace +"\">"
for param in params.keys():
SOAP_Request += "<"+ param +">"+ params[param] +"</"+ param +">"
SOAP_Request += "</"+ method +">"
SOAP_Request += "</SOAP-ENV:Body>"
SOAP_Request += "</SOAP-ENV:Envelope>"
http = httplib.HTTP(host)
http.putrequest("POST", url)
http.putheader("Host", host)
http.putheader("User-Agent", "Python")
http.putheader("Content-type", "text/xml; charset=\"UTF-8\"")
http.putheader("Content-length", "%d" % len(SOAP_Request))
http.putheader("SOAPAction", "\""+ namespace + method +"\"")
http.endheaders()
http.send(SOAP_Request)
http_response_statuscode, http_response_statusmessage, http_response_header = http.getreply()
SOAP_Response = http.getfile().read()
if http_response_statuscode == 200 and http_response_statusmessage == "OK":
print SOAP_Response[SOAP_Response.find("<"+ method +"Result>") + len("<"+ method +"Result>"):SOAP_Response.find("</"+ method +"Result>")]
else:
print "### ERROR ###############"
if SOAP_Response.find("<faultstring>") > -1:
print SOAP_Response[SOAP_Response.find("<faultstring>") + len("<faultstring>"):SOAP_Response.find("</faultstring>")]
print "Response: ", http_response_statuscode, http_response_statusmessage
print http_response_header
print SOAP_Response
except:
print "### ERROR ###############"
for err in sys.exc_info():
print err
# chmod +x WebServiceGenericClientNet.py
# ./WebServiceGenericClientNet.py host=localhost url=/HelloWorld.asmx namespace=http://tempuri.org/ method=HelloWorld param_strSay=HelloWorld
O output é:
HelloWorld
Os parâmetros do WebServiceGenericClientNet.py são:
* host: Endereço do servidor
* url: Endereço do webservice
* namespace: Namespace do webservice, que pode ser encontrado vendo o WSDL, Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
* method: Método do webservice a ser chamado
* param_*NOME_DO_PARAMETRO*: Caso o método precise de parâmetros, podem ser definidos assim, atenção a ordem.
Além de usar este script no Solaris, também acabei por usar este script para chamar web services a partir do .Net/C#, pois são web services que serão atualizados constantemente, com novos métodos e tal, e em vez de ficar atualizando o WSDL basta chamar diretamente com o script a queima-roupa e a configuração da chamada dos web services pode ser feita a partir de configurações em base de dados. Para fazer isto no .Net/C# foi só lançar um processo assim:
Código:
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.FileName = "C:\Python26\python.exe";
process.StartInfo.Arguments = "WebServiceGenericClientNet.py host=localhost url=/HelloWorld.asmx namespace=http://tempuri.org/ method=HelloWorld param_strSay=HelloWorld";
process.StartInfo.WorkingDirectory = "C:\Python26\";
process.Start();
string output = process.StandardOutput.ReadToEnd();
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Programando páginas da Web com Python
Se você tem o Apache instalando no seu computador e gostaria de programar para web com Python, aí vai a dica.
Abra o editor de texto e digite:
Código:
#!/usr/bin/env python
#-*- coding: ISO-8859-1 -*-
#esse print vai mostrar para o apache que é um página HTML através de
#um cabeçalho HTTP
print "Content-type: text/html; ISO-8859-1"
#esse print é muito importante, pois separa o cabeçalho HTTP da página
#sem ela o apache acusa erro de script
print
print "<html>"
print "<head>"
print "<title>Teste</title>"
print "</head>"
print "<body>"
print "<h1>Isso é um teste</h1>"
print "</body>"
print "</html>"
Salve esse arquivo na pasta cgi-bin do seu Apache. Acesse essa pasta pelo console e digite:
$ chmod +x nomedoseucript
ou
$ chmod 777 nomedoseuscript
Ative o servidor e acesse, pelo navegador, o script:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
OBS: Não é necessário a extensão .py.
Python: Somando valores em um dicionário de strings
Bom galera, é uma dica simples mas útil em alguns momentos, visto que você pode ter um dicionário como este:
Código:
dic = {'a':'10','b':'20','c':'30','d':'40','c':'50'}
Um método de fazer isso é usando a função anônima lambda combinada com funções do python, neste caso filter e map.
Vejam como ficou:
Código:
total = sum(filter(lambda elem:elem,(map(lambda dic:float(dic),dic.values()))))
* a função map que é o 2 elemento da função filter que vai converter todos valores do dicionário dic para float e gerando uma lista de floats;
* a função filter só é utilizada para formar uma lista com as respostas, ela vai adicionando cada valor convertido no 2 parâmetro, no caso o resultado da função map, que é uma lista de floats a uma lista de resposta que terá todos os termos somados pela função sum e o resultado guardado em total.
Uma maneira direta que obtém o mesmo resultado é:
Código:
total = sum(map(lambda dic:float(dic),dic.values()))
Usando a função map em vez de for (Python)
Uma coisa que muita gente não conhece no Python é a função map, vamos analisar esse código que criar uma lista com os quadrados dos números de 0 a 10:
Código:
final = []
def retornaquadrado(x):
return x**2
for item in range(11):
final.append(quadrado(item))
Deu pra ver que isso deixa e código muito grande, e pode ser simplificada usando o map, que é um comando parecido com o for, só que mais simples...
Segue um exemplo:
Código:
def retornaquadrado(x): return x**2 final = map(retornaquadrado,range(11))
Superkaramba sob x86_64
Tive alguns muitos problemas e muita paciência pra conseguir instalar o Superkaramba sob a arquitetura 64 bits, então resolvi escrever esta dica pra ajudar a galera nessa arquitetura (que são realmente minoria!). A dica vale para o Slamd64 (Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...) que é a distro extra-oficial do Slackware portado para 64 bits.
Vamos lá então:
O problema de instalar o Superkaramba é que ele não consegue se comunicar direito com as bibliotecas Python 2.3.xx, pois estas foram portadas com caminho diferente da arquitetura 32 bits. Então, aplicativos nativamente 64 bits não conseguem localizá-las. Atualizar tais bibliotecas é o caminho. Baixe-as no link:
* Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Essa é a biblioteca mais recente (16/10/2005). Instale-a, com os seguintes procedimentos:
$ tar -xvf Python-2.x.x.tgz
$ cd Python-2.x.x
$ ./configure
$ make
$ su -c "make install"
password:
Depois disso, baixe os fontes do Superkaramba em:
* Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
E execute novamente os comandos (na pasta do download):
$ tar -xvf superkaramba-0.xx.tar.gz
$ cd superkaramba-0.xx
$ ./configure
$ make
$ su -c "make install"
password:
Inicie o Superkaramba com:
$ superkaramba
It's done! A propósito, qualquer biblioteca Python de versão superior à 2.3.xx será bem-vinda! Agora todo programa que precisar do Python para compilar/interpretar encontrará o caminho correto.
Atualização da blibioteca Python
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Fonte: vivaoLinux
Postado Por: RedDeviL