A maioria das aplicações do mundo real depende de entradas do usuário e altera sua lógica de execução com base nessas entradas. Suas saídas podem depender do que o usuário insere no programa. Até agora, só vimos programas que imprimem saídas fixas.
print() é usado para imprimir saídas. input(), por outro lado, é usado para obter a entrada do usuário. O usuário pode inserir seu nome, número de telefone, alguma mensagem, etc.
Então, se quisermos escrever um programa simples que cumprimente o usuário, devemos armazenar a entrada do usuário em alguma variável e imprimi-la depois (vamos discutir variáveis em mais detalhes posteriormente, mas você pode pensar nelas como um recipiente que pode armazenar dados):
name = input()
print('Hi', name)
Aqui, o programa aguarda o usuário inserir um texto e armazena esse valor em uma variável chamada name. O programa então imprime o texto fixo Hi seguido pelo valor armazenado na variável name. No caso do usuário inserir Anna, o programa imprimiria Hi Anna. Se o usuário inserir Simon, o programa imprimiria Hi Simon. Portanto, o mesmo programa imprime coisas diferentes dependendo do que o usuário insere.
Observe que name é atribuído a input(). Isso diz ao Python para armazenar o valor inserido pelo usuário na variável chamada name. Depois disso, podemos imprimir name como qualquer outro texto ou número. Atenção que, para imprimir o valor armazenado na variável, não usamos aspas e, em vez disso, escrevemos o nome da variável.
Desafio
Escreva um programa que cumprimente o usuário com Hello, e depois o nome do usuário.
Aqui estão alguns exemplos de como o programa deve se comportar para diferentes entradas:
Entrada
Saída
Anna
Hello, Anna
Bob
Hello, Bob
Simon
Hello, Simon
Explicação
No primeiro caso de teste, o programa recebe a entrada Anna e então imprime Hello, Anna.
No segundo caso de teste, o programa recebe a entrada Bob, então imprime Hello, Bob.
No terceiro caso de teste, o programa recebe a entrada Simon, então imprime Hello, Simon.
Nota: O programa será executado separadamente para cada caso de teste (são execuições completamente diferentes do programa).