안녕하세요
이번에는 저번 강의에서 잠깐 설명한 배열과 해시, 그리고 자료형에 관해 더 이야기를 해보겠습니다.
배열의 쓰임
배열은 저번 강의에서 같은 자료형 끼리 모아둔 자료형이라고 했습니다.
그래서 sort()메서드와 reverse()메서드를 소개해드렸습니다.
이번 시간은 append() 메서드와 insert() 메서드, remove() 메서드와 더불어
len() 메서드, max(), min() 메서드도 같이 소개하고자 합니다.
각각 그림으로 어떠한 기능을 하는지 보여주고 코드상으로 한번 더 이해하는 과정으로 가보죠.
이번에는 코드로 한번 봐보겠습니다.
배열의 요소 추가 및 제거 메서드를 만나봤습니다.
이번에는 배열의 길이, 배열의 최대, 최소값을 불러오는 메서드인 len(), max(), min() 메서드를 만나보겠습니다.
배열의 길이가 4이기에 len(list_1)을 출력하면 4가 출력됐고, 최대값인 40, 최소값인 10이 출력된 것을 볼 수 있습니다.
해시(hash)
이번에는 해시에 관해 이야기를 해보겠습니다.
해시란 다른 이름으로는 디렉토리, directory 즉 사전이라는 의미가 있습니다.
그 이유는 한 단어에 한 값만이 연결되어 있기 때문입니다.
이 또한 그림으로 먼저 만나보고 코드로 이해하는 시간을 갖겠습니다.
여기서 for문과 연계해서 값들을 출력하는 법을 배워봅시다.
language = {"영어" : "english", "한국어" : "korean", "일본어" : "japanese"}
for key in language.keys():
print(language[key])
# english, korean, japanese 가 차례대로 출력될 것이다.
응용프로그램
이번에는 좀 심화해서 가볼겁니다.
그래서 처음보는 문법이 있을 수 있습니다. 그래도 다 설명하면서 갈 것이기 때문에 겁먹지 말고 따라와 주세요.
student.txt
홍길동 62
김철수 95
김나미 97
황팔자 80
정화용 85
이정수 72
이춘화 60
최현아 65
라는 텍스트 파일이 있다고 합니다.
각각 이름과 점수를 해시로 묶고
90점 이상은 A, 80점 이상은 B, 70점 이상은 C, 그 아래는 낙점이라는 점수를 줄겁니다.
그럼 그림으로 먼저 이해하고 코드를 작성해봅시다.
file = open("student.txt", "r")
# student.txt 파일을 r버전, read 버전으로 불러온다.
student = {} # 해시의 초기화를 할 때는 중괄호를 적어줘야 한다.
while True:
line = file.readline() # student.txt 파일을 한 문장씩 가져온다.
if not line: # 만약 전 문장을 다 읽었을 시
break # 반복문을 나가게 된다.
splited = line.split(' ') # 홍길동 62라는 문장을
# 각각 홍길동, 62로 나누어
#splited 변수에 배열 형식으로 할당한다.
student[splited[0]] = splited[1]
# 이를 해시에 저장한다.
for key in student.keys(): # for문을 사용하여 반복한다.
if int(student[key]) >= 90: # 90보다 크다라는 계산을 하기 위해선
#정수형 자료형으로 계산해야 한다.
print(key + " : A")
elif int(student[key]) >= 80:
print(key + " : B")
elif int(student[key]) >= 70:
print(key + " : C")
else:
print(key + " : 낙점입니다.")
파일을 읽고 쓰는 것은
다음 번에 파일 읽고 쓰기 강의에서 깊게 다루기로 하고
오늘은 이정도만 배우겠습니다!
좋은 강의가 되길 바라고 좋은 코딩을 하시길 바랍니다!
'프로그래밍 > Python' 카테고리의 다른 글
[파이썬 프로그램] 프로그램 다운로드 (0) | 2021.03.01 |
---|---|
[파이썬 코딩 강의] 파일 읽고 쓰기 (3) | 2021.02.28 |
[파이썬 코딩 강의] 반복문, 배열 (2) | 2020.11.10 |
[파이썬 코딩 강의] 조건문 (if) (0) | 2020.11.10 |
[파이썬 코딩 강의] 변수, 자료형 (0) | 2020.11.10 |