Python - TypeError: unsupported operand type(s) for /: 'str' and 'int'

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

TypeError: unsupported operand type(s) for /: 'str' and 'int'

Publicado por Lucas (8 intervenciones) el 26/04/2018 15:37:33
Bueno pues estoy empezando a programar en Python y estoy intentando hacer un calculador de medias sencillo. Pero me da un error, a ver si me podéis ayudar. 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
#Caculador de medias#
 
print("Nota del primer parcial:")
nota_1= input()
 
print("Nota del segundo parcial:")
nota_2= input()
 
print("Nota del tercer parcial:")
nota_3= input()
 
print("Nota de clase 1:")
nota_clase_1= input()
 
print("Nota de clase 2:")
nota_clase_2= input()
 
print("Valor parciales (ej: si es 70% 0,7):")
valor_nota= input()
 
print("Valor nota de clase (ej: si es 30% 0,3):")
valor_nota_clase= input()
 
 
print("Nota media:")
 
nota_media=((nota_1+nota_2+nota_3)/3)*valor_nota + ((nota_clase_1+nota_clase_2)/2)*valor_nota_clase
 
print(nota_media)

ERROR:
line 27, in <module>
nota_media=((nota_1+nota_2+nota_3)/3)*valor_nota + ((nota_clase_1+nota_clase_2)/2)*valor_nota_clase
TypeError: unsupported operand type(s) for /: 'str' and 'int'
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 xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

TypeError: unsupported operand type(s) for /: 'str' and 'int'

Publicado por xve (1646 intervenciones) el 26/04/2018 18:12:08
Hola Lucas, tu problema es que input() devuelve una cadena, la cual no puede ser dividida... si que puede ser multiplicada y sumada (concatena) pero no dividida

Prueba así:
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
#Caculador de medias#
 
print("Nota del primer parcial:")
nota_1= int(input())
 
print("Nota del segundo parcial:")
nota_2= int(input())
 
print("Nota del tercer parcial:")
nota_3= int(input())
 
print("Nota de clase 1:")
nota_clase_1= int(input())
 
print("Nota de clase 2:")
nota_clase_2= int(input())
 
print("Valor parciales (ej: si es 70% 0,7):")
valor_nota= int(input())
 
print("Valor nota de clase (ej: si es 30% 0,3):")
valor_nota_clase= int(input())
 
 
print("Nota media:")
 
nota_media=((nota_1+nota_2+nota_3)/3)*valor_nota + ((nota_clase_1+nota_clase_2)/2)*valor_nota_clase
 
print(nota_media)

P.D. Tendrás que controlar, que realmente introduzcan números
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 Lucas
Val: 16
Ha disminuido su posición en 8 puestos en Python (en relación al último mes)
Gráfica de Python

TypeError: unsupported operand type(s) for /: 'str' and 'int'

Publicado por Lucas (8 intervenciones) el 26/04/2018 19:10:07
Me sirvió muchas gracias. Sólo que en la línea 19 y 22 tenía que usar float y no int ya que hay que meter un número decimal. Muchas 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

TypeError: unsupported operand type(s) for /: "str" and "int"

Publicado por Leopoldo M. (3 intervenciones) el 26/05/2018 20:03:59
El error te indica que con una cadena (str) no se puede dividir por un entero (int)

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
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Caculador de medias VERSION 1.0
# declaramos variables
nota_1 = 0
nota_2 = 0
nota_3 = 0
nota_clase_1 = 0
nota_clase_2 = 0
valor_nota = 0
valor_nota_clase = 0
nota_media = 0
 
# programa
nota_1 = int(input("Nota del primer parcial: "))
nota_2 = int(input("Nota del primer parcial: "))
nota_3 = int(input("Nota del primer parcial: "))
nota_clase_1 = int(input("Nota de clase 1: "))
nota_clase_2 = int(input("Nota de clase 1: "))
 
valor_nota = float(input("Valor parciales (ej: si es 70% 0.7): "))
valor_nota_clase = float(input("Valor nota de clase (ej: si es 30% 0.3): "))
 
nota_media=((nota_1+nota_2+nota_3)/3)*valor_nota + ((nota_clase_1+nota_clase_2)/2)*valor_nota_clase
print("Nota media:", nota_media)
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