Interação com o usuário

Avatar do usuário
bernardino
Site Admin
Mensagens: 798
Registrado em: 28 Ago 2020, 15:11

Re: Interação com o usuário

Mensagem por bernardino »

LAB Operadores e Expressões – 2

Cenário


Sua tarefa é preparar um código simples capaz de avaliar a hora de término de um período, dado como um número de minutos (pode ser arbitrariamente grande). A hora de início é fornecida como um par de horas (0..23) e minutos (0..59). O resultado deve ser impresso no console.

Por exemplo, se um evento começa às 12:17 e dura 59 minutos, termina às 13:16.

Não se preocupe com imperfeições no código - tudo bem se ele aceitar um tempo inválido - o mais importante é que o código produz resultados válidos para dados de entrada válidos.

Teste seu código com cuidado. Dica: usar o operador % pode ser a chave para o sucesso.

Exemplo de entrada:

Código: Selecionar todos

12
17
59
Saída prevista:

Código: Selecionar todos

13:16
Exemplo de entrada:

Código: Selecionar todos

23
58
642
Saída prevista:

Código: Selecionar todos

10:40
Exemplo de entrada:

Código: Selecionar todos

0
1
2939
Saída prevista:

Código: Selecionar todos

1:0
Exercício:

Código: Selecionar todos

hour = int(input("Hora de início (horas): "))
mins = int(input("Hora de início (minutos): "))
dura = int(input("Duração do evento (minutos): "))

# Escreva seu código aqui.
Dica

# encontre um total de todos os minutos
# encontre um número de horas escondido em minutos e atualize a hora
# minutos corretos para cair no intervalo (0..59)
# horas corretas para cair no intervalo (0..23)

Código: Selecionar todos

print(hour, ":", mins, sep='')
Solução

Código: Selecionar todos

hour = int(input("Hora de início (horas): "))
mins = int(input("Hora de início (minutos): "))
dura = int(input("Duração do evento (minutos): "))
mins = mins + dura # encontre um total de todos os minutos
hour = hour + mins // 60 # encontre um número de horas escondido em minutos e atualize a hora
mins = mins % 60 # minutos corretos para cair no intervalo (0..59)
hour = hour % 24 # horas corretas para cair no intervalo (0..23)
print(hour, ":", mins, sep='')
operadores_expressao-2.png
operadores_expressao-2.png (42.73 KiB) Exibido 53 vezes
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 798
Registrado em: 28 Ago 2020, 15:11

Re: Interação com o usuário

Mensagem por bernardino »

RESUMO DA SEÇÃO

1. A função print() envia dados para o console, enquanto a função input() obtém dados do console.

2. A função input() vem com um parâmetro opcional: a string de prompt. Ele permite que você escreva uma mensagem antes da entrada do usuário, por exemplo:

Código: Selecionar todos

name = input("Digite seu nome: ")
print("Olá, " + name + ". Prazer em conhecê-lo!")
3. Quando a função input() é chamada, o fluxo do programa é interrompido, o símbolo de prompt fica piscando (ele solicita que o usuário tome medidas quando o console for alternado para o modo de entrada) até que o usuário tenha inserido uma entrada e/ou pressionado o Enter chave.

Observação

Você pode testar a funcionalidade da função input() em seu escopo completo localmente em sua máquina. Por motivos de otimização de recursos, limitamos o tempo máximo de execução do programa no Edube a alguns segundos. Vá para Sandbox, copie e cole o snippet acima, execute o programa e não faça nada. Apenas espere alguns segundos para ver o que acontece. Seu programa deve ser interrompido automaticamente após um breve momento. Agora abra o IDLE e execute o mesmo programa. Você consegue ver a diferença?

Dica: o recurso mencionado acima da função input() pode ser usado para solicitar que o usuário encerre um programa. Observe o código abaixo:

Código: Selecionar todos

name = input("Digite seu nome: ")
print("Olá, " + name + ". Prazer em conhecê-lo!")
 
print("\nPressione Enter para finalizar o programa.")
input()
print("O FIM.")
4. O resultado da função input() é uma string. Você pode adicionar strings umas às outras usando o operador de concatenação (+). Confira este código:

Código: Selecionar todos

num_1 = input("Digite o primeiro número: ") # Digite 12
num_2 = input("Digite o segundo número: ") # Digite 21
 
print(num_1 + num_2) # o programa retorna 1221
5. Você também pode multiplicar cadeias (* - replicação), por exemplo:

Código: Selecionar todos

my_input = input("Enter something: ") # Exemplo de entrada: Olá
print(my_input * 3) # Saída esperada: OláOláOlá
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 798
Registrado em: 28 Ago 2020, 15:11

Re: Interação com o usuário

Mensagem por bernardino »

TESTE DA SEÇÃO

Pergunta 1: Qual é a saída do trecho a seguir?

Código: Selecionar todos

x = int(input("Digite um número: ")) # O usuário digita 2
print(x * "5")
Resposta

Código: Selecionar todos

55
Pergunta 2: Qual é a saída esperada do trecho a seguir?

Código: Selecionar todos

x = input("Digite um número: ") # O usuário digita 2
print(type(x))
Resposta

Código: Selecionar todos

<class 'str'>
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 798
Registrado em: 28 Ago 2020, 15:11

Re: Interação com o usuário

Mensagem por bernardino »

TESTE DO MÓDULO 2

Muito bem! Você chegou ao final do Módulo 2 e concluiu um grande marco na sua formação em programação em Python. Aqui está um breve resumo das áreas de tópicos abordadas no Módulo 2:
  • como escrever e executar programas Python simples;
  • o que são literais, operadores e expressões do Python;
  • o que são variáveis e quais são as regras que as regem;
  • como executar operações básicas de entrada e saída.
Agora você está pronto para fazer o teste do módulo, o que ajudará a avaliar o que você aprendeu até agora.

O teste a seguir tem como base o que você acabou de aprender. Há vinte perguntas no total e você precisa marcar pelo menos 70% para passar.

Boa sorte!
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 798
Registrado em: 28 Ago 2020, 15:11

Re: Interação com o usuário

Mensagem por bernardino »

Pergunta 1
O dígrafo \n força a função print() a:


a) duplicar o caractere ao lado do dígrafo
b) produz exatamente dois caracteres: \ e n
c) interromper a execução
d) quebrar a linha de saída

Pergunta 2
O significado do parâmetro de palavra-chave é determinado por:


a) o nome do argumento especificado junto com seu valor
b) seu valor
c) sua posição na lista de argumentos
d) sua conexão com variáveis existentes

Pergunta 3
O valor vinte ponto doze vezes dez elevado à potência de oito deve ser escrito como:


a) 20.12E8
b) 20.12E8.0
c) 20E12.8
d) 20.12*10^8

Pergunta 4
O prefixo 0o significa que o número após ele é indicado como:


a) Octal
b) binário
c) Decimal
d) hexadecimal

Pergunta 5
O operador **:


a) não existe
b) executa exponenciação
c) realiza multiplicação duplicada
d) realiza multiplicação de ponto flutuante

Pergunta 6
O resultado da seguinte divisão:
1 / 1


a) é igual a 1.0
b) é igual a 1
c) não pode ser previsto
d) não pode ser avaliado

Pergunta 7
Qual das seguintes afirmações são verdadeiras? (Selecione duas respostas)


a) O operador ** usa ligação do lado direito.
b) O argumento correto do operador % não pode ser zero.
c) A adição precede a multiplicação.
d) O resultado do operador / é sempre um valor inteiro.

Pergunta 8
A associação do lado esquerdo determina que o resultado da seguinte expressão:
1 // 2 * 3
É igual a


a) 0.16666666666666666
b) 4.5
c) 0
d) 0,0

Pergunta 9
Quais dos seguintes nomes de variáveis são ilegais? (Selecione duas respostas)


a) true
b) TRUE
c) and
d) True

Pergunta 10
A função print() pode gerar valores de:


a) apenas um argumento
b) qualquer número de argumentos (incluindo zero)
c) qualquer número de argumentos (excluindo zero)
d) não mais de cinco argumentos

Pergunta 11
Qual é a saída do seguinte snippet?

Código: Selecionar todos

x = 1
y = 2
z = x
x = y
y = z
print(x, y)
a) 2 2
b) 2 1
c) 1 1
d) 1 2

Pergunta 12
Qual é a saída do seguinte trecho se o usuário digitar duas linhas contendo 2 e 4 respectivamente?

Código: Selecionar todos

x = input()
y = input()
print(x + y)
a) 4
b) 24
c) 2
d) 6

Pergunta 13
Qual é a saída do seguinte trecho se o usuário digitar duas linhas contendo 2 e 4 respectivamente?

Código: Selecionar todos

x = int(input())
y = int(input())
 
x = x // y
y = y // x
 
print(y)

a) 4,0
b) o código causará um erro em tempo de execução
c) 2.0
d) 8.0

Pergunta 14
Qual é a saída do seguinte trecho se o usuário digitar duas linhas contendo 2 e 4 respectivamente?

Código: Selecionar todos

x = int(input())
y = int(input())
 
x = x / y
y = y / x
 
print(y)
a) 8.0
b 2.0
c) 4,0
d) o código causará um erro em tempo de execução

Pergunta 15
Qual é a saída do seguinte snippet se o usuário digitar duas linhas contendo 11 e 4 respectivamente?

Código: Selecionar todos

x = int(input())
y = int(input())
 
x = x % y
x = x % y
y = y % x
 
print(y)
a) 1
b) 2
c) 3
d) 4

Pergunta 16
Qual é a saída do seguinte snippet se o usuário digitar duas linhas contendo 3 e 6 respectivamente?

Código: Selecionar todos

x = input()
y = int(input())
 
print(x * y)
a)18
b) 666
c) 333333
d) 36

Pergunta 17
Qual é a saída do seguinte snippet?

Código: Selecionar todos

z = y = x = 1
print(x, y, z, sep='*')
a) 1 1 1
b) 1*1*1
c) x*y*z
d) x y z

Pergunta 18
Qual é a saída do seguinte snippet?

Código: Selecionar todos

y = 2 + 3 * 5.
print(Y)
a) 17
b) 25.
c) o snippet causará um erro de execução
d) 17,0

Pergunta 19
Qual é a saída do seguinte snippet?

Código: Selecionar todos

x = 1 / 2 + 3 // 3 + 4 ** 2
print(x)
a) 17
b) 8,5
c) 17,5
d) 8

Pergunta 20
Qual é a saída do seguinte trecho se o usuário digitar duas linhas contendo 2 e 4 respectivamente?

Código: Selecionar todos

x = int(input())
y = int(input())
 
print(x + y)
a) 4
b) 2
c) 24
d) 6
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Responder