Последовательность ДНК Питон не печатает - PullRequest
0 голосов
/ 28 сентября 2018
import random


def pair():
    base = random.choice('AGCT')
    if base == 'A':
        base = base + 'G'
    elif base == 'G':
        base = 'A' + base
    elif base == 'C':
        base = base + 'T'
    else:
        base = 'C' + base
    return base


def sequence():
    pair()
    n = random.randint(1, 3)
    print(base * n)


def main():
    pair()
    sequence()
    pair()
    sequence()
    pair()
    sequence()


main()

Мне нужно создать три последовательности в главной функции, объединить их, чтобы сформировать большую последовательность, и распечатать результат.

Но я продолжаю получать сообщение об ошибке, почему?
Traceback (последний последний вызов):

  File "/Users/nicole/Desktop/CS/dna.py", line 33, in <module>
    main()
  File "/Users/nicole/Desktop/CS/dna.py", line 27, in main
    sequence()
  File "/Users/nicole/Desktop/CS/dna.py", line 23, in sequence
    print(base * n)
NameError: name 'base' is not defined

1 Ответ

0 голосов
/ 28 сентября 2018

Вам необходимо присвоить значение base.В вашем случае это будет выглядеть примерно так:

def sequence():
    base = pair()
    n = random.randint(1, 3)
    print(base * n)

И вам следует избегать многократного использования имени переменной, чтобы вам было легче читать код.:)

...