Skip to content
Advertisement

How to deny letters and symbols in loops

I only want my code to accept numbers between 1 to 9. I tried try except, logical operators, isdigit, but I just can’t do it.

    areasevolumes =["1. Área de um quadrado.","2. Área de um triãngulo.","3. Área de um retângulo.","4. Área de um trapézio.","5. Área de um círculo.","6. Volume de um cubo.","7. Volume de um paralelepípedo.","8. Volume de um prisma triãngular.","9. Volume de um cílindro."] 
    for prompt in areasevolumes:
        print(prompt)
        
    n = int(input("Insira um número. "))
   
    while not 0 < n < 10:
            n = int(input("Insira um número. "))
        
    ```

Advertisement

Answer

It look like you’re trying to print out the prompt based on the user input, and you want to make sure that it’s not higher the 9 and lower than 1. You need to change it the while not to while and add the line to print out the prompt.

areasevolumes =["1. Área de um quadrado.","2. Área de um triãngulo.","3. Área de um retângulo.","4. Área de um trapézio.","5. Área de um círculo.","6. Volume de um cubo.","7. Volume de um paralelepípedo.","8. Volume de um prisma triãngular.","9. Volume de um cílindro."] 
for prompt in areasevolumes:
    print(prompt)
    
n = int(input("Insira um número. "))

while 0 < n < 10:
        print(areasevolumes[n-1])
        n = int(input("Insira um número. "))

or you could do it without defining n beforehand as follows:

areasevolumes =["1. Área de um quadrado.","2. Área de um triãngulo.","3. Área de um retângulo.","4. Área de um trapézio.","5. Área de um círculo.","6. Volume de um cubo.","7. Volume de um paralelepípedo.","8. Volume de um prisma triãngular.","9. Volume de um cílindro."] 
   
while True:
    n = int(input("Insira um número. "))
    if 0 < n < 10: 
        print(areasevolumes[n - 1])
    else:   
        break
User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement