파이썬 기초 - 변수와 자료형

LSH·2023년 5월 11일
0

교육 정보

  • 교육 명: 경기미래기술학교 AI 교육
  • 교육 기간: 2023.05.08 ~ 2023.10.31
  • 오늘의 커리큘럼: 빅데이터 기초 활용 역량 강화 (5/10~6/9) - 파이썬 프로그래밍
  • 강사: 조미정 강사님 (빅데이터, 머신러닝, 인공지능)
  • 강의 계획:
    1. 파이썬 언어 기초 프로그래밍
    2. 크롤링 - 데이터 분석을 위한 데이터 수집(파이썬으로 진행)
    3. 탐색적 데이터 분석, 분석 실습
    - 분석은 파이썬만으로는 할 수 없으므로 분석 라이브러리/시각화 라이브러리를 통해 분석
    4. 통계기반 데이터 분석
    5. 미니프로젝트

변수와 자료형

1. 변수

  • 변수 : 값을 담는 공간
  • 할당 연산자 = 를 사용해서 변수에 값을 할당
num_1 = 5
str_1 = "Hello"

str_1 = "World"
#기존 변수에 새로운 값을 저장할 수 있음 

1-1. 변수와 메모리

  • 메모리: 값이 할당될 때 실제로 저장되는 장소
  • 메모리 주소: 변수에 매핑되는 메모리의 특정 위치
#메모리 주소는 아래 코드로 확인 가능
id(변수명)
# ex)
print(id(num_1))

1-2. 명명규칙

  • 문자, 숫자, '_'(언더스코어) 사용 가능 (공백 사용 불가)
  • 숫자로 시작 불가
  • 대소문자 구분
  • 파이썬 내 예약어 사용 불가
#예약어 목록 확인
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']

2. 기본 자료형

2-1. 기본 자료형의 종류

  • 숫자형 (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)))
2-1-1. 숫자형
  • 정수형 (Integer type, int)
  • 실수형 (Floating-point type, float)
  • 복소수형 (Complex type, complex)
2-1-2. 문자열
  • 문자가 나열된 형태의 데이터
  • 큰 따옴표(") 혹은 작은 따옴표(')를 사용
2-1-3. 불린형
  • 참(True) 또는 거짓(False)을 나타내는 자료형
  • 대소문자 구분 주의 (True는 그 자체로 불린값이지만 true라고 쓰면 동명의 변수를 찾음)

3. 자료형의 연산

3-1. 산술 연산자

  • 사칙 연산자 : +, -, *, /
  • 몫 연산자 (소수점 이하 버림 나눗셈) : //
  • 나머지 연산자 : %
  • 제곱 연산자 : ** (제곱근은 **0.5)
  • 우선순위가 있어 연산시 괄호로 순위를 지정해주는 것을 권장

3-2. 할당 연산자

  • 할당
    x = 5
  • 원래 변수 값에 뒤의 값을 더한 값을 변수에 할당
    x += 3
  • 원래 변수 값에 뒤의 값을 뺀 값을 변수에 할당
    x -= 3
  • 원래 변수 값에 뒤의 값을 곱한 값을 변수에 할당
    x *= 3
  • 원래 변수 값에 뒤의 값을 나눈 값을 변수에 할당
    x /= 3
  • 원래 변수 값에 뒤의 값을 나눈 나머지 값을 변수에 할당
    x %= 3

3-3. 논리 연산자

  • and: and로 연결된 모든 구문이 참인 경우만 True, 그 외에는 False
  • or: or로 연결된 모든 구문이 거짓인 경우만 False, 그 외에는 True
  • not: not을 붙인 불린값을 반대로 변환 (ex. not (5 < 7) → False)

3-4. 비교 연산자

  • a > b: a가 b보다 클 경우 True
  • a == b: a가 b와 같을 경우 True
  • a <= b: a가 b보다 작거나 같을 경우 True
  • a != b: a가 b와 다를 경우 True

3-5. 문자열의 연산

  • 문자열 결합 연산자: +
    "+" 연산자를 통해 2개 이상의 문자열을 붙여서 출력 할 수 있다 (구분자 없이 붙여서 출력됨)
first_name = "Ada" 
last_name = "Lovelace"
full_name = first_name + " " + last_name
print(full_name)

3-6. 멤버쉽 연산자

  • 포함 여부에 따라 참 또는 거짓 반환
    - in
    - not in

4. 자료형의 변환

4-1. 숫자형 자료형 변환

  • 정수형으로 변환 : int()
  • 실수형으로 변환 : float()
  • 복소수형으로 변환 : complex()

4-1. 문자열 자료형 변환

  • str()

5. 문자열 자료형 활용

5-1. 문자열 포맷

  • 문자열 안에 어떤 값을 삽입하는 방법
    ex. "현재 온도는 18도입니다.", "현재 온도는 25도입니다." 출력할 때 특정한 값(온도)를 바꾸게 해주는 것이 문자열 포멧 기법
5-1-1. % 연산자
  • %s, %d 등 자료형표기를 사용하여 해당 자료형의 변수를 출력
  • 파이썬은 변수 지정시 자료형 표기를 하지 않아도 되므로 자주 사용하지 않음
name = "Emma"
print ("Are you %s?" % name)
num = 123
print ("%s's room number is %d" % (name, num))
5-1-2. format(함수)
  • {} .format() : () 안의 값이 {} 안에서 문자열로 대체되어 출력
  • {} 의 갯수만큼 () 안에 값도 필요함
name = "Emma"
print ("My name is {}.".format(name))
msg = "My name is {}. and I am {} years old".format(name, 20)
5-1-3. f-string
  • f" {} ": {} 안에 변수를 넣으면 변수안의 값이 출력됨
name = "Emma"
score = 50.500
print(f"Are you {name}?")
print(f"name :{name} score : {score}")

5-2. 문자열 내 따옴표 표현

  • 다른 따옴표로 감싸기
print('You said, "Yes."') 
  • 역슬래시 "\"로 escape하기
    - 역슬래시 바로 뒤의 기호는 escape되어 기능 대신 문자 출력됨
print("You said, \"Yes.\"") 

5-3. 다중 문자열 표현

  • 같은 따옴표를 세 번씩 쓰기
say = """Hi
OK
Bye"""
# 두 따옴표 모두 가능
count = '''One
Two
Three'''

5-4. 인덱싱 (Indexing) 과 슬라이싱 (Slicing)

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])
5-4-1. 슬라이싱 (Slicing)
  • 인덱스를 사용하여 일부를 잘라내기
    시작 인덱스 요소는 포함, 끝 인덱스 요소는 제외 (start inclusive, end exclusive)
    변수명[시작인덱스:끝인덱스] 형식
    • 인덱스 생략
      • 시작 인덱스 생략 : 처음부터
      • 끝 인덱스 생략 : 끝까지
      • 모두 생략 : 전체
    • 인덱스 증가폭 지정
      • 범위 내에서 지정한 증가폭 만큼 건너뛰어 요소 가져옴(리버스 인덱스 활용 가능)
        [시작인덱스:끝인덱스:인덱스증가폭]

5-5. 문자열 관련 함수

5.5.1 문자열의 길이
  • len()
txt = "Hi, Kim!"
print(len(txt))
5.5.2 문자열 교체
  • replace()
    - string에서 사용하는 method(함수)
txt = "Hello, World"
print(txt.replace("Hello", "Hi"))

#교체 문자열을 지정하고 교체 후 문자열에 아무것도 안넣으면("") 해당 문자를 삭제함
population = "9,900,986명"
print(int(population.replace(",","").replace("명",""))+100)
5.5.3 문자열 대소문자 변환
  • upper()
  • lower()
name = "Ada Lovelace"
print(name) 
print(name.upper())
print(name.lower())
print (name.capitalize())
5.5.4 문자열 나누기
  • 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])
5.5.5 문자열 공백 제거
  • 원본 데이터에 양 끝에 있는 스페이스를 없애고 싶은 경우 사용하는 함수들
    • strip()
    • rstrip()
    • lstrip()
lang = "    Hello      "
print(len(lang)) # 원래 15자리인데 
print(len(lang.strip())) # strip하면 Hello만 남아 5자인것을 볼 수 잇음 
print(len(lang.rstrip())) #오른쪽에 있는 스페이스만 삭제
print(len(lang.lstrip())) #왼쪽에 있는 스페이스만 삭제
profile
:D

0개의 댓글