[Tutor] attaching the first element in a list to a string
Julieta Rangel
julieta_rangel@hotmail.com
Thu, 03 May 2001 01:14:54 -0500
I feel like an idiot. Either I'm really tired, or there's something wrong
with me. I've been staring at the reply to my question and I still don't
see what you are talking about. At the end of the program, am I supposed to
write
import poly
s.integrate()
print s ??
I am thankful for all your help.
Julieta
>From: Benoit Dupire <bdupire@seatech.fau.edu>
>To: Julieta Rangel <julieta_rangel@hotmail.com>
>CC: tutor@python.org
>Subject: Re: [Tutor] attaching the first element in a list to a string
>Date: Thu, 03 May 2001 00:44:25 -0400
>
>
>
>Julieta Rangel wrote:
>
> > This modification to the program works well in calculating the integral,
>but
> > it does not print it out when running the program. When you inputed
> > poly.s.integrate() followed by print poly.s (In Python Shell), the
>integral
> > is printed. What command should we include in the program to make it
>print
> > out automatically while running it. If I include these commands in the
> > actual program, they don't work as they do in Python Shell.
>
>s is a Poly object defined in the 'poly' module, and s has a method called
>'integrate'.
>so to access s.integrate() from the interpreter, i input
>import poly # this executes all the code in poly.py, and
>therefore creates 's'
>poly.s.integrate()
>I do not need the 'poly.' part if i want to refer the object from the
>module
>it lives in.
>
>
>read my previous message carefully. The answer to your question was in
>there...
>
> >integrate is now a method of the class Poly
> >so i can use it like this...
> >
> >s= Poly( c=[1 5 6]) # here, we use __init__
> >print s # here we use __str__
> >s.integrate() # guess what ?
>
>I advise you to read the Python tutorial (especially the part dealing with
>modules) and/or the book called 'Learning Python', so that you can progress
>more
>rapidly in Python.
>
>Benoit
>
>
>
> >
> >
> > Thanks for your help.
> >
> > Julieta
> >
> > >From: Benoit Dupire <bdupire@seatech.fau.edu>
> > >To: Julieta Rangel <julieta_rangel@hotmail.com>
> > >CC: tutor@python.org
> > >Subject: Re: [Tutor] attaching the first element in a list to a string
> > >Date: Wed, 02 May 2001 21:33:02 -0400
> > >
> > >I modified your program in this way:
> > >
> > >class Poly:
> > > def __init__ ( self, v='x' , c = [0]):
> > > """__init__():
> > > Initializes a polynomial
> > > Default variable is x
> > > Default polynomial is zero"""
> > > self.var = v
> > > self.coef = c
> > > self.deg = len(c)-1
> > > self.length = len(c)
> > > def __str__ (self):
> > > """__str__():
> > > Converts a polynomial into a string"""
> > > x = `self.coef[0]`
> > > for i in range (1, self.deg+1):
> > > x = x + "+" +`self.coef[i]` + self.var + "^" + `i`
> > > return x
> > >
> > >
> > > def integrate(self):
> > > """Input: an instance of a polynommial
> > > Output: a polynomial that is the integral of the input
>polynomial
> > > Side Effects: None"""
> > >
> > > coef=[0]
> > > self.deg= self.deg +1
> > > for i in range(0,self.deg):
> > > coef.append(self.coef[i]/float(i+1))
> > > self.coef= coef
> > >
> > >
> > >degree = input('Enter the degree of your polynomial')
> > >coef=[]
> > >for i in range (0,degree + 1):
> > > coefficient = input('Enter the coefficient for x^ %i ? ' %i)
> > > coef.append(coefficient)
> > >
> > >s= Poly (c = coef)
> > >
> > >
> > >
> > >
> > >The result is now the good one:
> > > >>> reload(poly)
> > >Enter the degree of your polynomial3
> > >Enter the coefficient for x^ 0 ? 2
> > >Enter the coefficient for x^ 1 ? 5
> > >Enter the coefficient for x^ 2 ? 6
> > >Enter the coefficient for x^ 3 ? 1
> > ><module 'poly' from 'C:\Python20\poly.py'>
> > > >>> poly.s.integrate()
> > > >>> print poly.s
> > >0+2.0x^1+2.5x^2+2.0x^3+0.25x^4
> > >
> > >
> > >What are the difference with your program?
> > >
> > >integrate is now a method of the class Poly
> > >so i can use it like this...
> > >
> > >s= Poly( c=[1 5 6]) # here, we use __init__
> > >print s # here we use __str__
> > >s.integrate() # guess what ?
> > >
> > >So the first argument of integrate() is now 'self' (the polynome
>itself)
> > >I first increment the degree (because that's the definition of the
> > >integration
> > >of a polynom)
> > >The first coeff should normally be 'k', we need an initial condition to
>set
> > >it,
> > >so for now i put 0
> > >next coeff = coeff (degree 0) / (0+1)
> > >next coeff = coeff (degree 1)/ (1+1)
> > >etc...
> > >When i have the new list of coeff, i set it for the current polynom (
> > >self.coef= coef)
> > >
> > >You can also add your derivation function as a method, and use it like
> > >s.derivate()
> > >
> > >Benoit
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >Julieta Rangel wrote:
> > >
> > > > I have this problem. I'm trying to write a program that calculates
>the
> > > > integral of a polynomial. This is what I have so far:
> > > >
> > > > import string
> > > > class Poly:
> > > > def __init__ ( self, v='x' , c = [0]):
> > > > """__init__():
> > > > Initializes a polynomial
> > > > Default variable is x
> > > > Default polynomial is zero"""
> > > > self.var = v
> > > > self.coef = c
> > > > self.deg = len(c)-1
> > > > self.length = len(c)
> > > > def __str__ (self):
> > > > """__str__():
> > > > Converts a polynomial into a string"""
> > > > x = `self.coef[0]`
> > > > for i in range (1, self.deg+1):
> > > > x = x + "+" +`self.coef[i]` + self.var + "^" + `i`
> > > > return x
> > > >
> > > > class Poly2:
> > > > def __init__ (self, v='x' , c = [0]):
> > > > """__init__():
> > > > Initializes a polynomial
> > > > Default variable is x
> > > > Default polynomial is zero"""
> > > > self.var = v
> > > > self.pc = c
> > > > self.deg =len(c)-1
> > > > self.length = len(c)
> > > > def __str__(self):
> > > > """__str__():
> > > > Converts a second polynomial into a string"""
> > > > x = `self.pc[0]`
> > > > for i in range (0, self.deg+1):
> > > > x = x + "+" +`self.pc[i]`+ self.var + "^" +`i+2`
> > > > return x
> > > >
> > > > def Integrate(p):
> > > > """Input: an instance of a polynommial
> > > > Output: a polynomial that is the integral of the input
>polynomial
> > > > Side Effects: None"""
> > > > pv=p.var
> > > > pc=[]
> > > > for i in range(0,p.deg):
> > > > I=p.coef[i+1]/float(i+2)
> > > > pc.append(I)
> > > > return Poly2 (v=pv,c=pc)
> > > >
> > > > degree = input('Enter the degree of your polynomial')
> > > > coef=[]
> > > > for i in range (0,degree + 1):
> > > > coefficient = input('Enter the coefficient for x^ %i ? ' %i)
> > > > coef.append(coefficient)#attach the coefficient entered to the
>end
> > >of
> > > > the
> > > > #list named coef.
> > > >
> > > > s= Poly (c = coef)
> > > > t= Integrate(s)
> > > > # This is some code to test new functions
> > > >
> > > > print "The integral of %s is: \n %s" % (s,t)
> > > > print " "
> > > >
> > > > My problem is that when I run it I get this:
> > > >
> > > > >>>reload(poly1)
> > > > Enter the degree of your polynomial3
> > > > Enter the coefficient for x^ 0 ? 2
> > > > Enter the coefficient for x^ 1 ? 5
> > > > Enter the coefficient for x^ 2 ? 6
> > > > Enter the coefficient for x^ 3 ? 1
> > > > The integral of 2+5x^1+6x^2+1x^3 is:
> > > > 2.5+2.5x^2+2.0x^3+0.25x^4
> > > >
> > > > As you can see, the answer would be right if it weren't for the
>first
> > >term
> > > > in the polynomial. The first term should be a 2x, so the answer
>should
> > >look
> > > > like this: 2x^1+2.5x^2+2x^3+0.25x^4. Can anyone help me fix this
> > >problem?
> > > > I think that I need to find a way to have the first term on the list
> > >labeled
> > > > pc, which is 2 to be taken into consideration on the string
>representing
> > >the
> > > > polynomial. Am I right? If so, How can I accomplish this? Also, I
> > >need to
> > > > find a way so that when the coefficient of x^0 ==0 , the output
>should
> > > > display a constant c along with the result, so that the answer looks
> > >like
> > > > c+2.5x^2+2x^3+0.23x^4.
> > > > Can anyone guide me in the right direction? All inputs or comments
> > >about my
> > > > program are welcomed and appreciated.
> > > >
> > > > Julieta
> > > >
> > > > _________________________________________________________________
> > > > Get your FREE download of MSN Explorer at http://explorer.msn.com
> > > >
> > > > _______________________________________________
> > > > Tutor maillist - Tutor@python.org
> > > > http://mail.python.org/mailman/listinfo/tutor
> > >
> > >--
> > >Benoit Dupire
> > >Graduate Student
> > >----------------
> > >I'd like to buy a new Boomerang. How can i get rid of the old one?
> > >
> > >
> >
> > _________________________________________________________________
> > Get your FREE download of MSN Explorer at http://explorer.msn.com
> >
> > _______________________________________________
> > Tutor maillist - Tutor@python.org
> > http://mail.python.org/mailman/listinfo/tutor
>
>--
>Benoit Dupire
>Graduate Student
>----------------
>I'd like to buy a new Boomerang. How can i get rid of the old one?
>
>
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com