O Programa "Olá, mundo!"

Avatar do usuário
bernardino
Site Admin
Mensagens: 712
Registrado em: 28 Ago 2020, 15:11

O Programa "Olá, mundo!"

Mensagem por bernardino »

Bem-vindo ao módulo dois! Na primeira seção, vamos aprender sobre os elementos mais essenciais de sintaxe e semântica da linguagem Python, e usá-los para criar seu primeiro programa Python - "Olá, mundo!".

2.1.1 Seu primeiro programa

É hora de começar a escrever algum código Python real e funcional. Vai ser muito simples por enquanto.

Como mostraremos alguns conceitos e termos fundamentais, esses trechos de código não serão tão sérios ou complexos.

Execute o código na janela do editor. Se tudo correr bem aqui, você verá a linha de texto na janela do console.

Como alternativa, inicie o IDLE, crie um novo arquivo de origem Python, preencha-o com este código, nomeie o arquivo e salve-o. Agora execute-o. Se tudo correr bem, você verá o texto entre aspas na janela do console IDLE. O código que você executou deve parecer familiar. Vocês viram algo muito semelhante quando orientamos vocês pela configuração do ambiente IDLE.
ola_mundo.png
ola_mundo.png (9.89 KiB) Exibido 66 vezes
Agora vamos passar algum tempo mostrando e explicando o que você realmente está vendo e por que isso se parece com isso.

Como você pode ver, este primeiro programa consiste nas seguintes partes:
  • a palavra print;
  • um parênteses de abertura;
  • aspas (")
  • uma linha de texto: Olá, Mundo!;
  • outra aspa;
  • outro parênteses.
Cada uma das opções acima desempenha um papel muito importante no código.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 712
Registrado em: 28 Ago 2020, 15:11

Re: O Programa "Olá, mundo!"

Mensagem por bernardino »

A função print()

Veja a linha de código abaixo:

Código: Selecionar todos

print("Olá, Mundo!")
A palavra print que você pode ver aqui é um nome de função. Isso não significa que, sempre que a palavra aparece, sempre há um nome de função. O significado da palavra vem do contexto em que a palavra foi usada.

Você provavelmente já encontrou o termo função muitas vezes, durante as aulas de matemática. Você provavelmente também pode listar vários nomes de funções matemáticas, como senoidal ou log.

As funções do Python, no entanto, são mais flexíveis e podem conter mais conteúdo do que seus irmãos matemáticos.

Uma função (nesse contexto) é uma parte separada do código do computador capaz de:
  • causar algum efeito (por exemplo, envie texto para o terminal, crie um arquivo, desenhe uma imagem, toque um som etc.); isso é algo totalmente inédito no mundo da matemática;
  • avaliar um valor (por exemplo, a raiz quadrada de um valor ou o comprimento de um determinado texto) e retorná-lo como resultado da função; é isso que torna as funções do Python parentes de conceitos matemáticos.
Além disso, muitas funções Python podem fazer as duas coisas acima juntas.

De onde vêm as funções?

Do próprio Python: Elas podem vir do próprio Python; a função print é desse tipo; essa função é um valor agregado recebido junto com o Python e seu ambiente (é integrado); você não precisa fazer nada de especial (por exemplo, pedir algo a alguém) se quiser fazer uso;

Dos módulos: Elas podem vir de um ou mais dos complementos do Python chamados módulos; alguns dos módulos vêm com Python, outros podem exigir instalação separada. Seja qual for o caso, todos precisam estar explicitamente conectados ao seu código (mostraremos como fazer isso em breve);

Do seu código: Você mesmo pode criá-las, colocando todas as funções que desejar e necessárias dentro do programa para torná-lo mais simples, claro e elegante.

O nome da função deve ser significativo (o nome da função de impressão é evidente).

Claro, se você vai usar qualquer função já existente, você não tem influência sobre seu nome, mas quando você começa a escrever suas próprias funções, você deve considerar cuidadosamente sua escolha de nomes.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 712
Registrado em: 28 Ago 2020, 15:11

Re: O Programa "Olá, mundo!"

Mensagem por bernardino »

Argumentos de função

Como dissemos antes, uma função pode ter:
  • um efeito;
  • um resultado.
Há também um terceiro componente de função muito importante ‒ o(s) argumento(s).

As funções matemáticas geralmente levam um argumento. Por exemplo, sin(x) leva um x, que é a medida de um ângulo.

As funções Python, por outro lado, são mais versáteis. Dependendo das necessidades individuais, eles podem aceitar qualquer número de argumentos ‒ quantos forem necessários para realizar suas tarefas. Nota: quando dizemos qualquer número, que inclui zero ‒ algumas funções do Python não necessitam de argumento.

Código: Selecionar todos

print("Olá Mundo!")
Apesar do número de argumentos necessários/fornecidos, as funções do Python exigem fortemente a presença de um par de parênteses ‒ abrindo e fechando, respectivamente.

Se você deseja entregar um ou mais argumentos para uma função, coloque-os dentro dos parênteses. Se você for usar uma função que não aceita nenhum argumento, ainda precisará dos parênteses.

Nota: para distinguir palavras comuns de nomes de funções, coloque um par de parênteses vazios após seus nomes, mesmo que a função correspondente precise de um ou mais argumentos. Essa é uma convenção padrão.

A função da qual estamos falando aqui é print().

A função print() em nosso exemplo tem algum argumento?

Claro que sim, mas o que são?

Cadeia de caracteres como o argumento da função print()

O único argumento entregue à função print() neste exemplo é uma string:

Código: Selecionar todos

print("Olá Mundo!")
Como você pode ver, a string é delimitada por aspas - na verdade, as aspas formam a string - elas cortam uma parte do código e atribuem um significado diferente a ele.

Você pode imaginar que as citações dizem algo como: o texto entre nós não é código. Não se destina a ser executado e você deve tomá-lo como está.

Quase tudo o que você coloca dentro das aspas será levado literalmente, não como código, mas como dados. Tente brincar com essa string específica - modifique-a, insira algum novo conteúdo, exclua parte do conteúdo existente.

Há mais de uma maneira de especificar uma string dentro do código do Python, mas por enquanto, porém, essa é suficiente.

Até agora, você aprendeu sobre duas partes importantes do código: a função e a string. Conversamos sobre eles em termos de sintaxe, mas agora é hora de discuti-los em termos de semântica.
hello_world.png
hello_world.png (104.41 KiB) Exibido 53 vezes
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 712
Registrado em: 28 Ago 2020, 15:11

Re: O Programa "Olá, mundo!"

Mensagem por bernardino »

Chamada de função

O nome da função (print neste caso), juntamente com os parênteses e os argumento(s), formam a invocação da função.

Código: Selecionar todos

print("Olá Mundo!")
Vamos discutir isso em mais detalhes em breve, mas vamos esclarecer isso agora.

O que acontece quando o Python encontra uma invocação como esta abaixo?

Código: Selecionar todos

function_name(argument)
Vamos ver:
  • Primeiro, o Python verifica se o nome especificado é legal (ele navega em seus dados internos para encontrar uma função atual do nome; se essa pesquisa falhar, o Python anula o código)
  • segundo, o Python verifica se os requisitos da função para o número de argumentos permitem que você chame a função dessa maneira (por exemplo, se uma função específica exigir exatamente dois argumentos, qualquer invocação que forneça apenas um argumento será considerada errônea e abortará os execução)
  • terceiro, o Python deixa seu código por um momento e salta para a função que você deseja chamar; é claro, ele também usa seus argumentos e os passa para a função;
  • quarto, a função executa seu código, causa o efeito desejado (se houver), avalia o (s) resultado (s) desejado (s) (se houver) e termina sua tarefa;
  • por fim, o Python retorna ao seu código (para o local imediatamente após a invocação) e retoma a execução.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 712
Registrado em: 28 Ago 2020, 15:11

Re: O Programa "Olá, mundo!"

Mensagem por bernardino »

LAB Trabalhando com a função print()

Cenário

O comando print(), que é uma das diretrizes mais fáceis em Python, simplesmente imprime uma linha na tela.

Em seu primeiro laboratório:
  • Use a função de print() para imprimir a linha Olá, Python! na tela. Use aspas duplas ao redor da string.
  • Depois de fazer isso, use a função print() novamente, mas desta vez imprima seu primeiro nome.
  • Remova as aspas duplas e execute o código. Assista à reação do Python. Que tipo de erro é gerado?
  • Em seguida, remova os parênteses, coloque aspas duplas e execute o código novamente. Que tipo de erro é gerado desta vez?
  • Experimente o máximo que puder. Altere aspas duplas para aspas simples, use várias funções print() na mesma linha e, em seguida, em linhas diferentes. Veja o que acontece.
    ola_redes_tec.png
    ola_redes_tec.png (20.83 KiB) Exibido 49 vezes
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 712
Registrado em: 28 Ago 2020, 15:11

Re: O Programa "Olá, mundo!"

Mensagem por bernardino »

A função print() e seus efeitos, argumentos e valores retornados

Três perguntas importantes devem ser respondidas o mais rápido possível:

1. Que efeito a função print() causa?

O efeito é muito útil e muito espetacular. A função:
  • aceita seus argumentos (pode aceitar mais de um argumento e também pode aceitar menos de um argumento)
  • Converte-os em forma legível pelo homem, se necessário (como você pode suspeitar, as strings não exigem essa ação, pois a string já é legível)
  • e envia os dados resultantes para o dispositivo de saída (geralmente o console); Em outras palavras, tudo o que você coloca na função print() aparecerá na tela.
Não é de admirar que, a partir de agora, você utilizará a print() muito intensamente para ver os resultados de suas operações e avaliações.

2. Quais argumentos o print() espera?

Qualquer. Mostraremos em breve que o print() é capaz de operar com praticamente todos os tipos de dados oferecidos pelo Python. Strings, números, caracteres, valores lógicos, objetos - qualquer um desses itens pode ser passado com sucesso para print().

3. Qual valor a função print() retorna?

Nenhum. Seu efeito é suficiente.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 712
Registrado em: 28 Ago 2020, 15:11

Re: O Programa "Olá, mundo!"

Mensagem por bernardino »

Instruções

Você já viu um programa de computador que contém uma chamada de função. Uma invocação de função é um dos muitos tipos possíveis de instrução Python.

Obviamente, qualquer programa complexo geralmente contém muito mais instruções do que uma. A questão é: como você acopla mais de uma instrução no código Python?

A sintaxe do Python é bastante específica nessa área. Ao contrário da maioria das linguagens de programação, o Python exige que não haja mais de uma instrução em uma linha.

Uma linha pode estar vazia (ou seja, pode não conter nenhuma instrução), mas não deve conter duas, três ou mais instruções. Isso é estritamente proibido.

Nota: Python faz uma exceção a esta regra ‒ permite que uma instrução se espalhe por mais de uma linha (o que pode ser útil quando seu código contém construções complexas).

Vamos expandir um pouco o código. Você pode vê-lo no editor abaixo. Execute-o e observe o que você vê no console.
aranha_chuva.png
aranha_chuva.png (15.98 KiB) Exibido 45 vezes
Seu console Python agora deve estar assim:

Código: Selecionar todos

A pequenina aranha escalou a tromba d'água.
Caiu a chuva e lavou a aranha.
Esta é uma boa oportunidade para fazer algumas observações:
  • o programa chama a função print() duas vezes, e você pode ver duas linhas separadas no console ‒ isso significa que print() começa sua saída a partir de uma nova linha cada vez que inicia sua execução; você pode mudar esse comportamento, mas também pode usá-lo a seu favor;
  • cada invocação print() contém uma string diferente, como seu argumento, e o conteúdo do console a reflete ‒ isso significa que as instruções no código são executadas na mesma ordem em que foram colocadas no arquivo fonte; nenhuma instrução subseqüente é executada até que a anterior seja concluída (existem algumas exceções a esta regra, mas você pode ignorá-las por enquanto.)

    Mudamos um pouco o exemplo - adicionamos uma Invocação de função vazia print(). Chamamos de vazio porque não entregamos nenhum argumento para a função.

    Você pode vê-lo na janela do editor. Execute o código.

    O que acontece?
    aranha_chuva2.png
    aranha_chuva2.png (17.49 KiB) Exibido 42 vezes
    Se tudo der certo, você deverá ver algo assim:

    Código: Selecionar todos

    A pequenina aranha escalou a tromba d'água.
     
    Caiu a chuva e lavou a aranha.
    
    Como você pode ver, a invocação de print() vazia não é tão vazia quanto você esperava – ela produz uma linha vazia ou (esta interpretação também está correta) gera uma nova linha.

    Esta não é a única maneira de produzir uma nova linha no console de saída. Agora vamos mostrar-lhe outra maneira.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 712
Registrado em: 28 Ago 2020, 15:11

Re: O Programa "Olá, mundo!"

Mensagem por bernardino »

Escape do Python e caracteres de novas linhas

Modificamos o código novamente. Olhe com atenção.

Há duas mudanças muito sutis – inserimos um estranho par de caracteres dentro da rima. Eles se parecem com isso: \n.
barra_ene.png
barra_ene.png (19.47 KiB) Exibido 41 vezes
Curiosamente, enquantovocê pode ver dois caracteres, o Python vê um.

A barra invertida (\) tem um significado muito especial quando usada dentro de strings – isso é chamado de caractere de escape.

A palavra escape deve ser entendida especificamente - significa que a série de caracteres na string escapa por um momento (um momento muito curto) para introduzir uma inclusão especial.

Em outras palavras, a barra invertida não significa nada em si, mas é apenas um tipo de anúncio de que o próximo caractere após a barra invertida também tem um significado diferente.

A letra n colocada após a barra invertida vem da palavra newline (nova linha).

Tanto a barra invertida quanto o n formam um símbolo especial chamado caractere de nova linha, que incita o console a iniciar uma nova linha de saída.

Execute o código. Seu console agora deve ficar assim:

Código: Selecionar todos

A aranha pequenininha
subiu a tromba d'água.
 
abaixo veio a chuva
e lavou a aranha.
Como você pode ver, duas novas linhas aparecem na rima do berçário, nos lugares onde foram usados os \n.

Esta convenção tem duas consequências importantes:

1. Se você quiser colocar apenas uma barra invertida dentro de uma string, não se esqueça de sua natureza de escape - você precisa dobrá-la. Por exemplo, uma invocação como esta causará um erro:

print("\")

enquanto este não vai:

print("\\")

2. Nem todos os pares de escape (a barra invertida juntamente com outro caractere) significam algo.

Experimente seu código no editor, execute-o e veja o que acontece.
aranha_chuva3.png
aranha_chuva3.png (18.69 KiB) Exibido 40 vezes
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 712
Registrado em: 28 Ago 2020, 15:11

Re: O Programa "Olá, mundo!"

Mensagem por bernardino »

Usando vários argumentos

Até agora, testamos o comportamento da função print() sem argumentos e com um argumento. Também vale a pena tentar alimentar a função print() com mais de um argumento.

Olhe para a janela do editor. Isso é o que vamos testar agora:
aranha_chuva4.png
aranha_chuva4.png (12.37 KiB) Exibido 39 vezes
Há uma chamada de função print(), mas ela contém três argumentos. Todos eles são cadeias de caracteres.

Os argumentos são separados por vírgulas. Nós os cercamos de espaços para torná-los mais visíveis, mas não é realmente necessário, e não faremos mais isso.

Nesse caso, as vírgulas que separam os argumentos desempenham uma função completamente diferente da vírgula dentro da sequência. O primeiro faz parte da sintaxe do Python, enquanto o último deve ser exibido no console.

Se você olhar novamente o código, verá que não há espaços dentro das cadeias.

Execute o código e veja o que acontece.

O console agora deve estar mostrando o seguinte texto:

Código: Selecionar todos

A pequenina aranha escalou a tromba d'água.
Os espaços, removidos das cadeias, apareceram novamente. Você pode explicar por quê?

Duas conclusões emergem desse exemplo:
  • uma função print() chamada com mais de um argumento gera todos eles em uma linha;
  • a função print() coloca um espaço entre os argumentos gerados por sua própria iniciativa.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 712
Registrado em: 28 Ago 2020, 15:11

Re: O Programa "Olá, mundo!"

Mensagem por bernardino »

Argumentos posicionais

Agora que você sabe um pouco sobre os costumes da função print(), vamos mostrar-lhe como alterá-los.

Você deve ser capaz de prever a saída sem executar o código no editor.
meu_nome_e_python.png
meu_nome_e_python.png (13.07 KiB) Exibido 37 vezes
A forma como estamos passando os argumentos para a função print() é a mais comum em Python e é chamada de forma posicional. Esse nome vem do fato de que o significado do argumento é determinado pela sua posição (por exemplo, o segundo argumento será gerado após o primeiro, e não o contrário).

Execute o código e verifique se a saída corresponde às suas previsões.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Responder