TIL. python 3일차

hyuko·2023년 2월 3일
0

산대특 국비과정

목록 보기
7/9

파이썬에서의 형변환

  • 파이썬은 변수를 선언하거나 초기화 할 당시에 자료형을 붙여주지 않는다.
  • 그 덕분에 변수의 자료형을 알기 위해서는 type() 함수를 사용해서 알아야한다.

그리고 그 자료형을 알게되었으면 적절하게 형변환이 가능한데
예를 들어 스트링 타입의 1, 2 즉 '1', '2' 등이 있다고 쳤을 때
우리가 1 + 2 를 하고 싶다 생각하면 이 것을 int()라는 함수에 매개변수로
집어 넣어주게 된다면 자동으로 int 형으로 형변환을 해준다.

각각의 클래스들 즉 자료형들에는 이러하게 자료형이름() 의 함수들이
존재하고 그 매개변수로 넣어주면 그 해당 클래스로 자료형이 변환이된다.
하지만 주의하여야할 것은 예를들어 스트링타입인 'abc'를 숫자형 실수형등으로
형변환은 불가하다


a = '12'

b = int(a)

c = 'abc'

d = float(c) # 이것은 불가하다.

파이썬에서의 모듈

  • 우리는 파이썬에서 만들어놓은 모듈을 사용할 수 가있는데
    이것은 사용자가 자주 사용하는 기능을 하나의 집합으로 모아
    파이썬자체에서 import를 하여서 안에 있는 함수들을 쓸 수 있게
    만들어놓은 형식이다.

import random

random.randrange(0, 100, 2)

위의 방식처럼 임폴트를 사용해서 random이라는 모듈을 불러오고
이 모듈안에 있는 함수인 randrange를 사용할 수 있습니다.


예제를 통해 학습

공공데이터 포털에서 전국 건강 증진 센터에 관한 csv파일을 받아
전국의 증진센터의 갯수와 의사가 있는 센터의 수 그리고 종사하고 있는
의사의 수를 구해보도록 한다.

data_list = []
with open('%EC%A0%84%EA%B5%AD%EA%B1%B4%EA%B0%95%EC%A6%9D%EC%A7%84%EC%84%BC%ED%84%B0%ED%91%9C%EC%A4%80%EB%8D%B0%EC%9D%B4%ED%84%B0.csv', encoding = 'cp949') as file:
    for line in file:
        data_list.append(line.split(','))
        
        
list = []
list2 = []
center_list = []
center_list2 = []
for i in data_list[1:]:
    list.append(i[0])
    
    if int(i[-13]) == 0:
        center_list.append(i[0])
        
    else:
        center_list2.append(int(i[-13])) 
        
        


print(len(set(list))) # 센터갯수(중복제거)
print('총 센터의 수: ', len(list))# 노제거
print(len(set(center_list))) # 의사가 한명도 없는 센터
print('의사가 없는 센터의수: ', len(center_list))
print('total doctor count: ', sum(center_list2)) # 종사하는 의사 명수
   

기본적으로 데이터 리스트라는 리스트를 생성하여 csv파일을 , 를 기준으로
split하여 가지고 옵니다.

그렇게 되면 리스트안에 리스트가 나오게되고
그 리스트를 돌면서 의사의 컬럼이 리스트의 뒤에서 13번째에 있는 값이고
그 값이 str타입인데 그 것을 int형으로 형변환하여 0과 비교를 해서
0이면 의사가 없는 센터의 수를 구할 수 있고

다른 else 의 리스트에는 당연히 의사수가 있는 리스트가 될 것이고
거기에 들어가 있는 각각의 값을 더하는 sum함수에 넣어 계산하면
종사하고 있는 총 의사수가 나오게된다.

profile
백엔드 개발자 준비중

0개의 댓글