Me podéis recomendar algún curso online que esté bien?
Ahora mismo estoy haciendo este: https://mva.microsoft.com/es-es/training-courses/introducci-n-a-la-programaci-n-con-python-8360?l=erdPeDP8_6504984382
Pero me gustaría hacer otro más completo y que profundice más cuando lo acabe.
#278 jJAJAJA coño eso ya sabia que era asi, es que no copie y pegue el codigo si no que lo escribi aqui directamente y salio asi sin estar ordenadito, la cosa es que no va poniendolo bien
Traceback (most recent call last):
File "C:\Users\hdfh\Desktop\ejemplos\termo.py", line 25, in <module>
for j in bolas[(i+1):2]:
TypeError: unsupported operand type(s) for +: 'sphere' and 'int'
#281 parece que i es del tipo 'sphere' y lo estás intentando sumar con un int.
Cuando necesitas trabajar con índices es mejor utilizar enumerate() :
for idx, obj in enumerate(list):
pass
De esta manera en obj tienes la sphere que estás iterando y en idx el índice de la iteración. Puedes indicarle a enumerate el inicio, por si quieres que empiece por 1 en vez de por 0. :
for idx, obj in enumerate(list, 1):
pass
for j,obj in enumerate(bolas,1):
Traceback (most recent call last):
File "C:\Users\hdfh\Desktop\ejemplos\termo.py", line 27, in <module>
if sqrt((j.pos.x-i.pos.x)**2)<(i.radius+j.radius):
AttributeError: 'int' object has no attribute 'pos'
tampoco va
#283 a ver... en el post anterior te he dicho que el primer parámetro es el índice y el segundo es el objeto en sí. En este caso estás utilizando el índice para acceder al attr pos, tienes que usar el obj.
#285 dale un type(a) o un type(bolas[0])
Creo q ese TypeError: unsupported operand type(s) for +: 'sphere' and 'int'
esta apuntando a que estas intentando sumar o iterar un objeto con un int
tambien podrias manejar esa tupla de esferas como un diccionario, asi juegas con keys y no con posiciones en la tupla..
#285 A ver, te pongo la idea otra vez, el elemento de la lista es el segundo parámetro, a ver si con este código te queda más claro :
lista_con_cosas = []
for indice_i, cosa in enumerate(lista_con_cosas):
for indice_j, otra_cosa in enumerate(lista_con_cosas[indice_i+1:2]):
# ahora en indice_i y indice_j tienes los indices :)
# en cosa y otra_cosa tienes las cosas xd
otra_cosa.pos = 0
cosa.pos = 3
#286 no es cosa del type en este caso según lo que ha puesto, es que está utilizando la propia esfera de la iteración anterior para sumarla con un int. De ahí que necesita el enumerate() o trabajar con índices a mano.
Hola, un amigo y yo estamos atascados en un ejercicio que el enunciado es así:
Vas andando por la calle y te encuentras con alguien. Si es un amigo le das 20 euros y si no es un amigo no le das nada. Puede suceder hasta 5 veces y se detiene si encuentras al amigo
Y estamos atascados tal que así
intentosRealizados=0
print('A ver si encontramos al amigo al que le debes dinero. Eres tu mi amigo?')
amigo=True
desconocido=False
while intentosRealizados<5:
print ('Es este un amigo o un desconocido?')
estimacion=input('Es este un amigo o un desconocido?')
estimacion=bool(True or False)
intentosRealizados=intentosRealizados+1
if estimacion==True:
break
if estimacion==False:
print('Ok. Sigamos buscando')
if estimacion== True:
print('Toma los 20 euros')
Si alguien nos puede echar una mano nos vendria muy bien
estimacion=bool(True or False)
Eso va a ser siempre True, no?
Creo que lo que quieres hacer es
estimacion=bool(estimacion)
Y en las condicionales, en lugar de hacer
if variable==True:
if variable==False:
Puedes hacer
if variable:
if not variable:
Y bueno, otra cosa, podrías ahorrarte la condicional del final poniendo el print de 'toma los 50€' antes del break
#293 Es que nos sigue saltando true siempre
intentosRealizados=0
print('A ver si encontramos al amigo al que le debes dinero. Eres tu mi amigo?')
amigo=True
desconocido=False
while intentosRealizados<5:
print ('Es este un amigo o un desconocido?')
estimacion=input('Es este un amigo o un desconocido?')
estimacion=bool(estimacion)
intentosRealizados=intentosRealizados+1
if amigo:
print ('Toma los 20 euros')
break
if desconocido:
print('Ok. Sigamos buscando')
print ('Es este un amigo o un desconocido?')
Esta línea la puedes quitar porque el método input te lo mostrará igualmente.
estimacion=input('Es este un amigo o un desconocido?')
estimacion=bool(True or False)
Si lo que introduces son las palabras amigo/desconocido entonces en la segunda línea debes comparar si lo leído es amigo o desconocido:
texto = input('Es este un amigo o un desconocido?')
estimacion = texto == "amigo"
He renombrado la variable estimación a texto porque puede traerte problemas en el futuro al usarla como dos cosas diferentes. Lo he probado y funciona pero claro no sé si esas son las palabras que vas a meter en el input()
intentosRealizados=0
print('A ver si encontramos al amigo al que le debes dinero. Eres tu mi amigo?')
amigo=True
desconocido=False
while intentosRealizados<5:
texto = input('Es este un amigo o un desconocido?')
estimacion = texto == "amigo"
intentosRealizados=intentosRealizados+1
if amigo:
print ('Toma los 20 euros')
break
if desconocido:
print('Ok. Sigamos buscando')
Nos sigue dando desconocido por true
#296 Esos dos if no tiene sentido. Básicamente lo que te debería quedar era:
intentosRealizados=0
print('A ver si encontramos al amigo al que le debes dinero. Eres tu mi amigo?')
while intentosRealizados<5:
texto = input('Es este un amigo o un desconocido?')
estimacion = texto == "amigo"
intentosRealizados += 1
if estimacion:
print('Toma los 20 euros')
break
print('Ok. Sigamos buscando')
estimación es True si la entrada es amigo y False en otro caso