Você está na página 1de 4

R Anterior Unidade 4 de 7 S Avançar T

" 100 XP

Coletar entrada
2 minutos

Até agora, você aprendeu vários constructos da linguagem de programação Python. Você
também criou alguns programas. No entanto, os programas operam com base em dados e
esses dados vêm de algum lugar. Nesta unidade, você analisará mais detalhes de como é
possível coletar entradas tanto da linha de comando quanto da entrada de usuário.

Entrada de linha de comando


Ao iniciar um programa usando o python3 , você atribui a ele o nome do arquivo a ser iniciado.
Você também pode atribuir a ele um conjunto de argumentos: dados aos quais o programa
terá acesso durante a execução. Veja como ele poderá ser:

Bash

python3 backup.py 2023-01-01

No código anterior, a cadeia de caracteres "2023-01-01" pode ser usada como uma instrução
para o programa backup.py iniciar um backup a partir dessa data. Com os argumentos de linha
de comando, você ganhará flexibilidade. O programa poderá se comportar de maneira
diferente, dependendo da entrada externa dele.

Argumentos de linha de comando


Como esses comandos são capturados do ponto de vista da codificação? Usando o módulo
sys , você pode recuperar os argumentos de linha de comando e usá-los no programa.

Examine o código a seguir:

Python

import sys

print(sys.argv)
print(sys.argv[0]) # program name
print(sys.argv[1]) # first arg
sys.argv é uma matriz, ou seja, uma estrutura de dados que contém vários itens. A primeira

posição, indicada como 0 na matriz, contém o nome do programa. A segunda posição, 1 ,


contém seu primeiro argumento. Suponha que o programa backup.py contenha o código de
exemplo e você o execute da seguinte maneira:

Console

python3 backup.py 2023-01-01

O programa produzirá então o seguinte resultado:

Saída

['backup.py', '2023-01-01']
backup.py
2023-01-01

Entrada do usuário
Outra maneira de transmitir os dados para o programa é fazer com que o usuário insira os
dados. É possível usar a codificação para que o programa instrua o usuário a inserir as
informações. Salve os dados inseridos no programa e realize ações com base neles.

Use a função input() para capturar informações do usuário. Veja um exemplo:

Python

print("Welcome to the greeter program")


name = input("Enter your name: ")
print("Greetings " + name)

Suponha que o programa input.py contenha o código de exemplo e você o execute da


seguinte maneira:

Console

python3 input.py

A execução do programa convida você a inserir seu nome, por exemplo:

Saída
Welcome to the greeter program
Enter your name:

Depois que você inserir um valor e pressionar ENTER, a saudação será retornada:

Saída

Welcome to the greeter program


Enter your name: Picard
Greetings Picard

Trabalhando com números


A função input() armazena um resultado como uma cadeia de caracteres, portanto, o
seguinte código pode não fazer o que você deseja:

Python

print("calculator program")
first_number = input("first number: ")
second_number = input("second number: ")
print(first_number + second_number)

A execução desse programa convida você a inserir o primeiro número, digamos 3 :

Saída

calculator program
first number: 3

Depois de pressionar ENTER, você poderá inserir o segundo número, digamos 4 :

Saída

calculator program
first number: 3
second number: 4

Se você pressionar ENTER, obterá o seguinte resultado:

Saída

calculator program
first number: 3
second number: 4
34

Você provavelmente pretendia que esse programa respondesse a você com 7 em vez de 34 .
O que deu errado?

A explicação é que first_number e second_number são cadeias de caracteres. Para que o


cálculo funcione corretamente, é preciso transformar essas cadeias de caracteres em números
usando a função int() . Modificando a última linha do programa a usar int() , é possível
resolver o problema:

Python

print(int(first_number) + int(second_number))

A nova execução do programa com os mesmos valores agora retorna 7 como a resposta:

Saída

calculator program
first number: 3
second number: 4
7

Unidade seguinte: Exercício – Coletar entrada

Continuar T

Você também pode gostar