On Wed, Mar 23, 2011 at 5:19 PM, Wayne Werner <waynejwer...@gmail.com>wrote: > > ---------- Forwarded message ---------- > From: Lezlie Kline <lezlie.kl...@gmail.com> > Date: Wed, Mar 23, 2011 at 9:30 AM > Subject: Re: [Tutor] Checksum program > To: Wayne Werner <waynejwer...@gmail.com> > > > Wayne, > > Thanks! That helped tremendously. Here's my problem with the accumulator > understanding. I have two examples: > > This one is for an empty string: > > output="" > print"Please enter 4 words, one at a time." > for i in range(4): > word=raw_input("Enter a word: ") > output=output+" " + word > print "\tThe accumulator so far has: ", output > print "The words you entered are: ", output > > The other one is for a non-empty string: > > output="*" > word=raw_input("Enter a word: ") > for letter in word: > output=output+letter+"*" > print"The result is: ", output > > These are the two that I was going off of > > I'm not really getting an understanding of how this is working. Do you > mind explaining? Is my ord(message[i]) correct for getting the ASCII > numbers in the string? >
Yes, that part works fine. If you fire up an interactive interpreter you can try it out (I use IPython, so my prompt looks a little different than normal). In [12]: string = 'ASCII set' In [13]: for i in xrange(len(string)): ....: print ord(string[i]) You'll see that the output are indeed numbers. > My thinking was that "message[i]" is the length so ord(value) is what > provides the ASCII numbers therefore if I use ord(message[i]) that would > work. My problem was that I didn't know which of the two patterns above to > follow because I don't really understand how they work. > The best way to learn how something works is to modify it, or try to break it. Take the first example. What happens if you put more than one word in at a time? What if you do numbers instead? What happens if you wrap int() around the raw_input, so you have int(raw_input('Enter a word: ')) ? When you get errors, read them! Python is one of the few languages that gives you very helpful error messages (usually). Also, make sure you post the full text of any and all errors here. Also it helps to explain 1) What were you doing? (And what were you trying to do? Sometimes these are two different things!) 2) What did you expect to happen? 3) What happened instead? Copying and pasting is a very good way to answer #3. For instance, say you had this code: In [14]: number = 'four' In [15]: int(number) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) /home/wayne/<ipython console> in <module>() ValueError: invalid literal for int() with base 10: 'four' You could say the following: I was trying to turn a string into a number, but it didn't work. I got this error instead: <paste error here> In this case, Python tells you with the last line that there's something wrong with the value (hence ValueError). Of course the latter part of the message might seem cryptic if you're not familiar with bases... But if you got that error and were confused, then you could have sent an email to the list and it would get answered fairly quickly. Of course, if you copy/paste the last line into Google, you also tend to get some good results. HTH, Wayne
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor