{ "metadata": { "name": "Capitulo2_Sintaxe" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "[Python para Desenvolvedores](http://ricardoduarte.github.io/python-para-desenvolvedores/#conteudo)\n", "=============================\n", "2ª edi\u00e7\u00e3o, revisada e ampliada\n", "-----------------------------------\n", "\n", "Cap\u00edtulo 2: Sintaxe\n", "===================\n", "___________________\n", "Um programa feito em Python \u00e9 constitu\u00eddo de linhas, que podem continuar nas linhas seguintes, pelo uso do caractere de barra invertida (`\\`) ao final da linha ou par\u00eanteses, colchetes ou chaves, em express\u00f5es que utilizam tais caracteres.\n", "\n", "O caractere `#` marca o inicio de coment\u00e1rio. Qualquer texto depois do `#` ser\u00e1 ignorado at\u00e9 o fim da linha , com exce\u00e7\u00e3o dos coment\u00e1rios funcionais.\n", "\n", "Coment\u00e1rios funcionais s\u00e3o usados para:\n", "\n", "+ alterar a codifica\u00e7\u00e3o do arquivo fonte do programa acrescentando um coment\u00e1rio com o texto `#-*- coding: -*#-` no inicio do arquivo, no qual `` \u00e9 a codifica\u00e7\u00e3o do arquivo (geralmente latin1 ou utf-8). Alterar a codifica\u00e7\u00e3o \u00e9 necess\u00e1rio para suportar caracteres que n\u00e3o fazem parte da linguagem inglesa, no c\u00f3digo fonte do programa.\n", "+ definir o interpretador que ser\u00e1 utilizado para rodar o programa em sistemas UNIX, atrav\u00e9s de um coment\u00e1rio come\u00e7ando com `#!` no inicio do arquivo, que indica o caminho para o interpretador (geralmente a linha de coment\u00e1rio ser\u00e1 algo como `#!/usr/bin/env python`).\n", "\n", "Exemplo de coment\u00e1rios funcionais:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#!/usr/bin/env python\n", "\n", "# Uma linha de c\u00f3digo que mostra o resultado de 7 vezes 3\n", "print 7 * 3" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "21\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Exemplos de linhas quebradas:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Uma linha quebrada por contra-barra\n", "a = 7 * 3 + \\\n", "5 / 2\n", "\n", "# Uma lista (quebrada por v\u00edrgula)\n", "b = ['a', 'b', 'c', \n", "'d', 'e']\n", "\n", "# Uma chamada de fun\u00e7\u00e3o (quebrada por v\u00edrgula)\n", "c = range(1,\n", "11)\n", "\n", "# imprime todos na tela\n", "print a, b, c" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "23 ['a', 'b', 'c', 'd', 'e'] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "O comando `print` insere espa\u00e7os entre as express\u00f5es que forem recebidas como par\u00e2metro e um caractere de nova linha no final, a n\u00e3o ser que ele receba uma v\u00edrgula no fim da lista par\u00e2metros.\n", "\n", "Blocos\n", "------\n", "Em Python, os blocos de c\u00f3digo s\u00e3o delimitados pelo uso de endenta\u00e7\u00e3o, que deve ser constante no bloco de c\u00f3digo, por\u00e9m \u00e9 considerada uma boa pr\u00e1tica manter a consist\u00eancia no projeto todo e evitar a mistura de tabula\u00e7\u00f5es e espa\u00e7os.\n", "\n", "A linha anterior ao bloco sempre termina com dois pontos (:) e representa uma estrutura de controle da linguagem ou uma declara\u00e7\u00e3o de uma nova estrutura (uma fun\u00e7\u00e3o, por exemplo).\n", "\n", "![Estrutura de um programa](files/bpypd_diags2.png)\n", "\n", "Exemplo:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Para i na lista 234, 654, 378, 798:\n", "for i in [234, 654, 378, 798]:\n", " # Se o resto dividindo por 3 for igual a zero:\n", " if i % 3 == 0:\n", " # Imprime...\n", " print i, '/ 3 =', i / 3" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "234 / 3 = 78\n", "654 / 3 = 218\n", "378 / 3 = 126\n", "798 / 3 = 266\n" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "O operador `%` calcula o m\u00f3dulo (resto da divis\u00e3o)." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "" ], "output_type": "pyout", "prompt_number": 1, "text": [ "" ] } ], "prompt_number": 1 } ], "metadata": {} } ] }