Как передать строку переменной, если найдена ошибка индекса? Рассмотрим код:Присвоить переменную, если индекс индекса за пределами диапазона ошибка python
for l1, l2 in zip(open('file1.list'), open ('file2.list')):
a=fasta1[int(l1)]
b=fasta2[int(l2)]
alignments = pairwise2.align.globalxx(a,b)
top_aln = alignments[0]
aln_a, aln_b, score, begin, end = top_aln
print aln_a+'\n'+aln_b
outfast1 = aln_a
outfast2 = aln_b
Ряд этих функций должны быть импортированы (pairwise2 выравнивания), но file.lists одиночные колонки текстовые файлы с одной последовательности идентификатора (текст и цифры) в строке, которые используются для извлечения из fasta1 и fasta2 текстовых файлов.
В принципе, я хочу try:
каждую команду списка (a=fasta1[int(l1)]
), и если нет ошибок (идентификатор находится в диапазоне), сделать в обычном режиме (присвоение переменных а и Ь для этой итерации), но если нет, то назначить «а» переменная некоторые замещающий текст, как «GGG»:
for l1, l2 in zip(open('file1.list'), open ('file2.list')):
try:
a=fasta1[int(l1)]
except IndexError,e:
a="GGG"
continue
try:
b=fasta2[int(l2)]
except (IndexError):
b="CCC"
continue
Этот код не совсем работа (при интеграции с кодом выше), что не удивительно, учитывая мое отсутствие питона доблести, но я не» Знаю, почему. Я действительно не получаю текстового вывода, несмотря на вызовы печати ... Я думаю об этом праве? Если в индексе нет ошибки, я просто хочу, чтобы он продолжался и выполнял парное выравнивание (с первыми переменными a и b), а затем печатал некоторый текст в stdout.
Любые идеи?
Правильно ли вы в отпечатке? Является ли инструкция '' '' '' '' '' '' '' '' '' '' '''''''' – wwii
Вы понимаете, что если ['' 'continue'''] (https://docs.python.org/3/reference/simple_stmts.html#the-continue-statement) выполняется, все после его пропускания и начинается следующая итерация? – wwii
Я думал, что это должно быть согласовано с try/except? Python не отмечает эту структуру отступа, но не работает obv. Я хочу продолжить, если нет индексной ошибки – user95146