URI1001

Python

Extremamente Básico

O problema inicial solicita que o programa faça a leitura de dois valores do tipo inteiro, some-os, e exiba uma mensagem com esse resultado.

A primeira dúvida é: como ler um número digitado pelo usuário e armazená-lo em uma variável?

Leitura de dados

Com uma busca rápida no Google, encontrei o a resposta para a leitura de dados em w3schools.com.

input()

A função input() realiza a leitura de uma cadeia de caracteres (string) da entrada padrão (teclado). O resultado lido é atribuído a variável a, a = input(). O tipo da variável é definida dinamicamente, ou seja, no momento que é feita a atribuição do dado, este é reconhecido e a variável é declarada com esse mesmo tipo, nesse caso, string.

Mas é necessário que, após as leituras dos dois valores, seja feita a soma, ou seja, as entradas devem ser números e não cadeias de caracteres (string).

Como converter a string lida em um número do tipo inteiro?

Casting

O processo para a conversão entre tipos de dados é chamado de casting, onde um dado sofre uma modelagem do seu tipo original para o tipo desejado.

Assim, a entrada de dados é feita pela função input(), cujo resultado é modelado para o tipo inteiro e por fim atribuído a variável a. O mesmo ocorre para a variável b. Em seguida a variável soma recebe o resultado da operação de soma entre elas.

a = int( input() )
b = int( input() )
soma = a + b

print()

Por fim a apresentação do resultado, que pode ser feita utilizando a função print(), mas como inserir uma variável no meio da string?

Presentation Error

Uma primeira forma encontrada foi print("X = ", soma ), porém a plataforma avaliava com erro de apresentação, Presentation error.

Especulação

Entre devaneios e especulações, imagino que o problema ocorra pela composição de string + variável apresentada na saída padrão. Ao concatenar(juntar) a string com a variável na exibição, no meio dessa união deve ficar o terminador de string: '\0'. Exemplo: a=4 e b=5 então soma=9. A saída do comando print("X = ", soma), especulo que seja “X = ‘\0’ 9”, ou seja, para a saída padrão, são duas strings exibidas na tela, mesmo que uma após a outra, mesmo que visualmente pareça cumprir as exigências, pois o '0' não aparece na tela.

Cuidado! Isso é uma especulação, estou aprendendo python.

.format()

Duas outras ótimas fontes de pesquisa são: stackoverflow e a própria documentação da linguagem docs.python.org.

Resolução

O resultado completo para o desafio URI 1001 Extremamente Básico na minha formulação é:

a = int( input() )
b = int( input() )
soma = a + b
print("X = {}".format( soma ) )

Voltar