1번

실습 문제

M = M.split()

cnt = {"aaa" : 0, "bbb" : 0, "ccc" : 0, "ddd" : 0, "eee" : 0}

for i in cnt.keys():
    cnt[i] = M.count(i)

cnt = dict(sorted(cnt.items(), key=lambda x: x[1], reverse=True))

for i in cnt.keys():
    if (cnt[i] == 0):
        continue
    print("%s %d" %(i, cnt[i]))

이론 문제

이론문제 

1. 딕셔너리의 키에 리스트를 넣을 수 있다 (x) (1점)
2. 파이썬에서 x=7 이라할때, 정수 리터럴 7의 식별번호와 x의 식별번호는 같다(x) (1점)
3. 딕셔너리도 리스트처럼 순서를 정해서 출력할 수 있다(o) (2점)
4. 튜플은 리스트와 같이 순서가 있어서 인덱스로 접근이 가능하고, 
최대값도 찾을 수 있습니다. 리스트와 큰 차이가 있는데, 
그것은 변경불가능(immutable), 즉 값을 변경할 수 없다는 특성입니다. 
하지만 순서는 바꿀 수 있습니다.(x) (2점)
5. 파이썬에서 모든 객체는 메모리를 차지하고, 식별번호를 가진다. (o) (1점)
6. for i in 'banana': print(i)를 하면 'banana'가 split되어 출력된다. (o) (1점)
7. strip()으로 공백을 제거할 때, 개행문자('\\n')는 공백으로 취급되어 제거된다. (o) (2점)
8. 딕셔너리에 items()를 실행하면 키와 값이 쌍을 이루는 '튜플(tuple)'이 저장된 ‘리스트’가 반환된다. (x) (2점)
9. test = ("가" "나" "다") test 변수는 튜플로 선언된다.(x) (2점)
10. t[:]은 아무것도 출력이 안된다. (x) (1점)

2번

실습 문제

birth = input("연도와 날짜를 입력해 주세요 :")
n = int(input("n :"))

birth = birth[:4] + birth[5:7] + birth[8:10]

sum = 0
rest = 0

for i in range(8):
    if (i < n):
        sum += int(birth[i])
    else:
        rest += int(birth[i])
if (rest == sum):
    print("동점입니다")
else :
    print(birth[n:] if rest > sum else birth[:n])

이론 문제

 Q. 다음 선지 중 옳지 않은 것을 모두 고르시오.

1. 문자열을 입력받을 때 score = ‘Jake’s score is 90.’ 라고 입력 받으면 오류가 발생하지 않는다. 
//작은 따옴표 안에 작은 따옴표가 들어가기 때문에 옳지 않음 
2. 여러 줄의 문자열을 변수에 대입하여 출력하고자 한다. 변수 입력할 때 문자열의 줄을 바꾸기 위해서 아래 예시처럼 이스케이프 코드인 \\n을 삽입하는 방식 말고도 다른 방식이 있다. 
ex)
a ='나는 sai 동아리부원이다\\n 나는 sa2쌓임조다'
print(a)
-------------------------------출력값------------------
나는 sai 동아리부원이다
나는 sa2쌓임조다
    
3. 파이썬으로 생성한 파일에 내용을 추가하고자 한다.  f=open(”내용 추가하고자 하는 파일명.txt”, ‘a’)로 열었을 때  파일의 내용 맨 첫 부분에 새로운 내용을 추가 시킬 수 있다. 
// a 모드 파일을 열으면 내용 맨 첫 부분에 새로운 내용 추가 불가 
4. a = "my name is sai", a[3:-7]을 출력하면"name "이다.

5. b = [1,2,3], b[2]+"sai"의 출력값은 3sai이다.
// b2 값이 정수형이므로 더할 수 없음 
6. extend(x) 함수는 원래의 리스트에 x리스트를 더하는 함수이다.

정답 : 1, 3, 5번