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. "))
```
CodePudding user response:
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