2017-09-29 1 views
2

여러 개의 조건을 사용하여 for 루프가 문자열 목록을 반복하도록 만드는 방법이 있습니까? 문자열로 구성된 목록의 각 요소를 반복해야하는 for 루프를 작성하려고하지만 for 루프가 각 목록의 반복 가능한 각 조건을 작동하지 않는 것처럼 보입니다. 예를 들어for 루프에서 여러 if 문을 사용할 수 있습니까?

,

나는 그들의 자신의 내용에 차이가 많은 문자열이이 예는 (DNA가 'T'대신 'U'의 있고, RNA는 'U'는 (대신에 'T'와 알 수없는의이 .

Result: DNA, RNA, UNK, RNA, UNK 

I 얇은 :도 'T'도 'U'또는 다른 문자가 UNK) 입력은 출력은 DNA 서열의 타입이어야 ['tacaactgatcatt','aagggcagccugggau','gaaaaggcaggcg','guaccaguuu'.'acggggaccgac']

이다

내 실수는 for 루프에서 중단 문장을 잘못 사용했기 때문에 발생하지만 실수를 해결하는 방법을 알 수는 없습니다.

seq = list(input('Enter your sequence:').upper()) 

for obj in seq: 
    if 'U' not in obj and 'T' in obj: 
     print('Result: DNA') 
     break 
    if 'U' in obj and 'T' not in obj: 
     print('Result: RNA') 
     break 
    else: 
     print('Result: UNK') 

답변

0

당신은 휴식 문을 사용하여 반복을 중지됩니다

이것은 내가 지금까지 무엇을 얻을 수 있습니다. 그것은 각 개체를 반복하지 있기 때문에

seq = ['tacaactgatcatt', 'aagggcagccugggau','gaaaaggcaggcg','guaccaguuu', 
'acggggaccgac'] 

upp_seq = [obj.upper() for obj in seq] 

result = [] 

for obj in upp_seq: 
    if 'U' not in obj and 'T' in obj: 
     result.append('DNA') 
    elif 'U' in obj and 'T' not in obj: 
     result.append('RNA') 
    else: 
     result.append('UNK') 

print(result) 

# print: ['DNA', 'RNA', 'UNK', 'RNA', 'UNK'] 
+0

은 내가 break 문을 피함으로써 얻을 것은 그것이 여러 결과를 반환하기 때문에, 그것이 무엇 retutn해야 할 것은 문자열의 단지 유형은 조건에 따라이며, 반복의 또 다른 종류의, 어쩌면이다 목록에. – user7491985

+0

목록의 각 요소에 대한 결과를 인쇄 하시겠습니까? – Eduardo

+0

예. 단 한 개의 문장으로 표시됩니다 (예 : 결과 : DNA, RNA, UNK, RNA, UNK. – user7491985

관련 문제