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 saber como funcionam o salva de alguns problemas no início.
Como Python executa seu código
Python executa seu código de cima para baixo, uma linha por vez, exatamente na ordem em que você o escreveu. Sem pulos. A ordem em que você escreve as coisas é a ordem em que são executadas. Sempre.
cidade = "São Paulo"
print(cidade)
print("População: 12 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 atribuir um valor a ela. Python ainda não a viu e gerará um erro:
print(país) # NameError: país não foi definido ainda
país = "Brasil"Lembre-se disso conforme seus programas crescem: tudo que você usar deve ser definido antes de usá-lo.
NameError. Sem pulos, sem ler o arquivo todo primeiro. Imprimindo saída
print() é como Python fala de volta com você. Passe qualquer valor para ele e esse valor é exibido. Ele converte automaticamente o que você dá em texto.
print("Olá") # Olá
print(42) # 42
print(3.14) # 3.14
print(True) # TrueMúltiplos valores
Você pode imprimir múltiplos valores de uma vez separando-os com vírgulas. Python coloca um espaço entre eles por padrão. Mude o separador com sep:
nome = "Maria"
idade = 28
print(nome, idade) # Maria 28
print("Nome:", nome) # Nome: Maria
print("2024", "01", "15", sep="-") # 2024-01-15
print("a", "b", "c", sep=", ") # a, b, cControlando o final da linha
Cada chamada print() termina com uma quebra de linha por padrão, então a próxima saída começa em uma linha fresca. 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êsprint() transforma o que você dá em texto e mostra. Passe várias coisas separadas por vírgulas e você recebe um espaço entre elas, mude com sep. Cada print cai para uma nova linha no final; end="" mantém o próximo na mesma linha. Formatando saída com f-strings
A forma mais limpa de construir mensagens é f-strings. Coloque f antes da aspas de abertura, e depois envolva qualquer variável ou expressão em chaves. Python preenche em tempo de execução. Você pode colocar qualquer valor, cálculo ou chamada de método dentro de {}.
nome = "Maria"
pontuação = 980
# concatenação: desajeitada, exige str() para números
print("Jogador: " + nome + ", Pontuação: " + str(pontuação))
# f-string: legível, sem conversão manual
print(f"Jogador: {nome}, Pontuação: {pontuação}")Você pode colocar qualquer expressão dentro de {}: aritmética, chamadas de método (como .upper(), coberto completamente no capítulo Strings), especificações de formato:
preço = 49.99
imposto = 0.2
total = preço * (1 + imposto)
print(f"Total: {total:.2f}") # Total: 59.99
print(f"Nome: {nome.upper()}") # Nome: MARIA
print(f"2 + 2 = {2 + 2}") # 2 + 2 = 4A especificação de formato depois de : controla como o valor é exibido:
razão = 0.8765
contagem = 1234567
rótulo = "receita"
print(f"{razão:.1%}") # 87.6%
print(f"{contagem:,}") # 1.234.567
print(f"{rótulo:>12}") # " receita":.2f significa "duas casas decimais". Você usará isso constantemente para preços e medidas. Tudo mais está lá quando você precisar. A coisa principal: qualquer coisa pode ir dentro de {}, não apenas nomes de variáveis.
f antes da aspas de abertura e envolva qualquer coisa em {}: uma variável, uma soma, até mesmo uma chamada de método. Dois-pontos adicionam formatação, como :.2f para duas casas decimais. Muito mais limpo do que colar strings juntas com +. Obtendo entrada do usuário
input() pausa seu programa e espera o usuário digitar algo. Seja o que for que ele digitar (e pressionar Enter) volta como o valor de retorno. A string entre os 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 digitar. Digite 42 e você recebe "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? Python gera um ValueError. Lidar com isso apropriadamente é coberto no capítulo Files and exceptions.
input() mostra seu prompt, espera por uma linha, e sempre a devolve como uma string, mesmo se digitarem um número. Precisa de um número? Converta você mesmo com int() ou float() conforme chega, e continue com o tipo correto. Na prática
Um quiz que se personaliza a partir da entrada do usuário:
nome = input("Qual é o seu nome? ")
assunto = input("Qual assunto? ")
print(f"Tudo bem, {nome}. Começando seu quiz de {assunto}.")
print("Boa sorte!")Ambas as entradas voltam como strings e entram diretamente nas f-strings. Nenhuma conversão necessária porque você está usando-as como texto, não números.

