On Saturday 18 June 2011 13:37:38 Steven D'Aprano wrote: > Lisi wrote: > [...] > > > Fair enough. the closing quotation marks are not there. > > > > But when they _are_ there, i.e. when that stanza reads: > > > > target.write """ > > line1\nline2\nline3\n > > """ > > This is not the problem, but I just thought I'd mention that it's a bit > silly to go to the trouble of using newline escape characters inside a > triple-quoted string! You can do it if you want, but this would be more > naturally written as: > > """ > line 1 > line 2 > line 3 > """ > > Now, on to your actual error: > > I get: > > > > lisi@Tux:~/Python/LearnPythonTheHardWay$ python extra-credit_16a.py > > learning.txt > > File "extra-credit_16a.py", line 38 > > """ > > ^ > > SyntaxError: invalid syntax > > This has nothing to do with the triple quote marks. Simplify the code by > shrinking the text inside the quotes to a single line, and you get: > > target.write "..." > > > and you will get the same SyntaxError. Can you see the problem? No > brackets! You need to include parentheses to call the write method: > > target.write("...") > > > Then you can expand the string to use a triple-quote: > > target.write(""" > line 1 > line 2 > line 3 > """) > > and all should be good.
Thanks very much, Steven. I did at some stage in the dim and distant past try brackets, but I probably put them in the wrong place. But I still can't write to the file. If I do: target.write(line1) The value of the variable line1 is written to the file. But if I put the three variables into the write command, what gets printed is the name of the variables, not their values. I am clearly still doing something wrong. But I can't see what. I have even tried to see whether ''' gave a different result from """, but it doesn't. I have accepted KWrite's idea of what the white space should be, and I have adapted it to all the variations I can think of. At the moment it is: target.write(""" line1 line2 line3 """) I am beginning to feel paranoid! I simply can't see in what way that differs from yours. In case it is relevant, I am using Python 2.5.2 (r252:60911, Jan 24 2010, 14:53:14) [GCC 4.3.2] on Debian 5 with a 2.6.26 kernel. I was trying not to move on until I had mastered everything in this section, but I am beginning to think that that is foolish. I am getting myself more and more bogged down, and it might be more sensible to pass on and come back to it. Again, thank you for your very prompt help. I have, I hope, finally _fully_ taken in that many commands need (). And that it is possible to get a new line just by giving a new line - without the explicit instruction. I.e., hopefully, I have learnt something. Lisi _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor