본문 바로가기

MIT challenge/6.0001 - 파이썬을 통한 컴퓨터과학 입문

5강 In-class Questions

1번

 

더보기

 

함수의 입력값중 ('cloudy')는 괄호 안에 있어도 tuple이 아닌 string 취급이다. 원소가 하나인 tuple을 만들고 싶었다면 그 다음 입력값처럼 쉼표를 넣어줘야 한다. ('cold',)

 

그래서, first = 'c' + 'cold' 가 되고, 출력값은 ('sunny', 'ccold') 가 된다.

 

 

 

2번

 

더보기

for thing in L은 리스트 안에 있는 각 원소들을 대상으로 Loop를 실행하게 된다.

이때 42가 세 번째 원소로 있기 때문에 elif~ 조건을 만족하고, 리스트의 두 번째 원소는 "everything"으로 바뀐다.

리스트의 네 번째 원소는 0으로 if~ 조건을 만족하고, 이에 따라 L[thing], 즉 L[0]이 'universe'로 바뀐다.

 

 

결과적으로 ['universe', 'everything', '42', '0'] 이 된다.

 

3번

 

더보기

L4는 ['re', 'mi']이다. 여기서 L3.extend(L4)를 실행하면 L3 = ['do','re','mi']가 된다.

L3.sort()를 실행하면 abc 순서대로, L3 = ['do','mi','re']가 되고, del(L3[0])에서 L3 = ['mi','re']가 된다.

마지막으로 L3.append()는 괄호 안에 있는 원소를 추가하라는 메소드이므로, ['fa','la']라는 리스트가 하나의 원소로 추가되어 정답은 1번이 된다.

만약 마지막 메소드가 L3.extend() 였다면 2번이 답이 되었을 것이다.

 

 

4번

 

더보기

 

L1.append ('juice')가 L1을 ['bacon', 'eggs', 'juice']로 만든다.

한편, 리스트는 Mutable하다. 따라서 brunch = L1은 brunch라는 새로운 리스트를 만든 것이 아니라, brunch가 L1이 참조하고 있는 리스트를 참조하게 한 것이 된다.

이에 따라 brunch.extend(L2)를 하면 L1.extend(L2)와 같은 일이 일어나고, 결국 brunch의 값은 2번이 된다.