line 17, in module print (f '{a [str (x)]}: {str (n) [r-c]}'

-5
# variaveis
a = {'0': 'Milhar', '1': 'Centena', '2': 'Dezena', '3': 'Unidade'}
x = int(0)

# Variaveis
while True:
    n = str(input('Digit a number: '))
    if n.isnumeric():
        n = int(n)
        break
    else:
        print('Apenas numeros')
if n >= 4:
    r = 4
else:
    r = int(len(n))
for c in range(0, r):
    print(f'{a[str(x)]}: {str(n)[r-c]}')
    x += 1'
    
asked by anonymous 25.01.2018 / 22:45

1 answer

2

The code has several errors. I think this is what you want:

a = {'0': 'Milhar', '1': 'Centena', '2': 'Dezena', '3': 'Unidade'}
while True:
    n = input('Digit a number: ') #só pede a digitação
    if n.isnumeric(): #verifica se é composto apenas por dígitos
        break #sai do laço se for
    else:
        print('Apenas numeros') #avisa o erro
r = len(n) #pega a quantidade de dígitos
if r >= 4: #normaliza para o máximo de 4
    r = 4
for c in range(0, r): #anda dígito por dígito
    print(f'{n[c]}: {a[str(r - c - 1)]}') #imprime a posição de cada caractere digitado
    #depois imprime o nome da grandeza pegando do dicionário, o - 1 porque começa do 0

Errors:

x = int(0) #não faz sentido

n = str(input('Digit a number: ')) #não faz sentido usar 'str()' em 'input()' já é string

n = int(n) #ainda não é a hora de converter

if n >= 4: #não faz sentido verificar se o número digitado é maior que 4

r = int(len(n)) #não precisa transformar em int o que já é um

print(f'{a[str(x)]}: {str(n)[r-c]}') #a sintaxe tem tantos erros que nem sei onde começar

x += 1' #não tem porque existir esta variável e tem um erro de sinaxe aí
    
25.01.2018 / 23:41