ÚLTIMOS POSTS

    quarta-feira, 17 de junho de 2015

    Falando sobre Python -Parte 8 - Operadores e operandos, Operações com Strings






    Operadores e operandos


    Operadores são símbolos especiais que representam computações como adição e multiplicação. Os valores que o operador usa são chamados operandos.

    Todas as expressões seguintes são válidas em Python e seus significados são mais ou menos claros:

    20+32   hora-1   hora*60+minuto   minuto/60   5**2  (5+9)*(15-7)

    Em Python, os símbolos +, -, / e o uso de parênteses para agrupamento têm o mesmo significado que em matemática. O asterisco (*) é o símbolo para multiplicação e ** é o símbolo para potenciação.

    Quando um nome de variável aparece no lugar de um operando, ele é substituído pelo valor da variável, antes da operação ser executada.

    Adição, subtração, multiplicação e potenciação fazem o que se espera, mas você pode ficar surpreso com a divisão. A operação seguinte tem um resultado inesperado:

    >>> minuto = 59
    >>> minuto/60
    0
    O valor de minuto é 59 e, em aritmética convencional, 59 dividido por 60 é 0,98333, não 0. A razão para a discrepância é que Python está realizando uma divisão inteira.

    Quando ambos os operandos são inteiros, o resultado tem de ser também um inteiro e, por convenção, a divisão inteira sempre arredonda para baixo, mesmo em casos como este, em que o inteiro seguinte está muito próximo:

    >>> minuto*100/60
    98
    De novo, o resultado é arredondado para baixo, mas agora pelo menos a resposta é aproximadamente correta. A alternativa é usar a divisão em ponto flutuante, o que veremos no capítulo 3.

    Ordem dos operadores


    Quando mais de um operador aparece em uma expressão, a ordem de avaliação depende das regras de precedência. Python segue as mesmas regras de precedência para seus operadores matemáticos que a matemática. O acrônimo PEMDAS é uma maneira prática de lembrar a ordem das operações:

    P: Parênteses têm a mais alta precedência e podem ser usados para forçar uma expressão a ser avaliada na ordem que você quiser. Já que expressões entre parênteses são avaliadas primeiro, 2 * (3-1) é 4, e (1+1)**(5-2) é 8. Você também pode usar parênteses para tornar uma expressão mais fácil de ler, como em (minuto * 100) / 60, ainda que isso não altere o resultado.
    E: Exponenciação ou potenciação tem a próxima precedência mais alta, assim 2**1+1 é 3 e não 4, e 3*1**3 é 3 e não 27.

    MDAS: Multiplicação e Divisão têm a mesma precedência, que é mais alta do que a da Adição e da Subtração, que também têm a mesma precedência. Assim 2*3-1 dá 5 em vez de 4, e 2/3-1 é -1, não 1 (lembre-se de que na divisão inteira, 2/3=0).
    Operadores com a mesma precedência são avaliados da esquerda para a direita. Assim, na expressão minuto*100/60, a multiplicação acontece primeiro, resultando em 5900/60, o que se transforma produzindo 98. Se as operações tivessem sido avaliadas da direita para a esquerda, o resultado poderia ter sido 59*1, que é 59, que está errado.


     Operações com strings
    De maneira geral, você não pode executar operações matemáticas em strings, ainda que as strings se pareçam com números. O que segue é inválido (assumindo que mensagem é do tipo string):

    mensagem-1   "Alô"/123   mensagem*"Alô"   "15"+2
    Interessante é o operador +, que funciona com strings, embora ele não faça exatamente o que você poderia esperar. Para strings, o operador + representa concatenação, que significa juntar os dois operandos ligando-os pelos extremos. Por exemplo:

    fruta = "banana"
    assada = " com canela"
    print fruta + assada
    A saída deste programa é banana com canela. O espaço antes da palavra com é parte da string e é necessário para produzir o espaço entre as strings concatenadas.

    O operador * também funciona com strings; ele realiza repetição. Por exemplo, "Legal"*3 é "LegalLegaLegal". Um dos operadores tem que ser uma string; o outro tem que ser um inteiro.

    Por um lado, esta interpretação de + e * faz sentido pela analogia entre adição e multiplicação. Assim como 4*3 equivale a 4+4+4, não é de estranhar que "Legal"*3 seja o mesmo que "Legal"+"Legal"+"Legal". Por outro lado, uma diferença significativa separa concatenação e repetição de adição e multiplicação. Você saberia mencionar uma propriedade da adição e da multiplicação que não ocorre na concatenação e na repetição?
    Mais informações »

    quinta-feira, 28 de maio de 2015

    Falando sobre Python Parte 7- Nome de Variáveis, palavras reservadas e avaliando Expressões.





    Ola  amigos inciantes e Pythonista ! Seguindo falando sobre Python daremos continuidade,
    hoje sera abordado  Nome de Variáveis, palavras reservadas e avaliando Expressões.
    Bons estudos!


    Nomes de variáveis e palavras reservadas

    Os programadores geralmente escolhem nomes significativos para suas variáveis, pois os nomes documentam para o que a variável é usada.

    Nomes de variáveis podem ser arbitrariamente longos. Eles podem conter tanto letras quanto números, mas têm de começar com uma letra. Embora seja válida a utilização de letras maiúsculas, por convenção, não usamos. Se você o fizer, lembre-se de que maiúsculas e minúsculas são diferentes. Bruno e bruno são variáveis diferentes.

    O caractere para sublinhado ( _ ) pode aparecer em um nome. Ele é muito utilizado em nomes com múltiplas palavras, tal como em meu_nome ou preco_do_cha_na_china.

    Se você der a uma variável um nome inválido, causará um erro de sintaxe:

    >>> 76trombones = "grande parada"
    SyntaxError: invalid syntax
    >>> muito$ = 1000000
    SyntaxError: invalid syntax
    >>> class = "Ciencias da Computacao 101"
    SyntaxError: invalid syntax
    76trombones é inválida por não começar com uma letra. muito$ é inválida por conter um caractere ilegal, o cifrão. Mas o que está errado com class?

    Ocorre que class é uma das palavras reservadas em Python. Palavras reservadas definem as regras e a estrutura da linguagem e não podem ser usadas como nomes de variáveis.

    Python tem 29 palavras reservadas:

    and    -   def    -   exec   -   if     -   not  -     return
    assert  -  del    -   finally  - import -   or   -     try
    break   -  elif    -  for   -    in   -     pass   -   while
    class   -  else    -  from   -   is     -   print   -  yield
    continue  except    global    lambda    raise

    Pode ser útil ter essa lista à mão [2]. Se o interpretador acusar erro sobre um de seus nomes de variável e você não souber o porquê, veja se o nome está na lista.

    [2]
    N.T.: esta lista pode ser obtida através do próprio interpretador Python, com apenas dois comandos:

    import keyword
    print keyword.kwlist
    2.4 Comandos
    Um comando é uma instrução que o interpretador Python pode executar. Vimos até agora dois tipos de comandos: de exibição (print) e de atribuição.

    Quando você digita um comando na linha de comando, o Python o executa e mostra o resultado, se houver um. O resultado de um comando print é a exibição de um valor. Comandos de atribuição não produzem um resultado visível.

    Um script normalmente contém uma sequência de comandos. Se houver mais de um comando, os resultados aparecerão um de cada vez, conforme cada comando seja executado.

    Por exemplo, o “script”:

    print 1
    x = 2
    print 2
    produz a saída:



     Avaliando expressões

    Uma expressão é uma combinação de valores, variáveis e operadores. Se você digitar uma expressão na linha de comando, o interpretador avalia e exibe o resultado:

    >>> 1 + 1
    2
    Embora expressões contenham valores, variáveis e operadores, nem toda expressão contém todos estes elementos. Um valor por si só é considerado uma expressão, do mesmo modo que uma variável:

    >>> 17
    17
    >>> x
    2
    Avaliar uma expressão não é exatamente a mesma coisa que imprimir um valor:

    >>> mensagem = "E aí, Doutor?"
    >>> mensagem
    'E aí, Doutor?'
    >>> print mensagem
    E aí, Doutor?
    Quando Python exibe o valor de uma expressão, usa o mesmo formato que você usaria para entrar com o valor. No caso de strings, isso significa que as aspas são incluídas [3]. Mas o comando print imprime o valor da expressão, que, neste caso, é o conteúdo da string.

    [3] N.T.: Python aceita aspas simples ou duplas para delimitar strings.
    Num script, uma expressão sozinha é um comando válido, porém sem efeito. O script:

    17
    3.2
    "Alô, Mundo!"
    1 + 1
    não produz qualquer saída. Como você mudaria o “script” para exibir os valores destas quatro expressões?


    Mais informações »

    quinta-feira, 21 de maio de 2015

    Falando sobre Python- Parte 6 - Valores , tipos e variáveis




    Ola  amigos inciantes e Pythonista  seguindo falando sobre Python daremos continuidade,
    hoje sera abordado valores ,tipos e variáveis .
    Bons estudos!


    Valores e tipos
    O valor (por exemplo, letras e números) é uma das coisas fundamentais que um programa manipula. Os valores que já vimos até agora foram o 2 (como resultado, quando adicionamos 1 + 1) e "Alô, Mundo!".

    Esses valores pertencem a tipos diferentes: 2 é um inteiro, e "Alô, Mundo!" é uma string, assim chamada porque “string”, em inglês, quer dizer sequência, série, cadeia (de caracteres), ou neste caso, “série de letras”. Você (e o interpretador) consegue identificar strings porque elas aparecem entre aspas.

    O comando print também funciona com inteiros:

    >>> print 4
    4
    Se você estiver em dúvida sobre qual é o tipo de um determinado valor, o interpretador pode revelar:

    >>> type("Alô, Mundo!")
    <type 'string'>
    >>> type(17)
    <type 'int'>
    Nenhuma surpresa: strings pertencem ao tipo string e inteiros pertencem ao tipo int. Menos obviamente, números com um ponto decimal pertencem a um tipo chamado float, porque estes números são representados em um formato chamado ponto flutuante [1]:

    >>> type(3.2)
    <type 'float'>
    [1] N.T.: Observe o uso de ponto no lugar da vírgula para separar a parte inteira da parte fracionária.
    O que dizer de valores como "17" e "3.2"? Eles parecem números, mas estão entre aspas, como strings:

    >>> type("17")
    <type 'string'>
    >>> type("3.2")
    <type 'string'>
    Eles são strings.

    Ao digitar um número grande, é tentador usar pontos entre grupos de três dígitos, assim: 1.000.000. Isso não funciona por que Python usa o ponto como separador decimal. Usar a vírgula, como se faz em inglês, resulta numa expressão válida, mas não no número que queríamos representar:

    >>> print 1,000,000
    1 0 0
    Não é nada do que se esperava! Python interpreta 1,000,000 como uma tupla, algo que veremos no Capítulo 9. Por hora, lembre-se apenas de não colocar vírgulas nos números.

     Variáveis
    Uma das características mais poderosas de uma linguagem de programação é a habilidade de manipular variáveis. Uma variável é um nome que se refere a um valor.

    O comando de atribuição cria novas variáveis e dá a elas valores:

    >>> mensagem = "E aí, Doutor?"
    >>> n = 17
    >>> pi = 3.14159
    Este exemplo faz três atribuições. A primeira atribui a string "E aí, Doutor?" a uma nova variável chamada mensagem. A segunda dá o valor inteiro 17 a n, e a terceira atribui o número de ponto flutuante 3.14159 à variável chamada pi.

    Uma maneira comum de representar variáveis no papel é escrever o nome delas com uma seta apontando para o valor da variável. Esse tipo de figura é chamado de diagrama de estado porque mostra em que estado cada variável está (pense nisso como o estado de espírito da variável). O diagrama a seguir mostra o resultado das instruções de atribuição:


    O comando print também funciona com variáveis:

    >>> print mensagem
    E aí, Doutor?
    >>> print n
    17
    >>> print pi
    3.14159
    Em cada um dos casos, o resultado é o valor da variável. Variáveis também têm tipo. Novamente, podemos perguntar ao interpretador quais são eles:

    >>> type(mensagem)
    <type 'string'>
    >>> type(n)
    <type 'int'>
    >>> type(pi)
    <type 'float'>
    O tipo de uma variável é o tipo do valor ao qual ela se refere.

    Continua ....
    Mais informações »

    quarta-feira, 13 de maio de 2015

    Falando de Python parte 5 - Debugging







    O que é depuração (debugging)?
    Programar é um processo complicado e, como é feito por seres humanos, frequentemente conduz a erros. Por mero capricho, erros em programas são chamados de bugs e o processo de encontrá-los e corrigi-los é chamado de depuração (debugging).

    Três tipos de erro podem acontecer em um programa: erros de sintaxe, erros em tempo de execução (runtime errors) e erros de semântica (também chamados de erros de lógica). Distinguir os três tipos ajuda a localizá-los mais rápido:

     Erros de sintaxe
    O interpretador do Python só executa um programa se ele estiver sintaticamente correto; caso contrário, o processo falha e retorna uma mensagem de erro. Sintaxe se refere à estrutura de um programa e às regras sobre esta estrutura. Por exemplo, em português, uma frase deve começar com uma letra maiúscula e terminar com um ponto.

    esta frase contém um erro de sintaxe. Assim como esta

    Para a maioria dos leitores, uns errinhos de sintaxe não chegam a ser um problema significativo e é por isso que conseguimos ler a poesia moderna de e. e. cummings sem cuspir mensagens de erro. Python não é tão indulgente. Se o seu programa tiver um único erro de sintaxe em algum lugar, o interpretador Python vai exibir uma mensagem de erro e vai terminar - e o programa não vai rodar. Durante as primeiras semanas da sua carreira como programador, você provavelmente perderá um bocado de tempo procurando erros de sintaxe. Conforme for ganhando experiência, entretanto, cometerá menos erros e os localizará mais rápido.

    Erros em tempo de execução (runtime errors)
    O segundo tipo de erro é o erro de runtime, ou erro em tempo de execução, assim chamado porque só aparece quando você roda o programa. Esses erros são também conhecidos como exceções, porque normalmente indicam que alguma coisa excepcional (e ruim) aconteceu.

    Erros de runtime são raros nos programas simples que você vai ver nos primeiros capítulos - então, vai demorar um pouco até você se deparar com um erro desse tipo.

     Erros de semântica (ou de lógica)
    O terceiro tipo de erro é o erro de semântica (mais comumente chamado erro de lógica). Mesmo que o seu programa tenha um erro de semântica, ele vai rodar com sucesso, no sentido de que o computador não vai gerar nenhuma mensagem de erro. Só que o programa não vai fazer a coisa certa, vai fazer alguma outra coisa. Especificamente, aquilo que você tiver dito para ele fazer (o computador trabalha assim: seguindo ordens).

    O problema é que o programa que você escreveu não é aquele que você queria escrever. O significado do programa (sua semântica ou lógica) está errado. Identificar erros semânticos pode ser complicado, porque requer que você trabalhe de trás para frente, olhando a saída do programa e tentando imaginar o que ele está fazendo.





    Depuração experimental (debugging)
    Uma das habilidades mais importantes que você vai adquirir é a de depurar. Embora possa ser frustrante, depurar é uma das partes intelectualmente mais ricas, desafiadoras e interessantes da programação.

    De certa maneira, a depuração é como um trabalho de detetive. Você se depara com pistas, e tem que deduzir os processos e eventos que levaram aos resultados que aparecem.

    Depurar também é como uma ciência experimental. Uma vez que você tem uma ideia do que está errado, você modifica o seu programa e tenta de novo. Se a sua hipótese estava correta, então você consegue prever o resultado da modificação e fica um passo mais perto de um programa que funciona. Se a sua hipótese estava errada, você tem que tentar uma nova. Como Sherlock Holmes mostrou: “Quando você tiver eliminado o impossível, aquilo que restou, ainda que improvável, deve ser a verdade.” (Arthur Conan Doyle, O signo dos quatro).

    Para algumas pessoas, programação e depuração são a mesma coisa. Ou seja, programar é o processo de gradualmente depurar um programa, até que ele faça o que você quer. A ideia é começar com um programa que faça alguma coisa e ir fazendo pequenas modificações, depurando-as conforme avança, de modo que você tenha sempre um programa que funciona.

    Por exemplo, o Linux é um sistema operacional que contém milhares de linhas de código, mas começou como um programa simples, que Linus Torvalds usou para explorar o chip Intel 80386. De acordo com Larry Greenfield, “Um dos primeiros projetos de Linus Torvalds foi um programa que deveria alternar entre imprimir AAAA e BBBB. Isso depois evoluiu até o Linux”. (The Linux User’s Guide Versão Beta 1)

    Capítulos posteriores farão mais sugestões sobre depuração e outras práticas de programação.
    Mais informações »

    terça-feira, 5 de maio de 2015

    Falando de Python Parte 4 - Dicionários na sequência de criação



    Os dicionários em Python são estruturas muito poderosas e rápidas. Mas uma característica ruim deles é que a ordem das chaves não é garantida. Isso significa que ao criar um dicionário você pode ver algo assim:
    >>> d = {'ac': 'Acre', 'ce': 'Ceará', 'pi': 'Piauí'}
    >>> print(d)
    {'ac': 'Acre', 'pi': 'Piauí', 'ce': 'Ceará'}
    >>> 
    Viu? Fora de ordem.

    Isso atrapalha quando queremos manter a ordem dos itens, como, por exemplo, ao alimentar um HTML SELECT a partir de um dicionário. Se você usa Django, provavelmente já precisou fazer isso em um choices. Nesse caso, o normal é criarmos uma lista de tuplas e iterar nos itens, o que não é lá muito intuitivo.

    Era. A partir do Python 2.7, você pode usar um OrderedDict (que está no módulo collections) e resolver este problema:
    >>> from collections import OrderedDict
    >>> d = OrderedDict([('ac', 'Acre'), ('ce', 'Ceará'),  
    ('pi', 'Piauí')])
    >>> print(d)
    OrderedDict([('ac', 'Acre'), ('ce', 'Ceará'), ('pi', 'Piauí')])
    >>> 

    Agora sim, com a ordem mantida.

    Se você observar direitinho, informamos uma lista de tuplas, como eu disse que seria uma alternativa de solução. Então, qual a vantagem do OrderedDict?

    Algumas facilidades:
    >>> d['ac'] = 'Novo Acre'
    >>> print(d)
    OrderedDict([('ac', 'Novo Acre'), ('ce', 'Ceará'), ('pi', 'Piauí')])
    >>>
    >>> d['go'] = 'Goiás'
    >>> print(d)
    OrderedDict([('ac', 'Novo Acre'), ('ce', 'Ceará'), ('pi', 'Piauí'),  
    ('go', 'Goiás')])
    >>>
    >>> del d['ce']
    >>> print(d)
    OrderedDict([('ac', 'Novo Acre'), ('pi', 'Piauí'), ('go', 'Goiás')])
    >>> 


    No exemplo acima, foi possível indexarmos pela chave e modificar o conteúdo sem mudar a ordem das chaves. Também incluímos um item ao final do dicionário com facilidade, apenas com uma atribuição normal de dicionário. Outra coisa simples de fazer é excluir um item, bastando indexarmos pela chave do dicionário. Ou seja, é um dicionário.

    Assim, o uso dos OrderedDict deixa o código mais intuitivo, já que a sintaxe de dicionários, e com a garantia de manter a sequência das chaves.
    Mais informações »

    sábado, 2 de maio de 2015

    Falando de Python - Parte 3 - Porque Python?



    Porquê Python Nossa meta não é mostrar como se programa em uma linguagem específica, mas sim como se programa de uma forma geral. Ou seja, a linguagem para nós será um veículo, e não o destino. Mesmo assim, pensamos bastante antes de escolher a linguagem Python para os exemplos desse tutorial. Centenas de linguagens já foram criadas desde que o computador eletrônico foi inventado nos anos 40.

     Algumas já são línguas mortas. Outras, como C++ e Java, são peças fundamentais no desenvolvimento da economia digital. No entanto, a complexidade dessas duas linguagens nos motivou a descartá-las, e focalizar o universo das chamadas linguagens de "scripting", que são mais simples e se prestam a um estilo de programação informal, mais sintonizado com um tutorial como esse. As três linguagens de scripting mais populares atualmente são JavaScript, VBScript e Perl. Todas são utilizadas na construção de web-sites dinâmicos. As duas primeiras praticamente não têm aplicação fora desse domínio, e por isso foram descartadas.

     É que, embora seja nosso objetivo abordar também esse tópico, achamos que é complexo demais para começar, especialmente devido à dificuldade de se diagnosticar erros de programação em páginas dinâmicas. E Perl é uma linguagem esquisita demais, criada para agradar programadores tarimbados e hackers, segundo seu próprio criador. Felizmente, bem perto de Perl no mapa das linguagens modernas existe uma outra, não tão conhecida, mas igualmente poderosa. Seu nome é uma homenagem ao grupo humorístico inglês Monty Python, adorado por geeks de todo o mundo. Apesar da associação cômica, Python vem sendo usada em projetos sérios por entidades como Yahoo, NASA, InfoSeek, MCI Worldcom, IBM e Hiway, a maior empresa de hospedagem de web-sites do mundo. É tambem a base do Zope, a mais sofisticada plataforma para construção de web-applications disponível hoje como open-source. 


    Apesar de sua sintaxe simples e clara, Python oferece os seguintes recursos disponíveis também em linguagens mais complicadas como Java e C++: • programação orientada a objetos (incluindo herança múltipla, conceito apenas parcialmente presente em Java) • exceções, um moderno mecanismo para o tratamento de erros • módulos, uma forma inteligente de acessar e organizar código a ser reutilizado • coleta de lixo automática, sistema que elimina os erros causados pelo acúmulo de dados inúteis na memória do computador (característica presente também em Java, mas não em C++) • recursos avançados de manipulação de textos, listas e outras estruturas de dados • possibilidade de executar o mesmo programa sem modificações em várias plataformas de hardware e sistemas operacionais (uma virtude de Java, mas difícil de se conseguir em C++) Em resumo, Python nos oferece uma sintaxe simples mas ao mesmo tempo suporta a maior parte das características importantes de linguagens modernas e amplamente utilizadas como Java, C++, Perl e VBScript. Por esse motivos acreditamos que seja a melhor escolha para quem quer começar a programar hoje.

    Texto aprendendo Python por Luciano Ramalho!
    Mais informações »

    sexta-feira, 1 de maio de 2015

    Curso básico completo de Python





    Bem vamos la devido a muitos pedidos e como meu tutorial de iniciação ao Python ainda não esta pronto venho indicar todos os amigos Curso básico completo Python para Zumbis do Excelente Professor Masnori com vídeo aulas e exercícios espero que todos aproveitem e começa ja de forma divertida e envolvente a usar Python .






    Mais informações »

    Colabore!

    Certificações

    certificación Ubuntu

    Parceiros