I want to print a double strand of DNA in the python shell

3

I'm trying to print a nucleotide sequence with python as follows:

tatatatatatatatatatatatatatatatatatatata
||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||
atatatatatatatatatatatatatatatatatatatat

The problem is that when I use a larger string it looks like this:

tatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatata |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| atatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatat

I wanted to know if you can break the line so that the output is formatted, so that it fits according to the size of the window like this:

ps: The code I used was:

>>> e = 'ta'*200
>>> f = 'at'*200
>>> g = '|'*400
>>> print('{}\n{}\n{}\n{}'.format(e,g,g,f)) 
    
asked by anonymous 31.10.2016 / 14:46

1 answer

1

There is no right answer to this question.

Your output is formatted this way because of the size of the window. If the window was large enough you could see your output normally.

Contentious you can show your output in several bits for example:

tatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatata
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
atatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatat

tatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatata
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
atatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatat

To do this you can use this form

def split_input(string, chunk_size):
    num_chunks = len(string)/chunk_size
    if (len(string) % chunk_size != 0):
        num_chunks += 1
    output = []
    for i in range(0, int(num_chunks)):
        output.append(string[chunk_size * i:chunk_size * (i+1)])
    return output

def printDna(dna1, dna2, tamanho):
    chunks1 = split_input(dna1, tamanho)
    chunks2 = split_input(dna2, tamanho)

    for i in range(0, len(chunks1)):
        print(chunks1[i])
        print('|'*tamanho)
        print(chunks2[i])
        print()

printDna(e, f, 80)

See working in ideone

    
31.10.2016 / 15:18