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

Asked

Viewed 79 times

-6

# 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`
  • is the Python 3 -------

  • 4

    Please include a title and describe your problem.

  • you’ve heard of the title?

  • 1

    how do you expect other people to find the solution to a problem similar to yours? typing print(f'{a[str(x)]}: {str(n)[r-c]}') search the site or google?

  • @Schilive Has the answer solved your question? Do you think you can accept it? See [tour] if you don’t know how to do it. This would help a lot to indicate that the solution was useful for you. You can also vote on any question or answer you find useful on the entire site (when you have 15 points).

1 answer

3

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

Behold working in the ideone. And in the repl it.. Also put on the Github for future reference.

Mistakes:

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í
  • Thanks, Voce helped a lot

  • I know, I found out later, but thanks anyway

Browser other questions tagged

You are not signed in. Login or sign up in order to post.