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

Asked

Viewed 105 times

3

I’m trying to print a sequence of nucleotides with python as follows:

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

the problem is that when I use a larger sequence it looks like this:

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

I wanted to know if there is a way to break the line so that the result is formatted, so that it fits according to the size of the window this way:

ex janela lista ex janela lista 2

ps.: the code I used was:

>>> e = 'ta'*200
>>> f = 'at'*200
>>> g = '|'*400
>>> print('{}\n{}\n{}\n{}'.format(e,g,g,f)) 
  • I am convinced that the only way even is to separate into several pieces. If it is not, you have to clarify what is the result you expect.

  • Thank you for giving more information. I have not edited my reply because even with the additional information I have no other solution. You can wait for other answers

  • I was searching how to return the size and width of the window using the 'os' module, only it only works when the program is open in cmd, not in the shell... thanks anyway

1 answer

1


There is no right answer to this question.

Your output appears formatted this way because of the size of the window. If the window was large enough, you could see its output normally.

Content Voce can show its output in multiple 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 it working on ideone

  • Exactly, the result appears formatted depending on the size of the window, but when, for example, I have printed any list, the result fits the size of the window. I wanted it to happen with my result

  • Where is print('|'*tamanho) should be print('|'*len(chunks1[i])). I then edit, I do not know if the answer was as OP wanted or not

Browser other questions tagged

You are not signed in. Login or sign up in order to post.