Duda imprimir variables Python

Iniciado por CaronteGold, 20 Noviembre 2009, 19:42 PM

0 Miembros y 2 Visitantes están viendo este tema.

CaronteGold


Buenas estoy intentando hacer un programa para calcular el binomio de newton, es decir que muestre el desarrollo completo, lo hice en Batch, pero solo me servía para números. Quiero hacerlo también para letras, y en python creo que se puede, pero estaba empezando y tuve un problema, al imprimir variables y texto a la vez da error.

Código (python) [Seleccionar]
print "Binomio de Newton"

a = raw_input("Primer número: ")
b = raw_input("Segundo número: ")
pot = raw_input("Potencia: ")

print "(" a "+" b "^"pot")"
raw_input()


quiero que salga, si "a" es 5 y "b" es 6 y potencia 5 :

(5+6)^5

Y he probado muchas cosas y no funciona, combinando comillas y etc...


Saludos.



xtermsh

Prueba con:

Código (python) [Seleccionar]
print str((a + b) ^c)

Novlucker

Lo anterior no va a funcionar, porque suma los números, y convierte el resultado en texto :P

Código (python) [Seleccionar]
print("Binomio de Newton")

a = input("Primer número: ")
b = input("Segundo número: ")
pot = input("Potencia: ")

print("("+str(a)+"+"+str(b)+")"+"^"+str(pot))
input()


No se que versión de python tengas, pero desde la última el raw_input no existe, y el print necesita paréntesis obligatorio

Saludos
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

xtermsh

Es cierto, me he olvidado, es necesario si mal no recuerdo importar math.pow, en linux utilizo 2.6 en windows la 3.1, y es cierto en la última es necesario el uso de paréntesis para print.

CaronteGold

Cita de: Novlucker en 20 Noviembre 2009, 19:59 PM
Lo anterior no va a funcionar, porque suma los números, y convierte el resultado en texto :P

Código (python) [Seleccionar]
print("Binomio de Newton")

a = input("Primer número: ")
b = input("Segundo número: ")
pot = input("Potencia: ")

print("("+str(a)+"+"+str(b)+")"+"^"+str(pot))
input()


No se que versión de python tengas, pero desde la última el raw_input no existe, y el print necesita paréntesis obligatorio

Saludos



Tengo la 2.6 cual me recomiendas.

Novlucker

#5
Si tienes la 2.6 entonces prueba el script con los raw_input .. ¿O ya lo has probado y te ha funcionado?

Sobre que versión .. como todo, se supone que se intenta mejorar al sacar nuevas versiones, así que la última. Pero para la 2.6 hay más documentación no oficial y scripts de ejemplo, para la última no hay tanto teniendo en cuenta de que ya lleva algo así como un año , pero igual no hay que asustarse ya que el cambio no es tanto (sigue siendo python XD), solo algunas funciones, objetos y módulos, para los cuales se puede recurrir a la documentación oficial :P

Saludos
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

CaronteGold

#6

Buenas,


Como puedo agregar un sleep para que pueda leer el programa y no lo ejecute tan rápido ¿?, es que he probado con raw_input() al final, pero no sirve.

Y una cosa más, para ver los comandos y su sintaxis, puedo verlos desde el intérprete ¿?

Saludos.

EDIT: Según leí en un libro, no hace falta declarar la variable al hacerla, por ejemplo para los números si es entero complejo o real, pero he probado a poner una "x"  y da error.

Novlucker

Para agregar un sleep

Código (python) [Seleccionar]
import time
time.sleep(5)
print('test')


CitarY una cosa más, para ver los comandos y su sintaxis, puedo verlos desde el intérprete ¿?
Estas en win? tienes la ayuda en un html compilado dentro de la carpeta Doc, desde la cual puedes ingresar con F1 desde la GUI de Python

CitarEDIT: Según leí en un libro, no hace falta declarar la variable al hacerla, por ejemplo para los números si es entero complejo o real, pero he probado a poner una "x" y da error.
No, en Python no hay que declarar los tipos, pero no he entendido lo de la "X"  :-X

Saludos

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

^Tifa^

#8
CitarSegún leí en un libro, no hace falta declarar la variable al hacerla, por ejemplo para los números si es entero complejo o real, pero he probado a poner una "x"  y da error.

No, efectivamente no hace falta declarar que tipo de datos soporta una variable en este lenguaje, pero si hace falta saber que tipo de datos soportan como parametros ciertas funciones internas de ciertos modulos.

En python hay 2 funciones para recibir datos
* raw_input
* input

raw_input colecciona cualquier dato insertado por teclado por parte del usuario y lo convierte en caracteres. Sin embargo en el caso de input colecciona los datos insertados por teclado y los convierte a numeros, otra falla de input es que no solo convierte todo lo recibido a numero o lo trate como un numero sino que tambien asume lo insertado como codigo python he intentara ejecutarlo... por ende te recomendaria usar raw_input en lugar del debil input.

Si tu inconveniente es que no quieres que raw_input convierta numeros insertados por teclado en caracteres, no hay problema alguno filtra la entrada especificando que meramente debe recibir solo numeros asi:

Código (python) [Seleccionar]


try:

  numero=int(raw_input("Inserta un numero  "))

except Exception:

  print "Debes insertar un Numero!!"

else:

  print ("Mi suma con 10 es ", numero+10)



Novlucker

Concuerdo con todo :P

Solo que por si acaso, recuerdo que el raw_input no funciona en la versión 3 de python, pero bueno, CaronteGold esta usando la 2.6, y ahí si sirve

Código (dos) [Seleccionar]
D:\Python31>python.exe "D:\elinput.py"
Traceback (most recent call last):
File "D:\elinput.py", line 1, in <module>
Texto=raw_input("Inserta un numero ")
NameError: name 'raw_input' is not defined


Saludos
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