Python - ¡Ayuda porfavor! Me sale can't multiply sequence by non-int of type 'str'

 
Vista:
sin imagen de perfil
Val: 17
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

¡Ayuda porfavor! Me sale can't multiply sequence by non-int of type 'str'

Publicado por Carlos (7 intervenciones) el 07/09/2020 02:52:25
Hola!
Buenas noches, tardes o mañana.

Tengo un problema en el codigo que no pude solucionar a ver si alguien me puede colaborar. El problema es el siguiente:

la variable "lol" me ayuda a unir dos numeros (en este caso "x" y "y") ejemplo 2 y 3 y los une para ser 23 pero lo que necesito es que yo pueda multiplicar ese numero resultante con z para que me halle el valor de la resistencia pero me sale que "total" no puede hacer esa multiplicacion.

Me sale can't multiply sequence by non-int of type 'str'

¡Si alguien me puede solucionar esa parte se los agradeceria un monton!
O si tiene otra forma de unir los numeros en "x" y "y" para despues multiplicarlo por "z" tambien es valido.

muchas gracias a todos




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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
print("codigo de colores")
 
x = str(input("Primer color: "))
y = str(input("Segundo color: "))
z = str(input("Multiplicador(Color): "))
w = str(input("tolerancia(Color): "))
 
lol = (str(x)[0]+str(y)[0])
 
total = lol * z
 
print("Su resistencia es ", total, "con una toleraciona de +/-", w)
 
def fun(x):
    if x == "negro":
        val = 0
    elif x == "marron":
        val = 1
    elif x == "rojo":
        val = 2
    elif x == "naranja":
        val = 3
    elif x == "amarillo":
        val = 4
        print(val)
    elif x == "verde":
        val = 5
    elif x == "azul":
        val = 6
    elif x == "violeta":
        val = 7
    elif x == "gris":
        val = 8
    elif x == "blanco":
        val = 9
    else:
        print("color incorrecto")
    return val
 
def fun2(y):
    if y == "negro":
        val = 0
    elif y == "marron":
        val = 1
    elif y == "rojo":
        val = 2
    elif y == "naranja":
        val = 3
    elif y == "amarillo":
        val = 4
    elif y == "verde":
        val = 5
    elif y == "azul":
        val = 6
    elif y == "violeta":
        val = 7
    elif y == "gris":
        val = 8
    elif y == "blanco":
        val = 9
    else:
        print("color incorrecto")
    return val
 
def fun3(z):
    if z == "negro":
        val = 1
    elif z == "marron":
        val = 10
    elif z == "rojo":
        val = 100
    elif z == "naranja":
        val = 1000
    elif z == "amarillo":
        val = 10000
    elif z == "verde":
        val = 100000
    elif z == "azul":
        val = 1000000
    elif z == "violeta":
        val = 10000000
    elif z == "oro":
        val = 0.1
    elif z == "plata":
        val = 0.01
    else:
        print("color incorrecto")
    return val
 
def fun4(w):
    if w == "negro":
        res = 1
    elif w == "marron":
        res = 2
    elif w == "verde":
        res = 0.5
    elif w == "azul":
        res = 0.25
    elif w == "violeta":
        res = 0.10
    elif w == "gris":
        res = 0.05
    elif w == "oro":
        res = 5
    elif w == "plata":
        res = 10
    else:
        print("color incorreto")
    return res
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

¡Ayuda porfavor! Me sale can't multiply sequence by non-int of type 'str'

Publicado por protozoo (2 intervenciones) el 07/09/2020 03:08:38
Sitúate donde tienes escrita esta línea: lol = (str(x)[0]+str(y)[0])
Añade en otra línea a continuación: lol = int(lol)

La razón es que no puedes multiplicar una cadena de texto por un entero.
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
sin imagen de perfil
Val: 17
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

¡Ayuda porfavor! Me sale can't multiply sequence by non-int of type 'str'

Publicado por Carlos (7 intervenciones) el 07/09/2020 03:29:50
Hola

¡gracias por tu ayuda!

pero, despues de poner lo que dijiste, me aparece este error:

invalid literal for int() with base 10: 'va'

dice que esta en la linea 17, es decir, en lol = int(lol)
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

¡Ayuda porfavor! Me sale can't multiply sequence by non-int of type 'str'

Publicado por protozoo (2 intervenciones) el 07/09/2020 03:53:57
No entiendo muy bien cual es la finalidad del programa.
Aquí, por ejemplo, estás seleccionando el primer carácter de la cadena de texto introducida: str(x)[0]
Por ejemplo, si tecleas "verde", el valor de la variable x es igual a "v".
¿Puede ser que lo que pretendas realmente sea asignar un valor numérico a las variables "x" e "y" en función de los colores que se introduzcan?
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
sin imagen de perfil
Val: 17
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

¡Ayuda porfavor! Me sale can't multiply sequence by non-int of type 'str'

Publicado por Carlos (7 intervenciones) el 07/09/2020 04:05:11
si, porque en el codigo de colores cada color tiene asignado un numero. Entonces, si el usuario dice que es "negro" el programa entienda que el negro equivale al numero 0.
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

¡Ayuda porfavor! Me sale can't multiply sequence by non-int of type 'str'

Publicado por yoyyo (1 intervención) el 07/09/2020 04:53:31
como ya te han dicho el error está en intentar multiplicar una cadena por un entero, que solo se puede en otra ocasion, no en este caso.
ahora, es una cantidad innecesaria de código.
te muestro otra forma, hay cosas para agregar, pero eso te lo dejo a vos, es a manera orientativa aunque funcional:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#-*- coding: utf - 8 -*-
color={"negro":"0","marron":"1","rojo":"2","naranja":"3","amarillo":"4","verde":"5","azul":"6","violeta":"7","gris":"8","blanco":"9"}
multiplicador={"negro":1,"marron":10,"rojo":100,"naranja":1000,"amarillo":10000,"verde":100000,"azul":1000000,"violeta":10000000,"oro":0.1,"plata":0.01 }
tolerancia={"negro":1,"marron":2,"verde":0.5,"azul":0.25,"violeta":0.10,"gris":0.05,"oro":5,"plata":10}
 
def resistencia(primer,segundo,multiplica,tolera):
   return f"Su resistencia es de {int(color.get(primer)+color.get(segundo)) * multiplicador.get(multiplica)} ohms con una tolerancia de +/- {tolerancia.get(tolera)}"
 
print("Código de colores")
print(list(color.keys()))
x = input("Primer color: ")
y = input("Segundo color: ")
print("\nCódigo de colores [multiplicador]")
print(list(multiplicador.keys()))
z = input("Multiplicador(Color): ")
print("\nCódigo de colores [tolerancia]")
print(list(tolerancia.keys()))
w = input("Tolerancia(Color): ")
 
try:
   print(resistencia(x,y,z,w))
except:
   print("Color inexistente")
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
sin imagen de perfil
Val: 17
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

¡Ayuda porfavor! Me sale can't multiply sequence by non-int of type 'str'

Publicado por Carlos (7 intervenciones) el 07/09/2020 05:20:54
Muchas gracias amigo!

Apenas estoy aprendiendo a programar y me puse ese ejercicio como tarea (ya que me sirve por mi carrera) y pues lo hize con el limitado conocimiento que tengo.

Voy a mirar tu codigo, aprender como hacerlo y mejorarlo en lo que pueda.

De corazón se te agredece
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