Saída e entrada de dados
Duas ferramentas que você vai usar desde a primeira linha que escrever: print() mostra valores no terminal, input() pega texto digitado pelo usuário. São simples, mas entender como elas se comportam 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 partes. A ordem em que você escreve as coisas é a ordem em que elas rodam. Sempre.
city = "São Paulo"
print(city)
print("Population: 14 million")city recebe o valor primeiro. O primeiro print roda. O segundo print roda. Sempre nessa ordem.
Isso é importante porque você não pode usar uma variável antes de tê-la atribuído. O Python ainda não a conhece e vai gerar um erro:
print(country) # NameError: country is not defined yet
country = "Japan"Guarde isso conforme seus programas forem crescendo: tudo que você usar precisa ser definido antes de ser usado.
NameError. Sem pular partes, sem ler o arquivo inteiro antes. Exibindo saída
print() é como o Python conversa com você. Passe qualquer valor para ela e ela exibe esse valor. Ela converte automaticamente o que você passar para texto.
print("Hello") # Hello
print(42) # 42
print(3.14) # 3.14
print(True) # TrueVários valores
Você pode exibir vários valores de uma vez separando-os por vírgulas. Por padrão, o Python coloca um espaço entre eles. Mude o separador com sep:
name = "Alice"
age = 28
print(name, age) # Alice 28
print("Name:", name) # Name: Alice
print("2024", "01", "15", sep="-") # 2024-01-15
print("a", "b", "c", sep=", ") # a, b, cControlando o final da linha
Por padrão, cada chamada de print() termina com uma nova linha, então a próxima saída começa numa linha nova. 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ê passar para ela em texto e exibe. Passe várias coisas separadas por vírgula e você terá um espaço entre elas; mude isso com sep. Todo print pula para uma nova linha no final; end="" mantém o próximo na mesma linha. Formatando saída com f-strings
O jeito mais limpo de montar mensagens é usando f-strings. Coloque f antes da aspa de abertura e envolva qualquer variável ou expressão em chaves. O Python preenche o valor em tempo de execução. Você pode colocar qualquer valor, cálculo ou chamada de método dentro de {}.
name = "Alice"
score = 980
# concatenation: clunky, requires str() for numbers
print("Player: " + name + ", Score: " + str(score))
# f-string: readable, no manual conversion
print(f"Player: {name}, Score: {score}")Você pode colocar qualquer expressão dentro de {}: aritmética, chamadas de método (como .upper(), cobertas com detalhes 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: ALICE
print(f"2 + 2 = {2 + 2}") # 2 + 2 = 4A especificação de formato depois de : 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ê vai usar isso o tempo todo para preços e medidas. O resto fica disponível para quando você precisar. O principal a lembrar: qualquer coisa pode ir dentro de {}, não apenas nomes de variáveis.
f antes da aspa de abertura e envolva qualquer coisa em {}: uma variável, uma soma, até uma chamada de método. Dois-pontos adiciona formatação, como :.2f para duas casas decimais. Muito mais limpo do que colar strings com +. Obtendo dados do usuário
input() pausa seu programa e espera o usuário digitar algo. O que ele digitar (e confirmar com Enter) volta como valor de retorno. A string entre parênteses é o prompt que o usuário vê.
name = input("What's your name? ")
print(f"Hello, {name}!")input() sempre retorna uma string, não importa o que o usuário digite. Digite 42 e você recebe "42" de volta, não o número 42. Para fazer aritmética com esse valor, converta explicitamente:
age = int(input("How old are you? "))
print(f"In ten years you'll be {age + 10}.")E se o usuário digitar algo que não pode ser convertido? O Python gera um ValueError. Como tratar isso corretamente é assunto do capítulo Files and exceptions.
input() exibe seu prompt, espera uma linha e sempre devolve isso como string, mesmo que a pessoa tenha digitado um número. Precisa de um número? Converta você mesmo com int() ou float() ao receber o valor, e depois siga com o tipo certo. Na prática
Um quiz que se personaliza a partir dos dados do usuário:
name = input("What's your name? ")
subject = input("Which subject? ")
print(f"Okay, {name}. Starting your {subject} quiz.")
print("Good luck!")Ambas as entradas voltam como strings e vão direto para as f-strings. Não é preciso converter porque você está usando os valores como texto, não como números.

