Saída e entrada
Duas ferramentas que você usará desde a primeira linha que escrever: print() mostra valores no terminal, input() obtém texto do usuário. São simples, mas conhecer seu comportamento evita algumas surpresas no início.
Como o Python executa seu código
O Python executa seu código de cima para baixo, uma linha por vez, exatamente na ordem em que você escreveu. Sem pular. A ordem em que você escreve as coisas é a ordem em que elas rodam. Sempre.
cidade = "Brasília"
print(cidade)
print("População: 14 milhões")cidade é atribuída primeiro. O primeiro print é executado. O segundo print é executado. Sempre nessa ordem.
Isso importa porque você não pode usar uma variável antes de atribuí-la. O Python ainda não a viu e levantará um erro:
print(pais) # NameError: pais ainda não está definido
pais = "Brasil"Tenha isso em mente conforme seus programas crescem: qualquer coisa que você usar precisa ser definida antes de ser usada.
Imprimindo saída
print() é como o Python responde para você. Passe qualquer valor e ele exibirá esse valor. Ele converte automaticamente o que você passar para texto.
print("Olá") # Olá
print(42) # 42
print(3.14) # 3.14
print(True) # TrueVários valores
Você pode imprimir vários valores ao mesmo tempo separando-os por vírgulas. O Python coloca um espaço entre eles por padrão. Mude o separador com sep:
nome = "Ana"
idade = 28
print(nome, idade) # Ana 28
print("Nome:", nome) # Nome: Ana
print("2024", "01", "15", sep="-") # 2024-01-15
print("a", "b", "c", sep=", ") # a, b, cControlando o fim da linha
Cada chamada print() termina com uma nova linha por padrão, então a próxima saída começa em uma linha nova. Mude isso com end. Definir end="" faz o próximo print continuar na mesma linha:
print("Carregando", end="")
print("...")
# Carregando...
print("um", end=" | ")
print("dois", end=" | ")
print("três")
# um | dois | trêsFormatando saída com f-strings
A forma mais limpa de construir mensagens é com f-strings. Coloque f antes da aspa de abertura, depois envolva qualquer variável ou expressão em chaves. O Python preenche em tempo de execução. Você pode colocar qualquer valor, cálculo ou chamada de método dentro das {}.
nome = "Ana"
pontos = 980
# concatenação: desajeitada, exige str() para números
print("Jogador: " + nome + ", Pontos: " + str(pontos))
# f-string: legível, sem conversão manual
print(f"Jogador: {nome}, Pontos: {pontos}")Você pode colocar qualquer expressão dentro de {}: aritmética, chamadas de método, specs de formato:
preco = 49.99
imposto = 0.2
total = preco * (1 + imposto)
print(f"Total: {total:.2f}") # Total: 59.99
print(f"Nome: {nome.upper()}") # Nome: ANA
print(f"2 + 2 = {2 + 2}") # 2 + 2 = 4A spec de formato após : controla como o valor é exibido:
proporcao = 0.8765
contagem = 1234567
rotulo = "receita"
print(f"{proporcao:.1%}") # 87.7%
print(f"{contagem:,}") # 1,234,567
print(f"{rotulo:>12}") # " receita":.2f significa "duas casas decimais". Você o usará constantemente para preços e medidas. O resto está aí quando você precisar. O importante: qualquer coisa pode ir dentro de {}, não só nomes de variáveis.
Obtendo entrada do usuário
input() pausa seu programa e espera o usuário digitar algo. O que ele digitar (e pressionar Enter) volta como valor de retorno. A string entre parênteses é o prompt que o usuário vê.
nome = input("Qual é o seu nome? ")
print(f"Olá, {nome}!")input() sempre retorna uma string, não importa o que o usuário digite. Digite 42 e você recebe de volta "42", não o número 42. Para fazer aritmética com isso, converta explicitamente:
idade = int(input("Quantos anos você tem? "))
print(f"Em dez anos você terá {idade + 10}.")E se o usuário digitar algo que não pode ser convertido? O Python levanta um ValueError. Tratar isso adequadamente é abordado no capítulo Arquivos e exceções.
Na prática
Um quiz que se personaliza a partir da entrada do usuário:
nome = input("Qual é o seu nome? ")
materia = input("Qual matéria? ")
print(f"Beleza, {nome}. Começando seu quiz de {materia}.")
print("Boa sorte!")Ambas as entradas voltam como strings e entram diretamente nas f-strings. Sem conversão necessária, porque você está usando-as como texto, não como números.

