How to deny letters and symbols in loops - python

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. "))
```

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

Related

Make a Menu using Match Case Python

I have created another MENU in a different exercise using IF in this time I did it with MATCH CASE and I have a doubt, is it possible to print the menu again and if it is possible how I would do it, I think in an if but it is the first time that I use these sentences.
this is my code:
...Later i need to work with dictionaries so with this method can do it?, or I need to use IF to create the menu from the beginning?
menu = """
1. Datos del pasajero.
2. Agrega una ciudad.
3. Ingresa DNI para ver las ciudades que coinciden con el dato.
4. Escribe una ciudad para ver el # de pasajeros.
5. Ingresa DNI para ver los paises que coinciden con el dato.
6. Ingresa un pais y mostrar el total de personas que viajan.
7. Terminar el programa
"""
viajeros = {}
paises = {}
print(menu)
dato_leido = int(input('Escriba una opcion para comenzar con el programa: '))
match dato_leido:
case 1:
print('Escriba los datos del pasajero: ')
case 2:
print('Agrega una ciudad a la lista:')
case 3:
print('Ingresa el DNI del pasajero para ver a que ciudad ha viajado: ')
case 4:
print('Ingrese una ciudad para ver el numero de pasajeros: ')
case 5:
print('Ingresa el DNI de una persona para ver a que paises viaja: ')
case 6:
print('Ingresa un pais y mostrar el total de personas que viajan: ')
case _:
print('Saliendo del programa en 3, 2, 1(FIN).')

How can I print the common elements of 2 dimensional arrays in python?

I've got 2 bidimensional arrays in python, and I must print like results of the common elements between those list.
I have tried to solve this with intersetion function but I didn't get any result. Any ideas? Thanks a lot!
fila= int(input("Digite el numero de filas "))
columna=int(input("Digite el numero de columnas "))
matriz=[]
for i in range(fila):
matriz.append([])
for j in range(columna):
valor= int(input(f"Digite el valor {i} {j} de la matriz: "))
matriz[i].append(valor)
#La función sort(revers=True) utiliza el algoritmo BubleSort para ordenar
#en forma descendente
matriz[i].sort(reverse=True)
print("\nLas primera matiz ingresada, en orden decreciente es: ")
print(matriz)
#Ahora inicializamos un arreglo que equivale a la segunda matriz a trabajar
fila_2= int(input("Digite el numero de filas "))
columna_2=int(input("Digite el numero de columnas "))
matriz_2=[]
for i in range(fila_2):
matriz_2.append([])
for j in range(columna_2):
valor= int(input(f"Digite el valor {i} {j} de la matriz: "))
matriz_2[i].append(valor)
#La función sort(revers=True) utiliza el algoritmo BubleSort para ordenar
#en forma descendente
matriz_2[i].sort(reverse=True)
print("\nLas segunda matiz ingresada, en orden decreciente es: ")
print(matriz_2)
z = matriz.intersection(matriz_2)
print("\nLos elementos comunes en ambas matrices son: ")
print (z)

How to insert a new line after each element in a list? Python

I tried to append some elements to a new list, and I wanted to separate each one by a new line. I tried this:
for i in list_rents:
result.append("{}: {}\n".format(i, 'Caro' if i > avg else 'Precio razonable'))
print("El precio promedio de la lista dada es {}, por lo que estas son las comparaciones independientes:\n {}".format(avg, result))
The last part worked as I expected, but the first one did not, why does that happen, and how can I solve it?
Here's the output:
El precio promedio de la lista dada es 24.166666666666668, por lo que estas son las comparaciones independientes:
['21.0: Precio razonable\n', '12.0: Precio razonable\n', '32.0: Caro\n', '23.0: Precio razonable\n', '43.0: Caro\n', '14.0: Precio razonable\n']
And here is the full code:
result = []
ans = input('Quieres agregar un elemento a la lista de precios de rentas? (S) Si, (N) No.')
while ans == 'S':
new_value = float(input('Ingrese el valor del nuevo elemento'))
if new_value > 0:
list_rents.append(new_value)
else:
print('Programa terminado, ese es un valor inaceptable')
sys.exit()
ans = input('Quieres agregar un elemento a la lista de precios de rentas? (S) Si, (N) No.')
avg = sum(list_rents)/len(list_rents)
for i in list_rents:
result.append("{}: {}\n".format(i, 'Caro' if i > avg else 'Precio razonable'))
print("El precio promedio de la lista dada es {}, por lo que estas son las comparaciones independientes:\n {}".format(avg, result))
If you want to turn a list of strings li into a single string, joined by newlines, you should use "\n".join(li), instead of adding a newline to each string individually (because you'll still have a list then).

Python in Visual Studio - Math doesn't work

I have some problems with the function Math and sqrt in Visual studio, does anyone can say me what i'm doing wrong?
print("Programa de calculo de raiz cuadrada")
numero= int(input("Introduce un numero: "))
intentos=0
while numero<0:
print("no se puede calcular la raiz de un numero negativo")
if intentos==2:
print("Has consumido demasiados intentos, reinicia aplicacion")
break
numero= int(input("Introduce un numero: "))
if numero<0:
intentos=intentos+1
if intentos<3:
solución= math.sqrt(numero) # Here's the problem
print("La raíz cuadrada de" +str(numero) + "es" +str(solución))
Python #VisualStudio
You need import math to be able to use the math function.
It also has an error in the variable named solución, must be solucion.
Try this:
import math
print("Programa de calculo de raiz cuadrada")
numero= int(input("Introduce un numero: "))
intentos=0
while numero<0:
print("no se puede calcular la raiz de un numero negativo")
if intentos==2:
print("Has consumido demasiados intentos, reinicia aplicacion")
break
numero= int(input("Introduce un numero: "))
if numero<0:
intentos=intentos+1
if intentos<3:
solucion= math.sqrt(numero)
print("La raíz cuadrada de " +str(numero) + "es" +str(solucion))

How to resolve the error IndentationError: expected an indented block in python 3.3

See my error in:
print('Olá, usuario bem-vindo ao J.A.R.V.I.S')
print('Antes de comecar, deixa-me fazer-te algumas perguntas para te conhecer melhor')
nome = input('Como te chamas?')
idade = input('Qual e a tua idade?')
print('Dados Guardados no banco MYSQL!')
print('Olá,', nome, 'Prazer em conhecer-te!')
print('Antes de continuar deixa-me que me apresente, eu sou o jarvis fui criado por: Tomás Dinis e o meu coração é feito em PYTHON 3.3, sou um robot com inteligencia artificial e faço praticamente tudo o que voce quer!')
pergunta = input('O que queres que eu faca por ti?')
if pergunta == "desligate":
print('adorei!')
Please Help !
if pergunta == "desligate":
print('adorei!')
The contents of an if block must be indented farther in than the conditional of that block.
if pergunta == "desligate":
print('adorei!')

Categories

Resources