On Wed, Apr 10, 2013 at 2:24 AM, <thomasancill...@gmail.com> wrote: > For system version I get this: > 2.7.2 (default, Oct 11 2012, 20:14:37) > [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)]
Lovely! Perfect. > But, what I don't understand exactly is the while statement. I've been > looking around a lot lately and notice that people say to use for instance: > > while restart: or while true: or while restart = true: while x: y will check whether x "feels trueish", and if it does, will execute y, then go back and check x again. The general principle is that something is true and nothing is false - for instance, 0 and 0.0 are false, while 42 and 0.143 are true. Same goes for lists and such; an empty list is false, a list with something in it is true. When you make an actual comparison, you'll get back a result that, normally, will be one of the strict bool objects True and False. For instance, the expression: restart == "true" will be True if restart has the string "true", and False if it has any other string. > What makes a statement true? Is there a way to return a true or false > message. My method was to ask the user to type "true" and if that print > statement matched restart = "true" then the loop would continue but i imagine > there is a better way then matching strings and integers like i have been. You can print anything, even the boolean values! :) Try it! Your method works fine. Since you're getting something with raw_input(), you're working with strings; whatever the user enters, that's what you work with. You could make it more friendly by checking just the first letter and case insensitively, and making it "Continue? Y/N", but that's optional. > Also what confuses me is that python doesn't use brackets. How do I contain > all of my if/else statements into one while loop? Do I have to indent each > line of code and extra indentation? I'm used to highschool doing c++ and java > when I would just say: > > while (x<3) > { > if () > else () > } It's conventional in C++ to indent every block of code. int main() { //Indent one level initialize() while (...) { //Indent two levels do_stuff() if (...) { //Indent three levels do_more_stuff() } do_less_stuff() } close_all() } Now, just delete all those lines with nothing but braces. You can still see the program's logical structure: int main() //Indent one level initialize() while (...) //Indent two levels do_stuff() if (...) //Indent three levels do_more_stuff() do_less_stuff() close_all() This is how Python works. (And it's almost legal Python syntax, too. Add a few colons, fix the comments, pretty much done.) For better or for worse, Python depends on the indentation; but 99%+ of the time, you would have that indentation even if it didn't matter. (Personally, I prefer explicit braces. The duplicated information at times helps catch bugs, and sometimes I format code according to a logical structure that doesn't necessarily match its physical structure. It's a freedom I don't often make use of, but it's one that Python denies me... as I said, for better or for worse. There are those who argue that that's a freedom I shouldn't have.) ChrisA -- http://mail.python.org/mailman/listinfo/python-list