In response to another question of mine, someone suggested that I avoid long lines in the code and to use PEP-8 rules when writing Python code. One of the PEP-8 rules suggested avoiding lines which are longer than 80 characters. I changed a lot of my code to comply with this requirement without any problems. However, changing the following line in the manner shown below breaks the code. Any ideas why? Does it have to do with the fact that what follows return command has to be in a single line?
The line longer that 80 characters:
def __str__(self):
return "Car Type \n"+"mpg: %.1f \n" % self.mpg + "hp: %.2f \n" %(self.hp) + "pc: %i \n" %self.pc + "unit cost: $%.2f \n" %(self.cost) + "price: $%.2f "%(self.price)
The line changed by using Enter key and Spaces as necessary:
def __str__(self):
return "Car Type \n"+"mpg: %.1f \n" % self.mpg +
"hp: %.2f \n" %(self.hp) + "pc: %i \n" %self.pc +
"unit cost: $%.2f \n" %(self.cost) + "price: $%.2f "%(self.price)
Python doesn’t let you end a line inside an expression like that; the simplest workaround is to end the line with a backslash.
In this case, the backslash must be the last character on the line. Essentially, it means “ignore the fact that there’s a newline here”. Or in other words, you’re escaping the newline, since it would normally be a significant break.
You can escape an otherwise significant newline at any time with a backslash. It would be silly, but you could even do
so that
foo()would return 1. If you didn’t have the backslash there, the 1 by itself would cause a syntax error.