Johnnerz
Johnnerz

Reputation: 1425

Printed lines acting strange in Python

I am tring to print out a load of lines in a few loops and I want to find a way of printing out the lines without using \n as that adds an empty line after each loop is completed. A sample of the code i have is as follows:

def compose_line6(self, pointers, pointers_synset_type):    
    self.line6 = ''
    for A, B in zip(pointers, pointers_synset_type):
        self.line6 += 'http://www.example.org/lexicon#'+A+' http://www.monnetproject.eu/lemon#pos '+B+'\n'
    return self.line6

def compose_line7(self, pointers, pointer_source_target):
    self.line7 = ''
    for A, B in zip(pointers, pointer_source_target):
        self.line7 += 'http://www.example.org/lexicon#'+A+' http://www.monnetproject.eu/lemon#source_target '+B+'\n'
    return self.line7

def compose_contents(self, line1, line2, line3, line4, line5, line6, line7):
    self.contents = '''\
    '''+line1+'''
    '''+line2+'''
    '''+line3+'''
    '''+line4+'''
    '''+line5+'''
    '''+line6+'''
    '''+line7+''''''
    return self.contents

def print_lines(self, contents):
    print (contents)

When i print these this is what happens:

        http://www.example.org/lexicon#13796604 http://www.monnetproject.eu/lemon#pos n
http://www.example.org/lexicon#00603894 http://www.monnetproject.eu/lemon#pos a
http://www.example.org/lexicon#00753137 http://www.monnetproject.eu/lemon#pos v
http://www.example.org/lexicon#01527311 http://www.monnetproject.eu/lemon#pos v
http://www.example.org/lexicon#02361703 http://www.monnetproject.eu/lemon#pos v

        http://www.example.org/lexicon#13796604 http://www.monnetproject.eu/lemon#source_target 0000
http://www.example.org/lexicon#00603894 http://www.monnetproject.eu/lemon#source_target 0401
http://www.example.org/lexicon#00753137 http://www.monnetproject.eu/lemon#source_target 0302
http://www.example.org/lexicon#01527311 http://www.monnetproject.eu/lemon#source_target 0203
http://www.example.org/lexicon#02361703 http://www.monnetproject.eu/lemon#source_target 0101

And i would like it like this:

http://www.example.org/lexicon#13796604 http://www.monnetproject.eu/lemon#pos n
http://www.example.org/lexicon#00603894 http://www.monnetproject.eu/lemon#pos a
http://www.example.org/lexicon#00753137 http://www.monnetproject.eu/lemon#pos v
http://www.example.org/lexicon#01527311 http://www.monnetproject.eu/lemon#pos v
http://www.example.org/lexicon#02361703 http://www.monnetproject.eu/lemon#pos v    
http://www.example.org/lexicon#13796604 http://www.monnetproject.eu/lemon#source_target 0000
http://www.example.org/lexicon#00603894 http://www.monnetproject.eu/lemon#source_target 0401
http://www.example.org/lexicon#00753137 http://www.monnetproject.eu/lemon#source_target 0302
http://www.example.org/lexicon#01527311 http://www.monnetproject.eu/lemon#source_target 0203
http://www.example.org/lexicon#02361703 http://www.monnetproject.eu/lemon#source_target 0101

Help would be great thanks

Upvotes: 0

Views: 120

Answers (3)

Steve Barnes
Steve Barnes

Reputation: 28370

use:

def compose_contents(self, line1, line2, line3, line4, line5, line6, line7):
    self.contents = '\n'.join([line1, line2, line3, line4, line5, line6, line7])
    return self.contents

and:

print contents,

Note the comma at the end!

Upvotes: 2

dav
dav

Reputation: 1219

You need to close your quotes before you add newlines:

'''\
    '''+line1+'''
    '''+line2+'''
    '''+line3+'''
    '''+line4+'''
    '''+line5+'''
    '''+line6+'''
    '''+line7+''''''

You escaped the first newline, but it is still adding 4 spaces behind line1. Try this:

print("\n".join([line1, line2, line3, line4, line5, line 6, line7]))

Upvotes: 2

Michał Fita
Michał Fita

Reputation: 1329

In Python 2.x it will be print "Text", - nothing after comma.

In Python 3.x it will be print("Text", end="") - just special argument to print() function.

Upvotes: 1

Related Questions