DataScience trainee

Road to DataScientist - 3.Python 기초문법_1_datatype 예제

Python 기초문법_1 예제


문제 1. 학점계산기

  • 영희는 1학기 중간고사의 학점을 알고 싶다.
  • 영희가 중간고사 때 수강한 과목과 학점은 다음과 같다.
글쓰기(3) 미적분학I(3) 영문법특강(2) 컴퓨팅사고력(3)
A C B+ A+
  • 과목이름 옆 괄호에 있는 숫자는 학점 수이고, 4.5만점 기준으로 성적이 계산된다.

    e.g. A+ : 4.5, A : 4.0, B+ : 3.5, B : 3.0, C+ : 2.5, C : 2.0, F : 0

  • 계산 공식은 다음과 같다.

    (3 x A + 3 x C + 2 x B+ + 3 x A+) / (3+3+2+3) = (3 x 4.5 + 3 x 2.0 + 2 x 3.5 + 3 x 4.0) / 11

문제2. 십의 자리 구하기

  • 숫자 하나를 입력받는다. (단, 입력하는 숫자는 무조건 두 자리 이상의 자연수)
  • 입력 받은 숫자의 십의 자리 숫자를 출력한다.

문제3. 학습 결과 출력하기

  • 머신러닝에서는 모델이 학습을 하게 되면, 학습에 주어진 인자들을 가지고 어떤 결과가 나왔는지 출력을 하게 됩니다.

  • 주어진 인자를 해당 하는 자리에 위치하는 출력문을 작성해보세요. (각 용어의 의미는 현재 중요하지 않습니다.)

다음 주어진 변수를 활용하여 문제3의 코드를 작성하세요.

epoch = 10
train_accuracy = 0.85; val_accuracy = 0.83; test_accuracy = 0.76
model_name = "ResNet44"
  • 다음은 출력문의 예시입니다.

“ResNet44 모델로 10 epoch를 돌려 학습시킨 결과는 학습 정확도 : 0.85, 검증 정확도 : 0.83, 테스트 정확도 : 0.76으로 나왔습니다”

문제4. 주민등록번호 가리기

  • 주민등록번호가 하나 주어집니다.
  • 요즘은 보안이 생명입니다. 뒤에 6자리를 *로 만들어서 소중한 정보를 지키세요!

문제4의 코드를 작성하세요. 밑의 4가지중 아무거나 사용하시면 됩니다.

oldman_id = "911210-1234567"
oldwoman_id = "900101-2111111"
youngman_id = "200112-3111111"
youngwoman_id = "200112-4123987"

문제 5. 호텔 예약 관리하기

  • “book” 리스트에는 고객들이 예약한 방 번호가 순차적으로 기록됩니다.

  • 만약에 고객이 예약을 취소한 경우에 해당 방 번호는 리스트에서 제거됩니다.

  • 현재 예약된 방 번호는 [103, 205, 405] 입니다.

  • 어제 새롭게 예약된 방 번호가 107, 203, 304, 507 일 때의 예약 목록을 출력하는 코드를 작성해보세요.

  • 오늘 205호, 304호를 예약한 손님이 예약을 취소하였을 때의 예약 목록을 출력하는 코드를 작성해보세요.

문제6. 키 순으로 줄세우기

  • 어떤 학급의 아이 5명의 키에 대한 정보가 주어집니다.
  • 이를 키가 작은 순서부터 큰 순서로 정렬하여 출력해주세요.

    heights = [175.3, 146, 184, 160, 167]

문제7. 도서 관리하기

  • 도서관에서 도서 관련 정보를 프로그램에 저장하려고 합니다.

  • 도서와 관련된 정보는 “책 제목 / 도서번호 / 도서분류” 가 있습니다.

  • 현재 도서는 총 5권이 있습니다. 5권에 해당하는 도서 정보는 다음과 같습니다. (실제 존재하는 도서가 아닌 예제를 위한 가상의 도서입니다)


“기초 파이썬 프로그래밍 0011 프로그래밍/IT”
“한 번에 배우는 데이터 분석 1234 프로그래밍/IT”
“40세에 돌아본 인생 3014 인문교양”
“집밥 101 9744 요리”
“300일로 끝내는 나홀로 세계여행 8861 여행”


  • 다음 두 가지 방식으로 데이터를 관리해보려고 합니다. 각 방식대로 프로그램을 작성해보고 차이점에 대해 생각해보세요.


  • 11-1. 리스트로 관리하기

도서이름들을 관리하는 name_list

도서번호들을 관리하는 number_list

도서분류들은 관리하는 category_list

  • 11-2. 사전으로 관리하기

0, 1, 2, 3, 4를 key로 하고 value는 각 도서정보(사전)인 사전을 만든다.

각 도서정보는 “name”, “number”, “category”를 key로 하고 value는 각 도서의 해당하는 정보를 적는다.



해답 1.

# 문제1의 코드를 작성하세요.
Grade = {"A+" : 4.5, "A" : 4.0, "B+" : 3.5, "B" : 3.0, "C+" : 2.5, "C" : 2.0}
num = [3, 3, 2, 3]
(num[0]*Grade["A"] + num[1]*Grade["C"] + num[2]*Grade["B+"] + num[3]*Grade["A+"])/sum(num)

해답 2.

# 문제2의 코드를 작성하세요.
A = int(input())
print((A%100)//10)

해답 3.

# 가능하면 배웠던 3가지 케이스를 모두 사용해보세요;.
# case1 %
print("%s 모델로 %d epoch를 돌려 학습시킨 결과는 학습 정확도 : %f, 검증 정확도 : %f, 테스트 정확도 : %f으로 나왔습니다"%(model_name, epoch, train_accuracy, val_accuracy, test_accuracy))

# case2
print("{} 모델로 {} epoch를 돌려 학습시킨 결과는 학습 정확도 : {}, 검증 정확도 : {}, 테스트 정확도 : {}으로 나왔습니다".format(model_name, epoch, train_accuracy, val_accuracy, test_accuracy))

# case3
print(f"{model_name} 모델로 {epoch} epoch를 돌려 학습시킨 결과는 학습 정확도 : {train_accuracy}, 검증 정확도 : {val_accuracy}, 테스트 정확도 : {test_accuracy}으로 나왔습니다.")

해답 4.

oldman_id.replace(oldman_id[-6:],"******")

해답 5.

book = [103, 205, 405]

# 어제 예약목록 출력
book.append(107)
book.append(203)
book.append(304)
book.append(507)
print(book)

# 오늘 예약목록 출력
book.remove(205)
book.remove(304)
print(book)

해답 6.

heights.sort()
heights

해답 7.

# 11-1에 대한 코드를 작성하세요.
name_list = ["기초 파이썬 프로그래밍", "한번에 배우는 데이터 분석", "40세에 돌아본 인생", "집밥 101", "300일로 끝내는 나홀로 세계여행"]
number_list = ["0011", "1234", "3014", "9744", "8861"]
category_list = ["프로그래밍/IT", "프로그래밍/IT", "인문교양", "요리", "여행"]

# 11-2에 대한 코드를 작성하세요.
book = {0 : ["기초 파이썬 프로그래밍", "0011", "프로그래밍/IT"], 1 : ["한번에 배우는 데이터 분석", "1234", "프로그래밍/IT"], 2 : ["40세에 돌아본 인생", "3014", "인문교양"], 3 : ["집밥101", "9744", "요리"], 4 : ["300일로 끝내는 나홀로 세계여행", "8861", "여행"]}

마치며

이번 포스팅에서는 지난 포스팅에서 배운 내용을 바탕으로 예시 문제를 풀어보았습니다.

다음 포스팅에서는 프로그램의 흐름을 제어하는 Control statement에 대해 알아보도록 하겠습니다.