elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  (Python) TypeError: can't multiply sequence by non-int of type 'str'
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (Python) TypeError: can't multiply sequence by non-int of type 'str'  (Leído 6,803 veces)
Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
(Python) TypeError: can't multiply sequence by non-int of type 'str'
« en: 15 Febrero 2013, 19:21 pm »

Intento correr este programilla:

Código
  1. print ("Calcular un rectángulo")
  2. largo = input("Longitud: ")
  3. ancho = input("Altura: ")
  4. print ("Área", largo * ancho)

Y continuamente me da error; he probado todas las variantes de las comillas: "largo" * "ancho", "largo * ancho"...

¿Dónde está el fallo? Gracias, un saludo.


En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: (Python) TypeError: can't multiply sequence by non-int of type 'str'
« Respuesta #1 en: 15 Febrero 2013, 20:03 pm »

El input retorna un string, necesitas convertirlo a número :P


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
Re: (Python) TypeError: can't multiply sequence by non-int of type 'str'
« Respuesta #2 en: 15 Febrero 2013, 20:11 pm »

Aaah vaya...  :-[

¿Así por ejemplo?
Código
  1. print ("Calcular un rectángulo")
  2. largo = input("Longitud: ")
  3. ancho = input("Altura: ")
  4. a = int(ancho)
  5. b = int(largo)
  6. print ("Área", a * b)
Pero entonces sólo puedo emplear números enteros  >:(

¡Gracias por tu ayuda!  :)
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: (Python) TypeError: can't multiply sequence by non-int of type 'str'
« Respuesta #3 en: 15 Febrero 2013, 20:36 pm »

En lugar de int, float :)

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
Re: (Python) TypeError: can't multiply sequence by non-int of type 'str'
« Respuesta #4 en: 15 Febrero 2013, 20:46 pm »

Hum, pensándolo mejor... no me entero  :-\ Si la entrada en el input es un número, ¿por qué hay que convertirlo en número? ¿Por qué retorna un string?
En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: (Python) TypeError: can't multiply sequence by non-int of type 'str'
« Respuesta #5 en: 15 Febrero 2013, 21:45 pm »

Citar
Si la entrada en el input es un número, ¿por qué hay que convertirlo en número?

lo que tu aqui llamas 'numero' no es mas que una cadena compuesta exclusivamente de caracteres '0123456789' (mas el '.' si es un numero real). luego si tu en el input sabes que se deben introducir solo numeros, debes convertir la cadena a un entero o real para poder operar con ese numero.

Citar
¿Por qué retorna un string?

pues simplemente porque la funcion esta hecha asi, y supongo que es porque es el caso mas general. luego tu puedes hacerte una funcion tuya que sea solo para leer numeros, en la que no tendras mas que un input y luego deberas recorrer la cadena que retorna mirando que todos los caracteres sean numeros y que haya como maximo 1 punto. despues de eso, solo te faltaria convertirlo a int o float dependiendo de si hay un punto o no, y retornar el numero resultante. igual ya viene 'de serie' en python, pero no estoy muy metido en este lenguaje.

un saludo!
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: (Python) TypeError: can't multiply sequence by non-int of type 'str'
« Respuesta #6 en: 15 Febrero 2013, 22:02 pm »

El input retorna un valor de tipo string, tal vez lo estas confundiendo con el antiguo input.

En python 2.3 raw_input retorna un string mientras que input retorna números, pero en el caso de python 3, solo existe input, el cual devuelve un string.

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
177600531

Desconectado Desconectado

Mensajes: 134


Forever in Darkness


Ver Perfil
Re: (Python) TypeError: can't multiply sequence by non-int of type 'str'
« Respuesta #7 en: 15 Febrero 2013, 23:00 pm »

No soy un experto en python hace poco he empezado a estudiarlo 3 días exactamente xD pero yo no veo ningún error en el programa. Lo único que veo es que utilizas caracteres acentuados, estos caracteres causan errores de sintaxis.

Para solucionarlo basta con definir el encoding a utilizar insertando la siguiente línea al comienzo de nuestro código: 

Código
  1. #-*- coding: utf-8 -*-

En línea

Softrix18

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: (Python) TypeError: can't multiply sequence by non-int of type 'str'
« Respuesta #8 en: 17 Febrero 2013, 01:19 am »

largo = int(input("Longitud: "))

La mejor manera es esta, ya que el valor que que entre tiene que ser int y no otros valores como string.

Saludos!
En línea

Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
Re: (Python) TypeError: can't multiply sequence by non-int of type 'str'
« Respuesta #9 en: 17 Febrero 2013, 09:36 am »

¡Muchas gracias a todos!  :) Un saludote.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
input type « 1 2 »
PHP
JJely 16 7,217 Último mensaje 8 Febrero 2010, 18:59 pm
por KrossPock
Problema co DOC TYPE
Desarrollo Web
Riki_89D 1 2,403 Último mensaje 19 Diciembre 2010, 05:25 am
por bomba1990
De type a %var%
Scripting
electrodev 1 2,010 Último mensaje 15 Octubre 2011, 13:28 pm
por electrodev
[Python 3] TypeError: an integer is required (got type str)
Scripting
n1sen 1 3,431 Último mensaje 16 Noviembre 2017, 01:54 am
por n1sen
TypeError: 'str' object cannot be interpreted as an integer(python)
Scripting
El mas antiguo 4 2,952 Último mensaje 18 Noviembre 2022, 00:05 am
por El mas antiguo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines