In the context of this exercise which introduces strings, when should single or double quotes be used for a string?
Answer
Typically, either single or double quotes can be used interchangeably for creating a string. However, in certain situations, the type of quotes can matter, depending on the content of the string itself. If the string contains single quotes, it can be more convenient to wrap the entire string in double quotes. And if the string contains double quotes, you might use single quotes to wrap the string instead.
The reason for this is that each string starts and ends when a pair of quotes is encountered. If there is another matching quote within the string, that may end the string prematurely, causing errors.
# Examples of valid strings
print("I'm coding!")
print('The computer printed the string "Hello!"')
# Example of invalid string
print("A common phrase in programming is "Hello world"")
There is no difference unless you have words like (It’s, they’re, etc…)
but you can always use '.
# EXAMPLE
# the following two lines print Hello World! to the screen
print('Hello World!')
print("Hello World")
# the following two lines prints It's a sunny day
print('It\'s a sunny day')
print("It's a sunny day")
What if you had to use two types of quotes inside of a string? For instance if I wrote (example: Bobbi told me, “Delia said, ‘This will never work.’ ”)?
Well, you could use triple-quotes, but that would (IMHO) be a misuse of triple-quotes. I think that the Pythonic solution would be to escape (backslash) the double-quotes:
print(""" "Delia said, 'This will never work.' " """) # works, but ugly
print(" \"Delia said, 'This will never work.' \" ") # better, I think
Output:
"Delia said, 'This will never work.' "
"Delia said, 'This will never work.' "
One thing to consider is if moving into other languages, there is a distinction between " and '. I’m still new myself, but also wanted to develop good habits with my choice on this. I know I want to get into C# later on, and so I’m going to default to using " instead of '. Just something to think about for building a habit.
How about using triple quotes in print to allow the use of single as well as double quotes within the same sentence?? Isn’t that easier for beginners??
Yes, in Python, there is no difference between using ' or " to surround a string. This is because Python does not have a char type and any characters are just strings with a length of 1.
That would not be an escape, see the earlier response for using escape in strings-
You can use the \ backslash escape character to use escape sequences e.g. "\n" for a newline or to escape special characters such as quotes so that they are printed instead of being interpreted, e.g.
print('Here\'s an example')
For the given example we don’t have to use \ and we can instead use different quotes to create our string literal (as per the original example) but when you’re mixing the two using escape may be easier.
Practically you’d be looking to make it as readable as possible and ideally to be consistent in style with the rest of the project.
advantage to using double quotes when you are creating a print call with words or sentences is that it would eliminate some of the issues if you had an apostrophe in your printed quotes python will think you are ending your quote there not using it as an apostrophe
Have I understood this correctly, the \" is a special character that tells python to print render a " instead of assuming that it is a close of the original string in the print function?
It’s not a special character itself, it’s just interpreted to mean something different, in this example yes instead of closing the string literal it’s interpreted as a ". More generally this is known as an escape sequence which is replaced by one or more actual characters inside the actual string. You might already be familiar with one or two like \n creating newlines or \t inserting tab characters.
So it’s a character replacement that’s separate to the actual printing (exactly how the characters are represented when printed is platform dependent).
What are some common mistakes or pitfalls that new coders should watch out for when using quotes or defining strings in their code? Are there any best practices or tips that you would recommend for avoiding these mistakes?