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 como se comportam poupa você de algumas surpresas logo no começo.
Como Python executa seu código
Python executa seu código de cima para baixo, uma linha por vez, exatamente na ordem que você escreveu. Sem pulos. A ordem que você escreve as coisas é a ordem que elas rodam. Sempre.
city = "Brasília"
print(city)
print("População: 3 milhões")city é atribuída primeiro. O primeiro print roda. O segundo print roda. Sempre, nessa ordem.
Isso importa porque você não pode usar uma variável antes de atribuir a ela. Python ainda não a viu e vai gerar um erro:
print(country) # NameError: country não foi definido ainda
country = "Brasil"Tenha isso em mente conforme seus programas crescem: qualquer coisa que você use deve ser definida antes de usá-la.
NameError. Sem pular à frente, sem ler o arquivo inteiro primeiro. Imprimindo saída
print() é como Python fala de volta para você. Passe qualquer valor e ele exibe esse valor. Converte automaticamente o que você der para texto.
print("Hello") # Hello
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:
name = "Maria"
age = 28
print(name, age) # Maria 28
print("Name:", name) # Name: Maria
print("2024", "01", "15", sep="-") # 2024-01-15
print("a", "b", "c", sep=", ") # a, b, cControlando o fim da linha
Cada chamada a 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("Loading", end="")
print("...")
# Loading...
print("one", end=" | ")
print("two", end=" | ")
print("three")
# one | two | threeprint() transforma o que você der em texto e o mostra. Passe várias coisas separadas por vírgulas e você pega um espaço entre elas, mude isso 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 é com f-strings. Coloque f antes da aspas de abertura, depois envolva qualquer variável ou expressão em chaves. Python a preenche em tempo de execução. Você pode colocar qualquer valor, cálculo ou chamada de método dentro do {}.
name = "Maria"
score = 980
# concatenação: desajeitada, requer str() para números
print("Player: " + name + ", Score: " + str(score))
# f-string: legível, sem conversão manual
print(f"Player: {name}, Score: {score}")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:
price = 49.99
tax = 0.2
total = price * (1 + tax)
print(f"Total: {total:.2f}") # Total: 59.99
print(f"Name: {name.upper()}") # Name: MARIA
print(f"2 + 2 = {2 + 2}") # 2 + 2 = 4A especificação de formato após : controla como o valor é exibido:
ratio = 0.8765
count = 1234567
label = "revenue"
print(f"{ratio:.1%}") # 87.6%
print(f"{count:,}") # 1,234,567
print(f"{label:>12}") # " revenue":.2f significa "duas casas decimais". Você usará constantemente para preços e medidas. Tudo mais está lá quando você precisa. A coisa principal: qualquer coisa pode ir dentro de {}, não só nomes de variáveis.
f antes da aspas de abertura e envolva qualquer coisa em {}: uma variável, uma soma, até uma chamada de método. Uma vírgula adiciona formatação, como :.2f para duas casas decimais. Muito mais limpo que colar strings juntas com +. Obtendo entrada do usuário
input() pausa seu programa e espera o usuário digitar algo. O que quer que ele digite (e pressione Enter) volta como o valor de retorno. A string entre parênteses é o prompt que o usuário vê.
name = input("Qual é o seu nome? ")
print(f"Olá, {name}!")input() sempre retorna uma string, não importa o que o usuário digita. Digite 42 e você pega de volta "42", não o número 42. Para fazer aritmética com ele, converta explicitamente:
age = int(input("Quantos anos você tem? "))
print(f"Em dez anos você terá {age + 10}.")E se o usuário digitar algo que não pode ser convertido? Python gera um ValueError. Lidar com isso adequadamente é coberto no capítulo Arquivos e exceções.
input() mostra seu prompt, espera uma linha, e sempre a devolve como uma string, mesmo se eles digitarem um número. Precisa de um número? Converta você mesmo com int() ou float() conforme chega, depois continue com o tipo correto. Na prática
Um quiz que se personaliza a partir da entrada do usuário:
name = input("Qual é o seu nome? ")
subject = input("Qual assunto? ")
print(f"Ok, {name}. Iniciando seu quiz de {subject}.")
print("Boa sorte!")Ambas as entradas voltam como strings e vão direto para as f-strings. Nenhuma conversão necessária porque você as está usando como texto, não números.

