Python - Pseudocodigo me esta arrojando un TypeError en la linea 26

 
Vista:
Imágen de perfil de rody
Val: 30
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Pseudocodigo me esta arrojando un TypeError en la linea 26

Publicado por rody (9 intervenciones) el 23/09/2020 14:27:30
tengo este pseudocodigo, pero me esta arrojando un TypeError en la linea 26 y trato de corregirlo y me arroja mas errores y no deberia, por favor quien me lo verifica y me ayuda. gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
criptom1 = input("Nombre primera Criptomoneda: ")
criptom2 = input("Nombre segunda Criptomoneda: ")
criptom3 = input("Nombre tercera Criptomoneda: ")
cantid1 = int(input("Cantidad primera Criptomoneda: "))
cantid2 = int(input("Cantidad segunda Criptomoneda: "))
cantid3 = int(input("Cantidad tercera Criptomoneda: "))
if cantid1 > cantid2 and cantid1 > cantid3:
	print(criptom1+": "+cantid1)
	if cantid2 > cantid3:
		print(criptom2+": "+cantid2)
		print(criptom3+": "+cantid3)
	else:
		print(criptom3+": "+cantid3)
		print(criptom2+": "+cantid2)
	endif
if cantid2 > cantid1 and cantid2 > cantid3:
	print(criptom2+": "+cantid2)
	if cantid1 > cantid3:
		print(criptom1+": "+cantid1)
		print(criptom3+": "+cantid3)
	else:
		print(criptom3+": "+cantid3)
		print(criptom1+": "+cantid1)
	endif
if cantid3 > cantid1 and cantid3 > cantid2:
        print(criptom3+": "+cantid3)
        if cantid1 > cantid2:
            print(criptom1+": "+cantid1)
            print(criptom2+": "+cantid2)
        else:
            print(criptom2+": "+cantid2)
            print(criptom1+": "+cantid1)
        endif
endif
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 121
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Pseudocodigo me esta arrojando un TypeError en la linea 26

Publicado por Antoni Masana (67 intervenciones) el 23/09/2020 15:02:40
En primer lugar este código no es valido en Python.

Pongo un ejemplo de código correcto:

1
2
if cantid1 > cantid2 and cantid1 > cantid3:
    print(criptom1+": "+cantid1)

En segundo lugar los endif no corresponden código valido en Python.

Imagino que el código correcto es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
criptom1 = input("Nombre primera Criptomoneda: ")
criptom2 = input("Nombre segunda Criptomoneda: ")
criptom3 = input("Nombre tercera Criptomoneda: ")
 
cantid1 = int(input("Cantidad primera Criptomoneda: "))
cantid2 = int(input("Cantidad segunda Criptomoneda: "))
cantid3 = int(input("Cantidad tercera Criptomoneda: "))
 
if cantid1 > cantid2 and cantid1 > cantid3:
    print(criptom1+": "+cantid1)
    if cantid2 > cantid3:
        print(criptom2+": "+cantid2)
        print(criptom3+": "+cantid3)
    else:
        print(criptom3+": "+cantid3)
        print(criptom2+": "+cantid2)
 
if cantid2 > cantid1 and cantid2 > cantid3:
    print(criptom2+": "+cantid2)
    if cantid1 > cantid3:
        print(criptom1+": "+cantid1)
        print(criptom3+": "+cantid3)
    else:
        print(criptom3+": "+cantid3)
        print(criptom1+": "+cantid1)
 
if cantid3 > cantid1 and cantid3 > cantid2:
    print(criptom3+": "+cantid3)
    if cantid1 > cantid2:
        print(criptom1+": "+cantid1)
        print(criptom2+": "+cantid2)
    else:
        print(criptom2+": "+cantid2)
        print(criptom1+": "+cantid1)

A mi esta solución me funciona en Python 2.7

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
criptom1 = input("Nombre primera Criptomoneda: ")
criptom2 = input("Nombre segunda Criptomoneda: ")
criptom3 = input("Nombre tercera Criptomoneda: ")
 
cantid1 = int(input("Cantidad primera Criptomoneda: "))
cantid2 = int(input("Cantidad segunda Criptomoneda: "))
cantid3 = int(input("Cantidad tercera Criptomoneda: "))
 
if cantid1 > cantid2 and cantid1 > cantid3:
    print "%s: %3d" % (criptom1, cantid1)
    if cantid2 > cantid3:
        print "%s: %3d" % (criptom2, cantid2)
        print "%s: %3d" % (criptom3, cantid3)
    else:
        print "%s: %3d" % (criptom3, cantid3)
        print "%s: %3d" % (criptom2, cantid2)
 
if cantid2 > cantid1 and cantid2 > cantid3:
    print "%s: %3d" % (criptom2, cantid2)
    if cantid1 > cantid3:
        print "%s: %3d" % (criptom1, cantid1)
        print "%s: %3d" % (criptom3, cantid3)
    else:
        print "%s: %3d" % (criptom3, cantid3)
        print "%s: %3d" % (criptom1, cantid1)
 
if cantid3 > cantid1 and cantid3 > cantid2:
    print "%s: %3d" % (criptom3, cantid3)
    if cantid1 > cantid2:
        print "%s: %3d" % (criptom1, cantid1)
        print "%s: %3d" % (criptom2, cantid2)
    else:
        print "%s: %3d" % (criptom2, cantid2)
        print "%s: %3d" % (criptom1, cantid1)

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Rodi
Val: 30
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Pseudocodigo me esta arrojando un TypeError en la linea 26

Publicado por Rodi (9 intervenciones) el 23/09/2020 17:57:58
Gracias Antoni, tu comentario me ayudo aclarar algunos terminos, sin embargo aun me persite el error de la linea 26, estoy trabajando sobre python 3.8.
Este es el ejercicio que estoy tratando de realizar:
Programa en pseudocódigo que dadas tres criptomonedas y sus respectivas cantidades, imprima de forma ordenada decreciente cada moneda con sus respectivos valores.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
criptom1 = input("Nombre primera Criptomoneda: ")
criptom2 = input("Nombre segunda Criptomoneda: ")
criptom3 = input("Nombre tercera Criptomoneda: ")
cantid1 = int(input("Cantidad primera Criptomoneda: "))
cantid2 = int(input("Cantidad segunda Criptomoneda: "))
cantid3 = int(input("Cantidad tercera Criptomoneda: "))
if cantid1 > cantid2 and cantid1 > cantid3:
	print(criptom1+": "+cantid1)
	if cantid2 > cantid3:
		print(criptom2+": "+cantid2)
		print(criptom3+": "+cantid3)
	else:
		print(criptom3+": "+cantid3)
		print(criptom2+": "+cantid2)
 
if cantid2 > cantid1 and cantid2 > cantid3:
	print(criptom2+": "+cantid2)
	if cantid1 > cantid3:
		print(criptom1+": "+cantid1)
		print(criptom3+": "+cantid3)
	else:
		print(criptom3+": "+cantid3)
		print(criptom1+": "+cantid1)
 
if cantid3 > cantid2 and cantid3 > cantid1:
    print(criptom3+": "+cantid3)
Se produjo una excepción: TypeError
can only concatenate str (not "int") to str
  File "D:\01. RODY_A\NEXT_U\1.2. CARRERA DE DESARROLLADOR WED\python_curso\ejercicio de orden.py", line 26, in <module>
    print(criptom3+": "+cantid3)  
 
  if cantid1 > cantid2:
        print(criptom1+": "+cantid1)
        print(criptom2+": "+cantid2)
    else:
        print(criptom2+": "+cantid2)
        print(criptom1+": "+cantid1)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Anikollaste
Val: 570
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Pseudocodigo me esta arrojando un TypeError en la linea 26

Publicado por Anikollaste (118 intervenciones) el 23/09/2020 18:39:36
Hola Rodo!!
No llevo mucho tiempo programando en Python pero creo que puedo ayudarte.
El problema es que estas concatenando un string con un int.
Sustituye todos los print de esta manera:

1
print(f"{criptom1}: {cantid1}")

Personalmente no me gusta concatenar hay varias maneras de hacerlo:
1
print("{}: {}".format(cantid1, cantid2))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Rodi
Val: 30
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Pseudocodigo me esta arrojando un TypeError en la linea 26

Publicado por Rodi (9 intervenciones) el 24/09/2020 14:12:53
Gracias Anikollaste, me sirvió tu aporte mucho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Anikollaste
Val: 570
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Pseudocodigo me esta arrojando un TypeError en la linea 26

Publicado por Anikollaste (118 intervenciones) el 24/09/2020 17:59:30
No se merecen, me gusta ayudar y yo pido ayuda con frecuencia jejeje ;)
No te desanimes y sigue golpeando teclas!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Anikollaste
Val: 570
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Pseudocodigo me esta arrojando un TypeError en la linea 26

Publicado por Anikollaste (118 intervenciones) el 23/09/2020 18:50:37
Aquí tienes el código corregido:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
criptom1 = input("Nombre primera Criptomoneda: ")
criptom2 = input("Nombre segunda Criptomoneda: ")
criptom3 = input("Nombre tercera Criptomoneda: ")
 
cantid1 = int(input("Cantidad primera Criptomoneda: "))
cantid2 = int(input("Cantidad segunda Criptomoneda: "))
cantid3 = int(input("Cantidad tercera Criptomoneda: "))
 
if cantid1 > cantid2 and cantid1 > cantid3:
	print(f"{criptom1}: {cantid1}")
 
if cantid2 > cantid3:
	print(f"{criptom2}: {cantid2}")
	print(f"{criptom3}: {cantid3}")
 
else:
	print("{}: {}".format(criptom3, cantid3))
	print("{}: {}".format(criptom2, cantid2))
 
if cantid2 > cantid1 and cantid2 > cantid3:
	print("{1}: {0}".format(cantid2, criptom2))
 
if cantid1 > cantid3:
	print("{0}: {1}".format(criptom1, cantid1))
	print(f"{criptom3}: {cantid3}")
 
else:
	print(f"{criptom3}: {cantid3}")
	print(f"{criptom1}: {cantid1}")
 
 
if cantid3 > cantid2 and cantid3 > cantid1:
	print(f"{criptom3}: {cantid3}")
	print(f"{criptom3}: {cantid3}")
 
if cantid1 > cantid2:
	print("{}: {}".format(criptom1, cantid1))
	print("{}: {}".format(criptom2, cantid2))
 
else:
	print(f"{criptom2}: {cantid2}")
	print(f"{criptom1}: {cantid1}")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar

Pseudocodigo me esta arrojando un TypeError en la linea 26

Publicado por yoyyo (1 intervención) el 23/09/2020 23:24:57
hola:
si bien ya te han dado una solución, no voy a dejar pasar dos cosas:
1)esto no es pseudocódigo, esto es código!
2)hay muchas formas de hacer esto mismo y en lo personal no me gusta la cantidad de código innecesario. se puede resumir de otra forma:
1
2
3
4
5
6
7
8
9
10
11
12
13
criptomoneda=[]
lugar=["primera","segunda","tercera"]
 
for x in range(3):
    criptom = input(f"Nombre de la {lugar[x]} Criptomoneda: ")
    criptomoneda.append([criptom])
for j in range(3):
    cantidad = int(input(f"Cantidad de la {lugar[j]} Criptomoneda: "))
    criptomoneda[j].append(cantidad)
 
criptomoneda.sort(key=lambda lista: lista[1],reverse=True)
for x in range(3):
    print(f"La {lugar[x]} Criptomoneda es {criptomoneda[x][0]} con un valor de {criptomoneda[x][1]} ")
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Rodi
Val: 30
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Pseudocodigo me esta arrojando un TypeError en la linea 26

Publicado por Rodi (9 intervenciones) el 24/09/2020 14:22:12
Gracias Yoyyo, esta otra forma me parece genial, me toca estudiar mas y las ayudas que me brindan en este foro, me sirven muchísimo. los seguiré molestando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodi
Val: 30
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Pseudocodigo me esta arrojando un TypeError en la linea 26

Publicado por Rodi (9 intervenciones) el 24/09/2020 14:14:41
excelente, mas clara me queda la idea, gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar