[Tutor] Correct use of range function..

Alan Gauld alan.gauld at btinternet.com
Sun Jun 10 19:16:00 CEST 2007


"Adam Urbas" <jped.aru at gmail.com> wrote
>I discovered something about your revers word program here.  I used
> the "for c in word" one.
> if you type an indented print after print c, then it will print the
> words vertically.  Just thought I'd share that with you.

You can achieve the same by missing out the comma at the end
of the print statement too. The comma suppresses a newline
character. By using a second print you put it back! So just
missing the comma achieves the same end result.

Alan G.

> On 6/10/07, Kent Johnson <kent37 at tds.net> wrote:
>> David Hamilton wrote:
>> > I just finished doing an exercise in a tutorial on the range 
>> > function
>> > and while I got it to work, my answer seems ugly. I'm wondering 
>> > if I'm
>> > missing something in the way I'm using the range function.
>> > The tutorial ask me to print a string backwards. My solution 
>> > works, but
>> > it it just doesn't "feel" right :).  My result is difficult to 
>> > read and
>> > I feel like I'm probably over complicating the solution. 
>> > Suggestions?
>> >
>> > word="reverse"
>> > #Start at the end of the string, count back to the start, 
>> > printing each
>> > letter
>> > for  i in range(len(word)-1,-1,-1):
>> >     print word[i],
>>
>> That's probably the best you can do using range(). You could write
>> ln = len(word)
>> for i in range(ln):
>>    print word[ln-i-1],
>>
>> but that is not much different.
>>
>> You can do better without using range; you can directly iterate the
>> letters in reverse:
>>
>> for c in word[::-1]:
>>    print c,
>>
>> Kent
>> _______________________________________________
>> Tutor maillist  -  Tutor at python.org
>> http://mail.python.org/mailman/listinfo/tutor
>>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
> 




More information about the Tutor mailing list