Lesson 1 followup: string tips A student asked: > how do you know when the command has 'ended' ? Is it just by > putting a hard return to the next line, as in the extended example that > includes user input? If so, what if I wanted to print two lines that had a > hard return between them? For example, if I wanted the answer to "What is > your name" to be printed on the next line (which would look better)? I > imagine there's an escape character to signify that....? Oh, all you students asking questions that get way ahead of the lessons. :-) But they're great questions! Python does indeed use the newline to indicate the end of a statement (unlike many other modern languages that use punctuation like ; and { } for such details). So what about printing strings with newlines? There are two ways. First, you can use \n to indicate a newline. So if you want to print out three words each on their own line, you could say print "one\ntwo\nthree" Nearly every modern programming language understands \n, so it's worth learning it even if you eventually switch to a language other than Python. But Python has an even nicer way: triple quotes. You can say: print """one two three""" -- start with three double quotes, or three single quotes, and your string can include as many newlines as you need. Triple-quoted strings are great for when you're doing things like generating web pages -- you can take your raw HTML and paste it into a single string and print it out with one print statement. They're also great for documentation and for showing instructions to the user. If anyone's feeling overwhelmed by all this, don't worry about things like triple quotes and \n! These are more advanced topics and you can always pick up stuff like that later on after you're comfortable with the basics. They won't be on the quiz. :-) > My other question is about that space. If the space in the output "Hello, > Name" is added by the comma, then the space between , and name is a "null > character"? (Yes, indeed it is; I changed ", name" to ",name" and I still > got "Hello, Name".) So does that mean that the space between the Python > function signifier and the remaining content is for human-readability > purposes, but otherwise not strictly required? That's right -- it's purely for human readability, and many programmers don't put spaces after commas. Another student asks: > Is there a benefit to using single quotes instead of double in Python? > Are single quotes more literal? And another: > I am a beginner myself, but I read somewhere recently that there is > actually a disadvantage to using single quotes instead of double quotes. > If you start a string with a a single quote, and the string contains an > apostrophe (example: 'Here's your milk.'), Python will see the > apostrophe as the end of the string ('Here' would be where it would stop > reading the string). I agree with that, though it's also not that uncommon to need strings that include double quotes inside them, so you might have to switch back and forth, depending on what you're quoting. If you have a string that includes both single and double, we've already talked about using \ to escape them: print "This is Akkana's \"Hello world\" program" but that's another place where triple-quotes are great: print """This is Akkana's "Hello world" program""" Much easier to read! Triple single quotes ''' would have worked just as well.