[Tutor] Program for outputing the letter backward
Hoffmann
oasf2004 at yahoo.com
Thu Mar 30 18:47:38 CEST 2006
--- Ed Singleton <singletoned at gmail.com> wrote:
> On 29/03/06, Hoffmann <oasf2004 at yahoo.com> wrote:
> > --- John Fouhy <john at fouhy.net> wrote:
> >
> > > On 29/03/06, Hoffmann <oasf2004 at yahoo.com>
> wrote:
> > > > vehicle='car'
> > > > index = vehicle[-1] #the last letter
> > > > index_zero = vehicle[0] #the first letter
> > > >
> > > > while index >= index_zero:
> > > > letter=vehicle[index]
> > > > print letter
> > > > index -= 1
> > > >
> > > > The problem is that I get no output here.
> Could I
> > > hear
> > > > from you?
> > >
> > > I can print the letters backwards like this:
> > >
> > > vehicle = 'car'
> > > print vehicle[2]
> > > print vehicle[1]
> > > print vehicle[0]
> > >
> > > Output:
> > >
> > > r
> > > a
> > > c
> > >
> > > -----
> > >
> > > This is not very useful, though, because it will
> > > only work for strings
> > > that are exactly three letters long. Can you
> see
> > > how to write a loop
> > > to produe this output?
> > >
> > > Hint: the len() function will tell you how long
> a
> > > string is.
> > >
> > > eg: if vehicle == 'car' then len(vehicle) == 3.
> > >
> > > --
> > > John.
> > > _______________________________________________
> >
> > Hi John,
> >
> > I am still 'blind' here.
> >
> > Please, see below what I did, and what I got:
> >
> > >>> vehicle='car'
> > >>> index = 0
> > >>> lenght =len(vehicle)
> > >>> last = vehicle[lenght -1]
> > >>> while last >= vehicle[0]:
> > ... letter = vehicle[index]
> > ... print letter
> > ... last -= 1
> > ...
> > c
> > Traceback (most recent call last):
> > File "<stdin>", line 4, in ?
> > TypeError: unsupported operand type(s) for -=:
> 'str'
> > and 'int'
> >
> > As you can see, I am still a newbie...
> > Could anyone, please, guide me on this exercise?
> > Thanks!
> > Hoffmann
>
> A technique I used to find useful when I was very
> first learning (and
> struggling) was to calculate the variables for each
> pass of the loop
> (basically remove all the variable names, just like
> doing algebra).
>
> So:
>
> >>> vehicle='car'
> >>> index = 0
> >>> lenght = len(vehicle) # therefore:
> >>> lenght = 3
> >>> last = vehicle[lenght -1] # therefore:
> >>> last = vehicle[2] # therefore:
> >>> last = "r"
> >>> while "r" >= "c": # first pass
> ... letter = vehicle[index] # therefore:
> ... letter = vehicle[0] # therefore:
> ... letter = "c"
> ... print letter
> ... last -= 1 # therefore:
> ... "r" -= 1 # therefore:
> ... "r" = "r" - 1 # therefore:
> ... ERROR
>
> You'll find that that can make it much clearer what
> is actually
> happening. An alternative is to use lots and lots
> of print
> statements:
>
> >>> vehicle='car'
> >>> print vehicle
> >>> index = 0
> >>> print index
> >>> lenght = len(vehicle)
> >>> print lenght
>
> and so on...
>
> It would be really good if there was a way to have a
> "verbose"
> interpreter that showed you each of the steps in the
> process, but I
> don't know of any.
>
> For example:
>
> >>> last = vehicle[lenght -1]
> last = vehicle[2]
> last = "r"
> >>>
>
> Ed
>
Hi Ed,
Many thanks for the hints!
Hoffmann
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
More information about the Tutor
mailing list