Adam Urbas said unto the world upon 05/30/2007 11:01 AM: > I can't exactly show you the error message anymore, because the program is > now screwed up in so many ways that I can't even get it to do the things it > used to. > > It says things like ERROR: Inconsistent indentation detected! > 1) Your indentation is outright incorrect (easy to fix), OR > 2) Your indentation mixes tabs and spaces. Then it tells me to untabify > everything, which i did and it still gives this message. I've started > completely over with the exact same indentation and that one works. > > Oh my gosh this gmail is a fricken crack head... none of this stuff was > here > last night. I have no idea what was going on then, but everything you guys > said is right here. The plain text is right next to the Check spelling, > the > reply to all is right above send and save now and in the corner near the > little arrow. Well, it's working now. > > Ok, so if i have a section of code that is: > > answer=(2+3): > print "answer", answer > > so for the code above I would put: (I think I would have to have the two > numbers and the addition thing in there wouldn't I; I saw something like > this on Alan's tutorial last night.) > > def answer(2,3): > answer=(2+3) > print "answer",answer > > That is obviously not right.: > > There's an error in your program: > invalid syntax > > when it says that it highlights the 2: def answer(2+3): > > Ok I think I understand these now. Thanks for the advice. I have this > now: > > def answer(): > print("answer") > answer() > > It works too, yay! > Thanks, > > Au >
Adam, Glad you are sorting out the gmail---in the long run, plain text will make this all much easier than what you had before :-) Your answer function definition above is saying something like this: make answer the name of a function that takes no parameters, and, when called, have it execute a print. This: > def answer(2,3): > answer=(2+3) > print "answer",answer doesn't work, as you are trying to set the values of the two parameters to 2 and 3 in the function definition itself. That's not how parameters work. The definition of a function sets the parameters up as named `slots' that function calls will give values to. (There are, as Andre pointed out, more details, but let those aside for now and focus on the simplest cases.) This: def answer(): answer=(2+3) print "answer",answer would work, but it isn't much different than the code that did work. Try this: def answer(my_first_parameter, my_second_parameter): value = my_first_parameter + my_second_parameter print "Answer:\t", value (I wouldn't use the cumbersome names `my_first_parameter', etc. in real code, but perhaps they help keeping track of what is going on in early stages.) That says, in effect, let answer be a function which takes two positional parameters, adds them, and prints the result in an informative way. >>> answer(40, 2) Answer: 42 >>> answer("A string", " and another string") Answer: A string and another string >>> These work because the function definition ensures that the first parameter (40, in the first case above) will, as far as the function is concerned, be called my_first_parameter. (Likewise for 2 and my_second_parameter.) Does that help? Brian vdB _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor