[Tutor] Program Questions (original) (raw)

Lloyd Kvam pythonTutor at venix.com
Fri Jul 16 21:42:42 CEST 2004


(I failed to send this to the list earlier)

I saved the original email as a file so that I could examine it directly.

The quotes in the original email are 0x91 and 0x92 characters and apparently came from a word processing program. My email program (evolution) simply dropped them. They are in the latin-1 control character range (0x80 - 0x9f) and are not encodings of displayable characters. Presumably they originated from a Windows Cp1252 encoding.

The tabs and spaces are inconsistent. I assume the tab stops were set to half inch or something like that within a word processing program.

The bottom line is that programs should be edited with a program editor rather than a word processor. On Windows, notepad will work in a pinch, but idle or pythonwin are MUCH better free options. I suppose this is a drawback with Python if you are using the wrong tools to edit your code. With most languages the blocks are marked with clearly visible characters.

On Thu, 2004-07-15 at 21:24, Adelein and Jeremy wrote: > --- Lloyd Kvam <pythonTutor at venix.com> wrote: > > print "\n" > > print "TRANSACTION COMPLETED" > > > > You need quotes around string literals, pieces of text that were > > never assigned a name. > > >> She did have quotes. > This is what you apparently saw: >> > > def MenuOption(self, option, Account): > > > if option == 1: > > > print \n > > > Account.deposit(input(Deposit amount: $)) > > > print \n > > > print TRANSACTION COMPLETED > > > print \n > > > elif option == 2: > > > print \n > > > Account.withdraw(input(Withdraw amount: $)) > > > print \n > > > print TRANSACTION COMPLETED > > > print \n > > > elif option == 3: > > > print \n > > > Account.trans() > > > print \n > > > print QUERY COMPLETED > > > print \n >> This is what I saw (there are single quotes around each string > literal): >> def MenuOption(self, option, Account): > if option == 1: > print ‘\n’ > Account.deposit(input(“Deposit amount: $”)) > print ‘\n’ > print ‘TRANSACTION COMPLETED’ > print ‘\n’ > elif option == 2: > print ‘\n’ > Account.withdraw(input(“Withdraw amount: $”)) > print ‘\n’ > print ‘TRANSACTION COMPLETED’ > print ‘\n’ > elif option == 3: > print ‘\n’ > Account.trans() > print ‘\n’ > print ‘QUERY COMPLETED’ > print ‘\n’ >> > I suspect the elif problems come from using a mix of tabs and > > spaces in > > lining things up. Python uses 8 spaces per tab, but your editor > > could > > be different. If your editor was using tab stops of four spaces, > > you > > could mix tabs and spaces in a way that looked reasonable in your > > editor, but looks unreasonable to the Python compiler. >> If indeed that is the problem, then this is also the problem with the > print statement. I see no other error - could be missing something > though. >> HTH > Jeremy >> ___________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com

Lloyd Kvam Venix Corp. 1 Court Street, Suite 378 Lebanon, NH 03766-1358

voice: 603-653-8139 fax: 801-459-9582



More information about the Tutor mailing list