복습미션수행

'''
키보드로 입력받아 요구대로 처리하고 출력하시오.
입력 내용 :
회원이름 : 이순신 (member_name : str)
회원아이디 : leess88@hi.org (member_id : str)
패스워드 : pass1234 (member_passwd : str)
나이 : 45 (age : int)
키 : 187.5 (height : float)
출력 내용 : format() 메소드 사용함
이순신 회원의 아이디는 leess88@hi.org 이고, 암호는 pass** 입니다.
나이는 45세이고, 키는 187.5 cm 입니다.
출력시 처리조건 :
암호는 첫글자부터 4글자만 슬라이싱한 다음 나머지 글자수에 맞춰서 * 로 출력되게 함
키는 소숫점아래 첫자리까지만 출력되게 포멧팅함
'''
member_name = input("회원이름 : ")
member_id = input("회원아이디 : ")
member_passwd = input("패스워드 : ")
age = int(input("나이 : "))
height = float(input("키 : "))
passwd_len = len(member_passwd)
print(
"{} 회원의 아이디는 {} 이고, 암호는 {}{} 입니다."
.format(
member_name,
member_id,
member_passwd[:4], "*" * (passwd_len - 4)))
print("나이는 {}세이고, 키는 {:.1f} cm 입니다.".format(age, height))
진수, 실수형, 문자열의 표현

함수들만 저장되어있는 파일은 모듈
모듈들을 모아 놓은 폴더는 패키지
import한 모듈 안에 함수를 사용
import my_collections.test_list.list_sample as ls
if __name__ == "__main__":
print("start")
print(ls.make_list())
print("end")
# collections\test_list\list_sample.py
def make_list():
return [1, 2, 3, 4, 5]

스코프, 변수가 작동되는 시간, 구역...
함수 안에 있는 변수들은 함수가 실행 ~ 완료 될때까지만이 스코프가 되겠다.
import와 from
import는 폴더나 파일을 통째로 가져온다.
함수를 사용할때마다 풀네임을 불러줘야함으로 이름을 겹칠 일이 없고 함수가 어디서 왔는지 명확히 알 수 있다.
from은 특정 폴더나 파일안에 있는 함수나 클래스만 가져온다.
바로 함수이름으로 실행이 가능해 코드가 간결해진다.
# import my_collections.test_list.list_sample as ls
from my_collections.test_list.list_sample import make_list
if __name__ == "__main__":
print("start")
# print(ls.make_list())
print(make_list())
print("end")

리스트는 list() 혹은 []로 만든다.

리스트는 여러종류의 값들을 인덱스 순차적으로저장하고 저장용량/종류에 제한이 없다.

insert()시 해당 index에 입력된다.
append() 하면 추가되고,
list[n].append(~)하면 해당 값에 추가된다. 다만 index값 n과 ~의 자료형이 다르면 에러.

리스트를 슬라이싱하면 반환값도 리스트다.
리스트변수[시작인덱스:끝:간격]

insert는 원하는 데이터를 원하는 곳에 입력이 가능하고
append는 해당 리스트에 추가가 가능하고
remove는 해당 데이터를 리스트에서 찾아 첫번째 값부터 삭제된다.

remove는 value기준, pop은 위치기준이다.
remove는 리스트에서 특정 값을 찾아 첫 번째로 나오는 요소를 제거하고
pop은 인덱스로 삭제한다.

이때 pop은 해당 값을 반환해 변수에 담아 쓸 수 있다.
즉 지울 데이터가 정확히 어떤 데이터인지 알고있다면 remove,
지우고싶은게 몇번째 위치인지를 알고있거나 지운값을 나중에 다시 써야한다면 pop을 사용한다.

리스트안에 리스트를 넣을 경우 합집합이 됨으로
리스트 형식으로 값을 넣고싶을 뿐이라면 extend()를 쓴다.

순서뒤짚기 reverse()

오름차순 정렬 sort()

내림차순정렬 sort(reverse = True)

count() list에서 찾을 값을 카운트해 반환한다.

미션수행
키보드로 값들을 입력받아, 요구대로 처리하고 확인 출력 코드를 작성하시오.
입력 내용 :
학생이름 : 홍길동 (name : str)
학년 : 2 (grade : int)
반 : 3 (s_class : int)
번호 : 12 (s_no : int)
점수 : 87.5 (score : float)
처리 내용 :
입력받은 값들을 리스트(student_list)에 순서대로 저장 처리함
출력 내용 :
리스트에 저장된 값들을 출력함
2학년 3반 12번 홍길동의 점수는 87.50 입니다.
-> 점수는 소수점아래 둘째자리까지 표시
-> format() 사용함
"""
키보드로 값들을 입력받아, 요구대로 처리하고 확인 출력 코드를 작성하시오.
입력 내용 :
학생이름 : 홍길동 (name : str)
학년 : 2 (grade : int)
반 : 3 (s_class : int)
번호 : 12 (s_no : int)
점수 : 87.5 (score : float)
처리 내용 :
입력받은 값들을 리스트(student_list)에 순서대로 저장 처리함
출력 내용 :
리스트에 저장된 값들을 출력함
2학년 3반 12번 홍길동의 점수는 87.50 입니다.
-> 점수는 소수점아래 둘째자리까지 표시
-> format() 사용함
"""
student_list = []
name = input("학생이름 : ")
grade = int(input("학년 : "))
s_class = int(input("반 : "))
s_no = int(input("번호 : "))
score = float(input("점수 : "))
student_list.append(name)
student_list.append(grade)
student_list.append(s_class)
student_list.append(s_no)
student_list.append(score)
print(student_list)
print("{}학년 {}반 {}번 {}의 점수는 {:.2f} 입니다."
.format(
student_list[1],
student_list[2],
student_list[3],
student_list[0],
student_list[4]))

Mutable / Immutable
리스트[]와 튜플()은 데이터를 나열한다는 점은 같지만 수정할 수 있는가 없는가에 차이가 있다.
따라서 데이터가 자주 변경될때 리스트를, 데이터가 고정되어야하는 좌표, 설정값 등에 튜플을 사용한다.
튜플을 사용하면 안전성을 기본이고 변하지않는다는 것을 파이썬이 알기에 메모리르 적게 쓰고 속도가 빨라 성능을 가질 수 있다.


외는 list와 동일해, indexing slicing이 가능하다.

튜플에 만약 데이터를 하나만 넣을 경우, 파이썬이 오해하지않게 ,를 붙여준다.
이를 지키지 않으면 나중에 type에러를 유발한다.

그 이유를 좀더 살펴본다면
()는 튜플임을 알리는 표현으로도 사용되지만 수학적 괄호로는 '우선 계산해라'의 우선순위 표시기도 하기 때문이다.
이를 그저 '우선적인 값'으로 인식해버리면 엉뚱하게 이해해버리게되는것.
따라서 , 를 통해 '리스트형태'임을 알려준다.
여러값을 소괄호없이 그냥 나열해도 자동 튜플이 된다.

튜플을 사용하면 return 시 여러개를 return할 수 있다.
다른 언어와 비교해보면 좀더 이해가 쉬운데
Java의 경우 여러개의 값을 묶는 바구니를 정의해서 리턴 타입을 하나로 해서 여러개를 돌려주려면 객체를 만들거나 배열에 담는다.
파이썬에서의 튜플은 리턴하기 위해 구조체를 미리 설계하지 않고 바로 여러개를 return 할 수 있다.

튜플도 list와 마찬가지로 count index length 모두 가능하다

미션수행 완료

"""
키보드로 값들을 입력받아, 요구대로 처리하고 확인 출력 코드를 작성하시오.
입력 내용 :
국어 점수 : 78.5 (kor : float)
영어 점수 : 88.7 (eng: float)
수학 점수 : 93.5 (mat : float)
처리 내용 :
3명의 학생 점수를 입력 받음, 각 학생의 총점과 평균은 각각 계산함
학생별 점수는 각 리스트에 저장한 다음, [국어, 영어, 수학, 총점, 평균]
각 학생 점수를 리스트(sungjuk_list)에 순서대로 저장 처리함
[[국, 영, 수, 총, 평], [국, 영, 수, 총, 평], [국, 영, 수, 총, 평]]
3명의 점수의 총합(total_score : int)과 전체평균(average_score : float)를
계산하시오.
출력 내용 :
리스트에 저장된 값들을 출력함, 국, 영, 수, 총, 평균 순서로 출력
-> 점수는 소수점아래 둘째자리까지 표시
-> format() 사용함
전체 총점과 전체 평균을 출력하시오.
이때 반복문이나 조건문을 사용하지 않는다.
"""
def practice1():
korean_score1 = float(input("국어 점수 : "))
english_score1 = float(input("영어 점수 : "))
math_score1 = float(input("수학 점수 : "))
total_score1 = korean_score1 + english_score1 + math_score1
average_score1 = total_score1 / 3
sungjuk_list1 = [korean_score1, english_score1, math_score1, total_score1, average_score1]
print("국어: {:.2f}, 영어: {:.2f}, 수학: {:.2f}, 총점: {:.2f}, 평균: {:.2f}".format(
sungjuk_list1[0], sungjuk_list1[1], sungjuk_list1[2], sungjuk_list1[3], sungjuk_list1[4]
))
korean_score2 = float(input("국어 점수 : "))
english_score2 = float(input("영어 점수 : "))
math_score2 = float(input("수학 점수 : "))
total_score2 = korean_score2 + english_score2 + math_score2
average_score2 = total_score2 / 3
sungjuk_list2 = [korean_score2, english_score2, math_score2, total_score2, average_score2 ]
print("국어: {:.2f}, 영어: {:.2f}, 수학: {:.2f}, 총점: {:.2f}, 평균: {:.2f}".format(
sungjuk_list2[0], sungjuk_list2[1], sungjuk_list2[2], sungjuk_list2[3], sungjuk_list2[4]
))
korean_score3 = float(input("국어 점수 : "))
english_score3 = float(input("영어 점수 : "))
math_score3 = float(input("수학 점수 : "))
total_score3 = korean_score3 + english_score3 + math_score3
average_score3 = total_score3 / 3
sungjuk_list3 = [korean_score3, english_score3, math_score3, total_score3, average_score3 ]
print("국어: {:.2f}, 영어: {:.2f}, 수학: {:.2f}, 총점: {:.2f}, 평균: {:.2f}".format(
sungjuk_list3[0], sungjuk_list3[1], sungjuk_list3[2], sungjuk_list3[3], sungjuk_list3[4]
))
total_score = total_score1 + total_score2 + total_score3
average_score = total_score / 3
print("총점: {:.2f}, 평균: {:.2f}".format(
total_score, average_score
))
practice1()'SK 네트웍스 AI 캠프' 카테고리의 다른 글
| SK 네트웍스 AI 캠프 - 1_프로그래밍 데이터 기초 - Day5_파이썬_객체지향 프로그래밍_OOP (0) | 2026.05.06 |
|---|---|
| SK 네트웍스 AI 캠프 - 1_프로그래밍 데이터 기초 - Day4_파일입출력_예외처리 (0) | 2026.05.04 |
| [SK네트웍스 Family AI 캠프] 32기 1주차 회고 (0) | 2026.05.04 |
| SK 네트웍스 AI 캠프 - 1_프로그래밍 데이터 기초 - Day2_파이썬_기본문법 (0) | 2026.04.29 |
| SK 네트웍스 AI 캠프 - 1_프로그래밍 데이터 기초 - Day1_파이썬_개발환경_구축_작성방법 (0) | 2026.04.28 |