O Programa "Olá, mundo!"

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

Re: O Programa "Olá, mundo!"

Mensagem por bernardino »

Argumentos de palavra-chave

O Python oferece outro mecanismo para a transmissão de argumentos, que pode ser útil quando você quiser convencer a função print() a mudar um pouco o comportamento.

Não vamos explicar isso em detalhes agora. Planejamos fazer isso quando falarmos sobre funções. Por enquanto, queremos apenas mostrar como ele funciona. Fique à vontade para usá-lo em seus próprios programas.

O mecanismo é chamado de argumentos de palavra-chave. O nome decorre do fato de que o significado desses argumentos é obtido não de sua localização (posição), mas da palavra especial (palavra-chave) usada para identificá-los.

A função print() tem dois argumentos de palavra-chave que você pode usar para seus propósitos. O primeiro é chamado de end.

Na janela do editor, você pode ver um exemplo muito simples de como usar um argumento de palavra-chave.
meu_nome_e_python2.png
Para usá-lo, é necessário conhecer algumas regras:
  • um argumento de palavra-chave consiste em três elementos: uma palavra-chave que identifica o argumento (end aqui); um sinal de igual (=); e um valor atribuído a esse argumento;
  • qualquer argumento de palavra-chave deve ser colocado após o último argumento posicional (isso é muito importante)
Em nosso exemplo, utilizamos o argumento chave end e o definimos como uma sequência contendo um espaço.

Execute o código para ver como ele funciona.

O console agora deve estar mostrando o seguinte texto:

Código: Selecionar todos

Meu nome é Python. Monty Python.
Como você pode ver, o argumento de palavra-chave end determina os caracteres que a função print() envia para a saída, uma vez que ela atinge o fim de seus argumentos de posição.

O comportamento padrão reflete a situação em que o argumento de palavra-chave end é usado implicitamente da seguinte maneira: end="\n".

E agora é hora de tentar algo mais difícil.

Se você olhar com atenção, verá que usamos o argumento end, mas a string atribuída a ele está vazia (não contém nenhum caractere).

O que vai acontecer agora? Execute o programa no editor para descobrir.
meu_nome_e_python3.png
Como o argumento end foi definido como nada, a função print() também não gera nada, uma vez que seus argumentos posicionais se esgotam.

O console agora deve mostrar o seguinte texto:

Código: Selecionar todos

Meu nome é Monty Python.
Nota: nenhum caracter de nova linha foi enviado para a saída.

A string atribuída ao argumento da palavra-chave end pode ter qualquer comprimento. Experimente se quiser.

Dissemos anteriormente que a função print() separa seus argumentos em saída com espaços. Esse comportamento também pode ser alterado.

O argumento da palavra-chave que pode fazer isso é nomeado sep (como no separador).

Veja o código no editor e execute-o.
sep.png
O argumento sep fornece os seguintes resultados:

Código: Selecionar todos

Meu-nome-é-Monty-Python.
A função print() agora usa um traço, em vez de um espaço, para separar os argumentos de saída.

Nota: o valor do argumento sep também pode ser uma string vazia. Experimente.

Ambos os argumentos de palavra-chave podem ser misturados em uma chamada, como aqui na janela do editor.
sep_end.png
O exemplo não faz muito sentido, mas apresenta visivelmente as interações entre end e sep.

Você consegue prever a saída?

Execute o código e veja se ele corresponde às suas previsões.

Agora que você entende a função print(), está pronto para pensar em como armazenar e processar dados em Python.

Sem a print(), você não seria capaz de ver nenhum resultado.
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: 682
Registrado em: 28 Ago 2020, 15:11

Re: O Programa "Olá, mundo!"

Mensagem por bernardino »

LAB A função print() e seus argumentos

Cenário

Modifique a primeira linha de código no editor, usando as palavras-chave sep e end, para corresponder à saída esperada. Use as duas funções print() no editor.

Não altere nada na segunda invocação de print().

Saída esperada

Código: Selecionar todos

Programação***Essenciais***em...Python
programacao_essenciais.png
programacao_essenciais.png (13.22 KiB) Exibido 37 vezes
Solução
programacao_essenciais_solucao.png
programacao_essenciais_solucao.png (17.04 KiB) Exibido 37 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: 682
Registrado em: 28 Ago 2020, 15:11

Re: O Programa "Olá, mundo!"

Mensagem por bernardino »

LAB Formatação de saída

Cenário

Recomendamos que você brinque com o código que escrevemos para você e faça algumas alterações (talvez até destrutivas). Sinta-se livre para modificar qualquer parte do código, mas há uma condição: aprender com seus erros e tirar suas próprias conclusões.

Tente:
  • minimizar o número de invocações de função print() inserindo a sequência \n nas strings;
  • aumentar a flecha duas vezes (mas manter as proporções)
  • duplique a seta, colocando as duas setas lado a lado; observação: uma string pode ser multiplicada usando o seguinte truque: "string" * 2 produzirá "stringstring" (falaremos sobre isso em breve)
  • remova qualquer uma das aspas e analise com cuidado a resposta do Python; preste atenção onde Python vê um erro - este é o lugar onde o erro realmente existe?
  • faça o mesmo com alguns parênteses;
  • altere qualquer uma das palavras Print em algo diferente, diferindo apenas no caso (por exemplo, Print) - o que acontece agora?
  • substitua algumas aspas por apóstrofos; veja o que acontece com cuidado.

Código: Selecionar todos

# Solução de amostra

###################
print("versão original:")
###################
print("    *")
print("   * *")
print("  *   *")
print(" *     *")
print("***   ***")
print("  *   *")
print("  *   *")
print("  *****")
###################
print("com menos 'print()' invocações:")
###################
print("    *\n   * *\n  *   *\n *     *\n***   ***")
print("  *   *\n  *   *\n  *****")
###################
print("mais alto:")
###################
print("        *")
print("       * *")
print("      *   *")
print("     *     *")
print("    *       *")
print("   *         *")
print("  *           *")
print(" *             *")
print("******     ******")
print("     *     *")
print("     *     *")
print("     *     *")
print("     *     *")
print("     *     *")
print("     *     *")
print("     *******")
###################
print("dobrou:")
###################
print("        *        "*2)
print("       * *       "*2)
print("      *   *      "*2)
print("     *     *     "*2)
print("    *       *    "*2)
print("   *         *   "*2)
print("  *           *  "*2)
print(" *             * "*2)
print("******     ******"*2)
print("     *     *     "*2)
print("     *     *     "*2)
print("     *     *     "*2)
print("     *     *     "*2)
print("     *     *     "*2)
print("     *     *     "*2)
print("     *******     "*2)
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: 682
Registrado em: 28 Ago 2020, 15:11

Re: O Programa "Olá, mundo!"

Mensagem por bernardino »

RESUMO DA SEÇÃO

1. A função print() é uma função interna. Ele imprime/envia uma mensagem especificada para a tela/janela do console.

2. As funções incorporadas, ao contrário das funções definidas pelo usuário, estão sempre disponíveis e não precisam ser importadas. O Python 3.8 vem com 69 funções integradas. Você pode encontrar a lista completa fornecida em ordem alfabética na Python Standard Library.

3. Para chamar uma função (este processo é conhecido como chamada de função ou invocação de função), você precisa usar o nome da função seguido de parênteses. Você pode passar argumentos para uma função colocando-os dentro dos parênteses. Você deve separar os argumentos com uma vírgula, por exemplo, print("Olá,", "world!"). Um print() vazio imprime uma linha vazia na tela.

4. Strings no Python são delimitadas por aspas, por exemplo, "eu sou um barbante" (aspas duplas), ou 'eu sou um barbante, demasiado' (aspas simples).

5. Programas de computador são uma coleção de instruções. Uma instrução é um comando para executar uma tarefa específica quando executado, por exemplo, para imprimir uma determinada mensagem na tela.
vamos_ver.png
vamos_ver.png (42.52 KiB) Exibido 28 vezes
6. Em Strings do Python a barra invertida (\) é um caracter especial que anuncia que o próximo caracter terá um significado diferente, por exemplo, \n (o caracter de nova linha) inicia uma nova linha de saída.

7. Argumentos posicionais são aqueles cujo significado é ditado por sua posição, por exemplo, o segundo argumento é gerado após o primeiro, o terceiro é gerado após o segundo, etc.

8. Argumentos de palavras-chave são aqueles cujo significado não é ditado por sua localização, mas por uma palavra especial (palavra-chave) usada para identificá-los.

9. Os parâmetros end e sep podem ser utilizadas para formatar a saída do print(). O parâmetro sep especifica o separador entre os argumentos de saída, por exemplo, print("H", "E", "L", "L", "O", sep="-"), enquanto o parâmetro end especifica o que imprimir no final da impressã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: 682
Registrado em: 28 Ago 2020, 15:11

Re: O Programa "Olá, mundo!"

Mensagem por bernardino »

2.1.15 TESTE DA SEÇÃO

Pergunta 1: Qual é o resultado do programa a seguir?

Código: Selecionar todos

print("Meu\nnome\né\nBond.", end=" ")
print("James Bond.")
output

Código: Selecionar todos

Meu
nome
é
Bond. James Bond.
Pergunta 2: Qual é a saída do seguinte programa?

Código: Selecionar todos

print(sep="&", "peixe", "salgadinhos")
output

Código: Selecionar todos

  File "main.py", line 1
    print(sep="&", "peixe", "salgadinhos")
                  ^
SyntaxError: positional argument follows keyword argument
Lembre-se: Os argumentos de palavras-chave devem ser passados após quaisquer argumentos posicionais obrigatórios.

Pergunta 3: Qual das seguintes invocações da função print() causará um SyntaxError?

Código: Selecionar todos

print('Greg\'s book.')
print("'Greg's book.'")
print('"Greg\'s book."')
print("Greg\'s book.")
print('"Greg's book."')
A linha 5 gerará SyntaxError, porque o símbolo ' no Greg's book. string requer um caractere de escape.

Continuar a leitura: 2.2 Seção 2 - Literais Python
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