O que o programa deve fazer se o usuário digitar outra coisa que não um número inteiro ou 'q'?
Re: EP4 - Se o usuário digitar uma letra
Oi Vanessa,
O que o programa deve fazer se o usuário digitar outra coisa que não um número inteiro ou 'q'?
Se o programa explodir, tudo bem.
Veja o item 9 em Instruções para entrega de EPs.
Oi, professor,
se bem entendi, recebi um desconto justamente por isso:
Teste do programa: função main()
ERRO: seu programa não executa com a entrada: [' \nq\n']
Traceback (most recent call last):
File __ep.py", line 186, in
main()
File "__ep.py", line 62, in main
if int(comando) == 0:
ValueError: invalid literal for int() with base 10: ' '
Tente melhorar o seu programa para que ele ignore entradas inválidas - desconto: 0.5
"
O programa pode explodir ou não?!
Re: EP4 - Se o usuário digitar uma letra
O programa pode explodir ou não?!
Sim, para o EP4 pode. Mas o corretor automático não gosta disso, pois ele foi feito para ser 'genérico'
A gente vai ensinar o corretor a tratar melhor esse caso, ou seja, você pode deixar o seu EP4 explodir para entradas inválidas que, na 2a correção, não haverá descontos.
Mas não deixar explodir é uma boa prática de programação, alguém saberia me dizer como a gente faz isso?
Re: EP4 - Se o usuário digitar uma letra
arrumei o meu com "try [...] except [...]" agora pra segunda entrega...
Re: EP4 - Se o usuário digitar uma letra
Para não explodir, é só o programa só começar quando a entrada for válida Agora fazer o programa ler a string '\n1\n2\nq' não é tão trivial...
Re: EP4 - Se o usuário digitar uma letra
Agora fazer o programa ler a string '\n1\n2\nq\n' não é tão trivial...
'\n' significa Tecle ENTER ('\n' = ENTER):
régua >>>
Digite
'q' para encerrar a execução ou
um inteiro n para imprimir a régua de ordem n.
régua >>> 1
.
. -
.
régua >>> 2
.
. -
. --
. -
.
régua >>> q
Fui!
Re: EP4 - Se o usuário digitar uma letra
E o programa deve manipular entradas com mais de um número ou q?
ERRO: seu programa não executa com a entrada: [' \nq\n']
Trace
Tente melhorar o seu programa para que ele ignore entradas inválidas - desconto: 0.5
Resultado differente (92) do esperado para a entrada: ['0\nq\n']
- erro em teste com entrada = 0 - desconto: 0.5
Resultado differente (92) do esperado para a entrada: ['1\n2\nq\n']
- erro em teste com duas entradas: 1, 2, q - desconto: 0.7
Resultado differente (92) do esperado para a entrada: ['3\n4\n5\nq\n']
- erro em teste com três entradas: 3, 4, 5, q - desconto: 0.7
Re: EP4 - Se o usuário digitar uma letra
E o programa deve manipular entradas com mais de um número ou q?
Sobre as entradas inválidas, foi respondido anteriormente.
Sobre "manipular entradas com mais de um número", a reposta é sim. Para entender a entrada: ['3\n4\n5\nq\n'] basta ler um '\n' como ENTER. Assim, esse teste tem como entrada o 3, depois 4, depois 5 depois q.
Um problema de corrigir automaticamente é que alguns EPs imprimem mensagens inesperadas e a "sujeira" acaba escondendo os resutlados do corretor. Esse deve ser o motivo para que os resultados tenham sido considerados diferentes do esperado. Para corrigir esse problema, modifique o EP para que ele imprima as mensagens da mesma forma que os exemplos do enunciado (função main()).
Re: EP4 - Se o usuário digitar uma letra
Professor, o output de ['1\n2\nq\n'] deve ser então a régua de 1 e a régua de 2, seguidas,
e.g.:
régua >>> 1\n2
.
. -
.
.
. -
. --
. -
.
régua >>>
ou algo deve ser impresso entre as duas?
o output de ['1\n2\nq\n'] deve ser então a régua de 1 e a régua de 2, seguidas,
Você deve digitar 1 seguido de ENTER.
Depois 2 seguido de ENTER.
Finalmente, q seguido de ENTER.
Veja o resultado a seguir onde os valores em vermelho foram digitados e seguidos de ENTER.
régua >>> 1 . . - . régua >>> 2 . . - . -- . - . régua >>> q Fui!
Professor, eu também tive os mesmos descontos no meu ep, mas a saída está igual a do main do enunciado, até mesmo com a mensagem "Fui!' no final. Não entendi o porquê do desconto.
Re: EP4 - Se o usuário digitar uma letra
Mesmo problema aqui... Não era para o usuário digitar um inteiro OU q?
É para programar de modo que o usuário possa fazer múltiplas entradas?
Não entendi...