본문 바로가기

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

3강 In-class Questions

1번

더보기

 

Str끼리는 덧셈이 가능하다. 덧셈을 하게 되면 앞 문자열에 뒷 문자열이 그대로 이어진다.

순서대로 따라가보면...

 

new_str = ""
new_str += s[-1]		#s[-1]은 맨 끝 문자인 2, new_str = '2'
new_str += s[0]			#s[0]은 첫 문자인 6, new_str = '2'+'6'
new_str += s[4::30] 		#s[4::30]은 " ", new_str = '26' + ' '
new_str += s[13:10:-1]		#s[13:10:-1]은 13번째 문자, 12번째 문자, 11번째 문자를 포함 - new_str = '26 ' + '100' 
print(new_str)			#26 100

 

 

 

2번

더보기

 

indent가 잘못 되어있어서 이대로 돌리면 오류가 나는 코드.

아마도 아래의 코드를 의도했을 것이다.

s1 = "mit u rock"
s2 = "i rule mit"
if len(s1) == len(s2):
    for char1 in s1:
        for char2 in s2:
            if char1 == char2:
                print("common letter")
                break

 

첫 번째 if 구문은 어차피 True니까 볼 필요가 없다. 그 밑에 있는 이중 for 문을 살펴보면

 

s1에 있는 각각의 문자들에 대해서,

's2의 문자 하나하나와 대조해서, 일치하면 "common letter"를 출력하고 / 다음 문자로 넘어가라 (break)

라는 뜻이 된다.

 

s1의 문자들중 'm', 'i', 't', ' ', 'u', ' ', 'r' 의 7개 문자가 s2에 있으므로 common letter은 총 7번 출력된다.