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

[DAY 2] Python Programming

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

📕 학습 목록

  • 컨테이너 자료형_시퀀스
  • 컨테이너 자료형_비시퀀스
  • 조건문

 

📗 기억할 내용

 

1) 컨테이너 자료형_시퀀스

  • 순서가 있는 컨테이너; 데이터를 순서대로 저장 ex : 리스트, 문자열, 레인지, 튜플
  • 중복 O

① 리스트

  • len() : 리스트의 길이 반환
  • 덧셈 : [1, 2] + [3, 4] = [1, 2, 3, 4]
  • 곱셈 : [1, 2, 3] * 3 = [1, 2, 3, 1, 2, 3, 1, 2, 3]
  • 리스트[인덱스] = 새로운 원소리스트 원소 값 수정
  • 리스트[start:end:step] : 리스트 슬라이싱   * end 값 미포함
  • 리스트.append(새로운 원소) : 리스트 마지막에 새로운 원소 추가
  • 리스트.pop() : 리스트 마지막 원소 삭제   * 삭제와 동시에 삭제한 원소를 반환
  • 리스트.pop(삭제할 원소의 인덱스) : 특정 인덱스의 원소 삭제

② 문자열

  • 덧셈 : "hello" + "world" = "helloworld"
  • 곱셈 : "hello" * 3 = "hellohellohello"
  • f-string : f"제 이름은 {변수 + 1} 입니다."

③ 레인지

  • range(start, end, step)     * end 값 미포함

④ 튜플

  • 덧셈 : (1, 2) + (3, 4) = (1, 2, 3, 4)
  • 곱셈 : (1, 2, 3) * 3 = (1, 2, 3, 1, 2, 3, 1, 2, 3)
  • 튜플[인덱스] : 원소에 접근

⑤ 컨테이너 형 변환

  • list() : 문자열/레인지 → 리스트

⑥ 멤버십 연산자

  • 값 in 컨테이너 자료형 : 값이 있으면 True / 없으면 False
  • 값 not in 컨테이너 자료형 : 값이 있으면 False / 없으면 True
  컨테이너 자료형 종류 원소 삽입•삭제•수정
시퀀스 리스트 O
문자열 X
* 수정시 문자열 덧셈/슬라이싱 이용
레인지 -
튜플 X
비시퀀스 딕셔너리 O
집합(set)  O

 
2) 컨테이너 자료형_비시퀀스

  • 순서가 없는 컨테이너; 데이터를 무작위 순서로 저장 ex : 딕셔너리, 집합(set)
  • 중복 X

① 딕셔너리

  • 각 key는 유일함
  • 딕셔너리[key] : value 접근
  • 딕셔너리[key] = value : key-value 추가/수정
  • del 딕셔너리[key] : key-value 삭제
  • keys() : 모든 key 반환(리스트)
  • values() : 모든 value 반환(리스트)
  • items() : 모든 key-value 쌍 반환(튜플로 이루어진 리스트)
  • get(key) : key에 해당하는 value 반환(해당 key가 없을 경우 None 반환) 

② 집합(set)

  • set.add(값) : 원소 추가   * 중복값 추가시 명령 무시
  • set.remove(값) / set.discard(값) : 원소 삭제
  • set1.union(set2) / set1 | set2 : 합집합
  • set1.intersection(set2) / set1 & set2 : 교집합
  • set1.difference(set2) / set1 - set2 : 차집합

③ 멤버십 연산자

  • key in 딕셔너리 / key not in 딕셔너리  * 오직 key (value 기입시 False 반환)
  • value in 딕셔너리.values() / value not in 딕셔너리.values()  * 오직 value
  • 값 in 집합 / 값 not in 집합

 

3) 조건문

  • if elif else
  • 코드 블럭은 들여쓰기(4 spaces / 1 tab)로 구분

 

📘 트러블 슈팅

[문제]

  • 문제 내용
다음의 조건문에서 else문을 어떻게 작성할지 고민함
# 실수형 숫자 입력 요청
number = float(input("점수를 입력해주세요."))

# 조건문
if number >= 90:
    print("학점 : A")
elif number >= 85.5:  # 만약, elif 대신 if 를 쓸 경우, number = 100 일 때 A, B, C, D 다~ 출력됨(100은 90, 85.5, 70, 60 보다 계속 크거나 같기 때문)
    print("학점 : B")
elif number >= 70:
    print("학점 : C")
elif number >= 60:
    print("학점 : D")
else
  • 문제 원인
if문은 반드시 else문으로 끝나야 한다고 잘못 이해하고 있었음

 
[해결]

  • 해결 방법
if문은 else 문으로 마무리할 필요 없음. if문 또는 elif문으로 끝나도 됨
  • 해결 결과
# 실수형 숫자 입력 요청
number = float(input("점수를 입력해주세요."))

# 조건문
if number >= 90:
    print("학점 : A")
elif number >= 85.5:  # 만약, elif 대신 if 를 쓸 경우, number = 100 일 때 A, B, C, D 다~ 출력됨(100은 90, 85.5, 70, 60 보다 계속 크거나 같기 때문)
    print("학점 : B")
elif number >= 70:
    print("학점 : C")
elif number >= 60:
    print("학점 : D")  # if문은 else로 꼭 마무리해줘야 하는줄 알았는데 elif로 끝나도 되는거였군!
학점 : C

 

📙 내일 일정

  • 파이썬 프로그래밍(반복문, 함수, 파일 입출력, 모듈, 예외처리) 학습

 

 

'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 3] Python Programming  (0) 2024.07.15
[DAY 1] Python Programming  (0) 2024.07.14