0

Exercise:

There's too much repetition in this file. Use strings, formats, and escapes to print out line1, line2, and line3 with just one target.write() command instead of 6.

Code from the book:

from sys import argv script, filename = argv print "We're going to erase %r." % filename print "If you don't want that, hit CTRL-C (^C)." print "If you do want that, hit RETURN." raw_input("?") print "Opening the file..." target = open(filename, 'w') print "Truncating the file. Goodbye!" target.truncate() print "Now I'm going to ask you for three lines." line1 = raw_input("line 1: ") line2 = raw_input("line 2: ") line3 = raw_input("line 3: ") print "I'm going to write these to the file." target.write(line1) target.write("\n") target.write(line2) target.write("\n") target.write(line3) target.write("\n") print "And finally, we close it." target.close() 

My code:

from sys import argv script, filename = argv print "We're going to erase %r." % filename print "If you don't want that, hit CTRL-C (^C)." print "If you do want that, hit RETURN." raw_input("?") print "Opening the file..." target = open(filename, 'w') print "Truncating the file. Goodbye!" target.truncate() print "Now I'm going to ask you for three lines." line1 = raw_input("line 1: ") line2 = raw_input("line 2: ") line3 = raw_input("line 3: ") print "I'm going to write these to the file." target.write("%s\n%s\n%s\n") %(line1,line2,line3) print "And finally, we close it." target.close() 

My solution doesn't work. I searched with Google to see if I can solve this exercise with the things I find there but I haven't managed to come out with the correct code. What is the solution to this exercise?

1
  • 6
    target.write("%s\n%s\n%s\n" % (line1, line2, line3)) - You had the arguments outside of the write. Commented Jan 12, 2012 at 14:01

1 Answer 1

6

What you're doing right now is applying the % formatting operator to the result of the expression

target.write("%s\n,%s\n,%s\n") 

What you want to do is apply the % operator to the string

"%s\n%s\n%s\n" // Note that the code from the book doesn't print commas 

and then pass the result of that to target.write().

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.