교육 정보
- 교육 명: 경기미래기술학교 AI 교육
- 교육 기간: 2023.05.08 ~ 2023.10.31
- 오늘의 커리큘럼: 빅데이터 기초 활용 역량 강화 (5/10~6/9) - 파이썬 프로그래밍
- 강사: 조미정 강사님 (빅데이터, 머신러닝, 인공지능)
- 강의 계획:
1. 파이썬 언어 기초 프로그래밍
2. 크롤링 - 데이터 분석을 위한 데이터 수집(파이썬으로 진행)
3. 탐색적 데이터 분석, 분석 실습
- 분석은 파이썬만으로는 할 수 없으므로 분석 라이브러리/시각화 라이브러리를 통해 분석
4. 통계기반 데이터 분석
5. 미니프로젝트
- 변수 : 값을 담는 공간
- 할당 연산자 = 를 사용해서 변수에 값을 할당
num_1 = 5
str_1 = "Hello"
str_1 = "World"
#기존 변수에 새로운 값을 저장할 수 있음
- 메모리: 값이 할당될 때 실제로 저장되는 장소
- 메모리 주소: 변수에 매핑되는 메모리의 특정 위치
#메모리 주소는 아래 코드로 확인 가능 id(변수명) # ex) print(id(num_1))
- 문자, 숫자, '_'(언더스코어) 사용 가능 (공백 사용 불가)
- 숫자로 시작 불가
- 대소문자 구분
- 파이썬 내 예약어 사용 불가
#예약어 목록 확인 import keyword keyword.kwlist # 출력 결과 ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
숫자형 (Number) : int, float, complex
문자열 (String) : str
불린형 (Boolean) : bool
‣ 자료형 관련 함수
- 자료형 확인 함수
- type()
my_num = 10 print(type(my_num)) my_name = "Tom" print(type(my_name)) my_bool = True print(type(my_bool))
- 자료형 검사 함수
- isinstance()
year = 2020 print(isinstance(year, int)) print(isinstance(year, str)) print(isinstance(year, (int, str)))
- 정수형 (Integer type, int)
- 실수형 (Floating-point type, float)
- 복소수형 (Complex type, complex)
- 문자가 나열된 형태의 데이터
- 큰 따옴표(") 혹은 작은 따옴표(')를 사용
- 참(True) 또는 거짓(False)을 나타내는 자료형
- 대소문자 구분 주의 (True는 그 자체로 불린값이지만 true라고 쓰면 동명의 변수를 찾음)
- 사칙 연산자 : +, -, *, /
- 몫 연산자 (소수점 이하 버림 나눗셈) : //
- 나머지 연산자 : %
- 제곱 연산자 : ** (제곱근은 **0.5)
- 우선순위가 있어 연산시 괄호로 순위를 지정해주는 것을 권장
- 할당
x = 5- 원래 변수 값에 뒤의 값을 더한 값을 변수에 할당
x += 3- 원래 변수 값에 뒤의 값을 뺀 값을 변수에 할당
x -= 3- 원래 변수 값에 뒤의 값을 곱한 값을 변수에 할당
x *= 3- 원래 변수 값에 뒤의 값을 나눈 값을 변수에 할당
x /= 3- 원래 변수 값에 뒤의 값을 나눈 나머지 값을 변수에 할당
x %= 3
- and: and로 연결된 모든 구문이 참인 경우만 True, 그 외에는 False
- or: or로 연결된 모든 구문이 거짓인 경우만 False, 그 외에는 True
- not: not을 붙인 불린값을 반대로 변환 (ex. not (5 < 7) → False)
- a > b: a가 b보다 클 경우 True
- a == b: a가 b와 같을 경우 True
- a <= b: a가 b보다 작거나 같을 경우 True
- a != b: a가 b와 다를 경우 True
- 문자열 결합 연산자: +
"+" 연산자를 통해 2개 이상의 문자열을 붙여서 출력 할 수 있다 (구분자 없이 붙여서 출력됨)first_name = "Ada" last_name = "Lovelace" full_name = first_name + " " + last_name print(full_name)
- 포함 여부에 따라 참 또는 거짓 반환
- in
- not in
- 정수형으로 변환 : int()
- 실수형으로 변환 : float()
- 복소수형으로 변환 : complex()
- str()
- 문자열 안에 어떤 값을 삽입하는 방법
ex. "현재 온도는 18도입니다.", "현재 온도는 25도입니다." 출력할 때 특정한 값(온도)를 바꾸게 해주는 것이 문자열 포멧 기법
- %s, %d 등 자료형표기를 사용하여 해당 자료형의 변수를 출력
- 파이썬은 변수 지정시 자료형 표기를 하지 않아도 되므로 자주 사용하지 않음
name = "Emma" print ("Are you %s?" % name) num = 123 print ("%s's room number is %d" % (name, num))
- {} .format() : () 안의 값이 {} 안에서 문자열로 대체되어 출력
- {} 의 갯수만큼 () 안에 값도 필요함
name = "Emma" print ("My name is {}.".format(name)) msg = "My name is {}. and I am {} years old".format(name, 20)
- f" {} ": {} 안에 변수를 넣으면 변수안의 값이 출력됨
name = "Emma" score = 50.500 print(f"Are you {name}?") print(f"name :{name} score : {score}")
- 다른 따옴표로 감싸기
print('You said, "Yes."')
- 역슬래시 "\"로 escape하기
- 역슬래시 바로 뒤의 기호는 escape되어 기능 대신 문자 출력됨print("You said, \"Yes.\"")
- 같은 따옴표를 세 번씩 쓰기
say = """Hi OK Bye""" # 두 따옴표 모두 가능 count = '''One Two Three'''
5-4-1. 인덱싱 (Indexing)
- 인덱스 (Index)
자료형의 각 요소에 접근하기 위한 상대적인 주소 (offset)
첫 번째 값의 주소가 0 일 때 각 값들이 첫 번째 값과 얼마나 떨어져 있는지를 의미
문자열은 문자 하나하나가 모인 자료형 : 인덱스로 각 문자에 접근 가능
변수명[인덱스] 형식
인덱스 범위에 주의
0 부터 시작함
lang = "python"
print (lang[0])
print (lang[5])
- 리버스 인덱스 (Reverse Index)
끝에서 부터 계산한 상대적인 주소를 음수로 표현
마지막 값의 인덱스는 -1 부터 시작lang = "python" print (lang[-1]) print (lang[-3])
- 인덱스를 사용하여 일부를 잘라내기
시작 인덱스 요소는 포함, 끝 인덱스 요소는 제외 (start inclusive, end exclusive)
변수명[시작인덱스:끝인덱스] 형식
- 인덱스 생략
- 시작 인덱스 생략 : 처음부터
- 끝 인덱스 생략 : 끝까지
- 모두 생략 : 전체
- 인덱스 증가폭 지정
- 범위 내에서 지정한 증가폭 만큼 건너뛰어 요소 가져옴(리버스 인덱스 활용 가능)
[시작인덱스:끝인덱스:인덱스증가폭]
- len()
txt = "Hi, Kim!"
print(len(txt))
- replace()
- string에서 사용하는 method(함수)
txt = "Hello, World"
print(txt.replace("Hello", "Hi"))
#교체 문자열을 지정하고 교체 후 문자열에 아무것도 안넣으면("") 해당 문자를 삭제함
population = "9,900,986명"
print(int(population.replace(",","").replace("명",""))+100)
- upper()
- lower()
name = "Ada Lovelace"
print(name)
print(name.upper())
print(name.lower())
print (name.capitalize())
- split()
- 구분자를 기준으로 문자열을 나눔
txt = "Hello, world!"
txts = txt.split(",")
print(txts[0])
print(txts[1])
print(txts)
person = "이름, 전화번호, 주소"
person_info = person.split(",")
print(person)
print(person_info)
print(person_info[0])
- 원본 데이터에 양 끝에 있는 스페이스를 없애고 싶은 경우 사용하는 함수들
- strip()
- rstrip()
- lstrip()
lang = " Hello "
print(len(lang)) # 원래 15자리인데
print(len(lang.strip())) # strip하면 Hello만 남아 5자인것을 볼 수 잇음
print(len(lang.rstrip())) #오른쪽에 있는 스페이스만 삭제
print(len(lang.lstrip())) #왼쪽에 있는 스페이스만 삭제