본문 바로가기
TIL _Today I Learned/2024.07

[DAY 3] Python Programming

by gamdong2 2024. 7. 15.
[천재교육] 프로젝트 기반 빅데이터 서비스 개발자 양성 과정 9기
학습일 : 2024.07.15

📕 학습 목록

  • 반복문
  • 함수
  • 파일 입력/출력
  • 모듈
  • 예외처리

 

📗 기억할 내용

1) 반복문

  • 수많은 원소에 효율적으로 접근하기 위함

① for 반복문

  • 반복 횟수가 정해져 있는 경우; 컨테이너에 담긴 원소의 갯수 만큼 반복
  • 반복 가능한 자료형 : 컨테이너 자료형(리스트, 문자열, 레인지, 튜플, 딕셔너리, 셋)
  • for i in range(10, 0, -1) → i 출력시, 10 9 8 7 6 5 4 3 2 1 

② whlie 반복문

  • 조건에 대한 평가(참/거짓)에 따라 반복 여부 결정
  • 무한 반복 가능 : 조건이 항상 참인 경우 조건문 대신 while True: 의 형태로도 작성 가능

③ 반복 제어문

  • break : 반복문 강제 종료 키워드. break 아래 코드들은 실행되지 x
  • for ~ else 반복문 : for 반복문이 정상적으로 반복을 종료했을 때 else 코드 블럭 실행
  • continue : 다음 반복으로 강제 이동 키워드. 남은 코드를 건너뛰고 다음 반복 실행
  • pass : 아무 기능도 x, 코드 블록을 채워줌o (코드 블록에 코드가 없을 때의 오류 발생을 피하기 위해 사용)

④ 딕셔너리 반복문

  • 딕셔너리 또한 컨테이너 자료형이므로 내부 원소 순회 가능
my_dict = {"a": 1, "b": 2, "c": 3}

# 1. key 순회
for key in my_dict:
    print(key)
   
'''
a
b
c
'''

# 2. value 순회 : values() 
for value in my_dict.values():
    print(value)
    
'''
1
2
3
'''

# 3. key-value 순회 : items()
for key, value in my_dict.items():
    print(f"{key} - {value}")
    
'''
a - 1
b - 2
c - 3
'''

 

2) 함수

  • 함수 : 입력(input)을 넣었을 때 출력(output)을 반환하는 것. 자료형 구분 없이 동작함
  • def 함수명(매개변수): ~ 실행할 코드 ~ return 반환값
  • 함수명의 첫 글자에는 숫자 x
  • 함수의 호출 : 선언된 함수를 실행
  • 매개변수 : 함수 내부 변수
  • 인자 : 함수를 호출할 때 함수에 전달하는 값
  • 반환값 : 함수 실행 결과 값
  • 메서드 : 특정 자료형만의 기능

3) 파일 입력/출력

  • 파일 입력/출력 : 파일을 읽고 쓰는 작업

① 파일 열고 닫기

  • open() : 파일을 염 
  • close() : 연 파일을 닫음  * file.close()
  • write() : 파일에 데이터를 작성(출력)
  • with 문 : 파일을 열고, 코드 실행 후 자동으로 닫아줌 
# as 뒤의 file은 별칭이라기보단 file이란 하나의 객체를 생성한 것; file을 소환할 수 있게 됨
with open('example.txt', 'w') as file:
	file.write('Hello World')

 
② 파일 데이터 읽기

  • read() : 파일의 전체 내용을 하나의 문자열로 읽음
  • readline() : 파일에서 한 줄씩 읽어옴. 호출할 때마다 다음 줄 읽음
  • readlines() : 파일에서 모든 줄을 읽고, 각 줄을 리스트's 원소로 저장

4) 모듈

  • 모듈 : 특정 기능을 하는 코드를 파이썬 파일(.py) 단위로 작성한 것
  • 다른 파이썬 파일에 구현된 기능을 불러와서 사용할 수 있음
  • import : 모듈을 불러오는 키워드
  • from : 모듈의 일부만 불러오는 키워드  * from 모듈(파일명) import 모듈 일부(함수)
  • as : 함수의 별칭을 정하는 키워드
  • 파이썬 기초 모듈
1. random : 난수(무작위 수)를 다루는 기능 제공
  - random.randint(시작 숫자, 끝 숫자) : 시작~끝 숫자 중 1개의 정수를 무작위로 반환
  - random.choice(리스트) : 리스트 내 원소 중 1개를 무작위로 반환
  - random.sample(리스트, 개수) : 리스트 내 원소 중 지정한 개수만큼 무작위로 반환

2. time : 시간을 다루는 기능 제공
  - time.sleep(초) : 일정 시간 동안 프로그램의 동작을 일시정지
  - time.time() : 현재 시간을 초 단위로 반환(프로그램 실행 시간 측정 가능). 1970.01.01 00:00:00 이후의 초

 

5) 예외처리

  • 예외처리 : 프로그램 실행 중 발생하는 예외를 처리(Handling)하는 방법
  • 기본 구조
try:
    # 실행할 코드
    pass
except Exception as e:
    # try 코드에서 예외가 발생했을 때 실행할 코드
    pass
else:
    # try 코드에서 예외가 발생하지 않았을 때 실행할 코드
    pass
finally:
    # 예외 발생 여부와 상관없이 항상 실행할 코드
    pass
  • 예외의 종류
- Exception : 모든 예외에 대해 대응
- ZeroDivisionError : 값을 0으로 나눴을 때
- AttributeError : 존재하지 않는 객체 속성에 접근할 때
- IndexError : 인덱스 범위를 벗어났을 때
- SyntaxError : 문법적 오류가 있을 때
-  IndentationError : 들여쓰기가 잘못된 경우
- TypeError : 연산 or 함수를 적용할 때 자료형이 옳지않은 경우

 
 

📘 트러블 슈팅

[문제]

  • 문제 내용
프로그램 실행 시간 측정 코드
import time

start = time.time()

result = 0
for number in range(0, 10000000):
    result += number

end = time.time()
print(end - start)
  • 문제 원인
'프로그램 실행 시간' = '파이썬 프로그램 전체 사용 시간' 으로 오해함

 
[해결]

  • 해결 방법
해당 코드는 특정 코드 블록(반복문을 포함한 프로그램)이 실행되는 데 걸린 시간을 측정하는 것임을 이해
  • 해결 결과
1.075798749923706

 

📙 내일 일정

  • 파이썬 프로그래밍(이차원 리스트, 객체 지향 프로그래) 학습
  • 파이썬 크롤링(requests) 학습

 

 

 

'TIL _Today I Learned > 2024.07' 카테고리의 다른 글

[DAY 6] Python Crawling  (0) 2024.07.18
[DAY 5] Python Crawling  (0) 2024.07.17
[DAY 4] Python Programming  (0) 2024.07.16
[DAY 2] Python Programming  (0) 2024.07.14
[DAY 1] Python Programming  (0) 2024.07.14