Python/Tutorial

[20200325] 파이썬 기본 문법(Python basic syntax)

뒷골목프로그래머 2020. 3. 25. 14:35
반응형

본 포스팅은 패스트 캠퍼스의  [온라인] 데이터 사이언스 스쿨을 수강하며 학습한 내용을 정리한 것입니다.

 

데이터 사이언스 스쿨 온라인

대학교재보다 상세한 강의자료, 현직 실무자의 노하우까지 모두 얻어가세요 ! 이미 수많은 비전공자들이 데이터 사이언티스트로 커리어 전환에 성공한 바로 그 강의. 데이터 사이언스 스쿨 오프라인 정규 과정을 이제는 온라인에서 만나보세요!

www.fastcampus.co.kr


목차

1. 변수선언

2. 식별자

3. 데이터 타입

4. 형변환

5. 연산자

6. 연습문제 : 오늘의 운세 게임만들기


변수선언

 아래 코드블럭과 같이 변수를 선언하고 a+b라는 연산을 수행할 경우, RAM에 a = 1과 b = 2를 할당하고, CPU에서 a + b 연산을 수행한다. 그리고 수행한 결과 값을 메모리의 c에 할당한다.

a = 1
b = 2
c = a+b

식별자

  • 변수, 함수, 클래스, 모듈 등의 이름을 식별자라고 함.
  • 식별자 규칙
    • 소문자, 대문자, 숫자, 언더스코어(_) 를 사용함.
    • 맨 앞에 숫자 사용 불가
    • 예약어의 사용 불가 : def, class, try, except...
    • 컨벤션
      • snake case : fast_campus : 변수, 함수
      • camel case : FastCampus, fastCampus : 클래스

데이터 타입

  • RAM 저장공간을 효율적으로 사용하기 위해서 저장공간의 타입을 설정
  • 동적 타이핑
    • 변수 선언시 저장되는 값에 따라서 자동으로 데이터 타입이 설정
    • Java나 C 처럼 변수명 앞에 int, String 등의 데이터 타입을 지정할 필요 없음
  • 기본 데이터 타입 : int, float, bool, str
  • 컬렉션 데이터 타입 : list(순서있음), tuple(순서있고 수정불가), dict(순서없고 key-value)

 

1) 기본 데이터 타입

a = 1
b = 1.2
c = True
d= "data"
type(a), type(b), type(c), type(d)

#결과 : (int, float, bool, str)

* 함수

 - upper() : 대문자로 변환

 - lower() : 소문자로 변환

 - strip() : 공백 제거

 - replace() : 특정 문자열 치환

name = " Writing Developer "
name.upper() # ' WRITING DEVELOPER '
name.lower() # ' writing developer '
name.strip() # 'Writing Developer'
name.replace("Wrting", "Drawing") # 'Drawing Developer'

 - 오프셋 인덱스 : 마스크, 마스킹 : []

 - 문자열은 순서가 있는 문자들의 집합

alphabet = "abcdefg"
g[2], g[-2], g[2:5], g[:2], g[3:], g[-2:], g[::3], g[::-1]
# 결과 : ('c', 'f', 'cde', 'ab', 'defg', 'fg', 'adg', 'gfedcba')

numbers = "123456789"
numbers[::-2], numbers[::2][::-1]
# 결과 : ('97531', '97531')

2) 컬렉션 데이터 타입

  • list
    • 순서가 있는 수정이 가능한 데이터 타입
    • offset Index 사용이 가능함
    • 함수
      • append() : 가장 뒤에 값을 추가
      • sort() : 오름차순으로 정렬
      • pop() : 가장 마지막 데이터를 출력하고 출력한 데이터를 삭제
    • 리스트의 복사
      • 얕은복사(주소값 복사) : 주소값을 복사하기 때문에 수정할 경우, 모두 수정되는 경우가 발생한다.
      • 깊은복사(copy() 이용) : 메모리에 새로운 저장공간을 만들기 때문에 수정하더라도 자신만 변화한다.
  • tuple
    • 순서가 있는 수정이 불가능한 데이터 타입
    • 튜플은 리스틑보다 같은 데이터를 가졌을 때 공간을 적게 사용
    • offset Index 사용이 가능함
  • dict
    • 순서가 없고 키:값 으로 구성되어있는 데이터 타입

형변환

  • 데이터 타입을 변환하는 방법
  • int, float, bool, str, list, tuple, list
  • 변환하고자 하는 값 앞에 데이터 타입을 붙여줌 
    • ex : int(변수명)
  • 함수
    • zip : 같은 인덱스의 데이터 끼리 묶어주는 함수
cityList = ["seoul", "busan", "daegu"]
populationList = [9700000, 3400000, 2400000]
print(list(zip(cityList, populationList)))
print(dict(list(zip(cityList, populationList))))

# 결과
# [('seoul', 9700000), ('busan', 3400000), ('daegu', 2400000)]
# {'seoul': 9700000, 'busan': 3400000, 'daegu': 2400000}

연산자

  • 산술 연산자 : +, -, , /, //, %, *
  • 할당 연산자 : 특정 변수에 누적시켜서 연산 : +=, //=, **=
  • 비교 연산자 : >, <, ==, !=, <=, >=
  • 논리 연산자 : True, False를 연산 : or, and, not
  • 멤버 연산자 : 특정 데이터가 있는지 확인 할 때 사용 : not in, in

연습게임

  • 자신이 태어난 월을 입력하면 운세를 알려주는 게임 만들기
    • dict를 활용해 키:값 형태의 월:운세 내용으로 변수 선언
    • input()을 활용해 태어난 월을 입력받음
    • 운세 발표

github : 02_basic_syntax.ipynb(학습내용), 20200325_fortuneGame.ipynb(연습게임) 참고

 

Seuleeee/python

Contribute to Seuleeee/python development by creating an account on GitHub.

github.com

 

반응형