10. 파이썬 - 불, 문자열, 리스트와 튜플

1. 불과 비교, 논리 연산자


불리언 타입 bool

  • TrueFalse가 예약어로 미리 지정되어 있기 때문에 첫 문자를 항상 대문자로 사용해야한다.
  • bool() : 인수로 전달된 데이터의 참과 거짓 판단
    • 비어있으면 False, 비어있지 않으면 True
    • 정수 0, 실수 0.0 일때 False

비교 연산자 (무조건 bool 반환)

  • < == (값을 비교)
  • isis not (객체를 비교)
# 숫자가 같은지 비교 (기준은 첫번째 값)
>>> 10 < 20
True

# 문자열이 같은지 비교
>>> 'Python' == 'python'
False

# 객체가 같은지 비교
>>> 1 == 1.0
True             # 값은 같다
>>> 1 is 1.0
False            # 정수 객체와 실수 객체
>>> 1 is not 1.0
True

논리 연산자

  • and or not
# and : 두 값이 모두 t일때 t
>>> False and True
False

# or : 하나라도 t이면 t
>>> True or False
True

# not : 논리값 뒤집기
>>> not True and False or not False
False and False or True
False or True
True

# not, and, or 순으로 판단
  • 비교 연산자를 먼저 판단하고 논리 연산자를 판단한다.

  • 단락평가에 따라 논리 연산자의 결과가 달라질 수 있다.

    and 일때 첫 번째 값이 거짓이면 바로 거짓으로 결정

    or 일때 첫 번째 값이 참이면 바로 참으로 결정

    마지막 평가를 실시한 값을 그대로 반환한다.

# 두번째까지 평가해야 되서 두번째 값 반환
>>> True and 'Python'
'Python'

>>> 'Python' and True
True

# 첫번째만 평가하면 되서 첫번째 값 반환
>>> True or 'Python'
True

>>> 'Python' or True
'Python'

2. 문자열


  • 문자열안에 따옴표'를 넣으려면 다른 따옴표"로 묶어준다.

    혹은 따옴표 바로 앞에 \ (역슬래시)를 붙인다.

  • 여러줄로 된 문자열은 따옴표 세개 ''', """

    혹은 개행 문자 \n 을 넣어 줄을 바꾼다.

    개행문자도 하나의 문자로 인식된다. len() 함수로 확인가능

  • 한 줄이 너무 길면 \ 를 넣고 줄바꿈을 하면 계속 입력 가능하다.

  • + 로 연결 할 수 있고 * 로 반복 연결 할 수 있다.

  • 문자열도 인덱스로 접근 가능하다. (한글도 동일)

    → 슬라이싱 가능

특정 문자의 개수 및 위치

  • count() 함수 : 인자로 받은 문자가 몇개 포함되어 있는지 확인
  • find()index() 함수 : 인자로 받은 문자가 처음으로 등장하는 인덱스를 확인
py = "python programming"  

print(py.count('p'))  # 2

 
print(py.find('o'))   # 4

print(py.index('o'))  # 4

 
# 포함되어 있지 않은 경우

print(py.find('z'))   # -1 (없으면 무조건 -1을 반환)
print(py.index('o'))  # ValueError

대소문자 변환

  • upper() 함수 : 모든 문자를 대문자로 변환
  • lower() 함수 : 모든 문자를 소문자로 변환
py = "Python"  

print(py.upper()) # PYTHON

print(py.lower()) # python

# 원본은 변하지 않는다.

print(py)         # Python

문자열 변경하기

  • replace() 함수 : 첫번째 인자에 해당하는 문자를 찾아서 두번째 인자로 변경한다.

    해당하는 문자가 없으면 원본 그대로 반환한다.

py = "파이썬 공부는 너무 재밌어요!"  

# '파이썬'을 '자바'로 변경

print(py.replace("파이썬", "자바"))
# 자바 공부는 너무 재밌어요!

print(py)
# 파이썬 공부는 너무 재밌어요!
# (원본은 변하지 않는다.)

문자열 나누기

  • split() 함수 : 인자로 받은 문자를 기준으로 해당 문자열을 나눠서 하나의 리스트로 반환
py = "파이썬 공부는 너무 재밌어요!"  

print(py.split(' '))    # 띄어쓰기 기준
# ['파이썬', '공부는', '너무', '재밌어요!']

print(py.split())       # 공백 기준 (띄어쓰기, 탭, 줄바꿈 등)
# ['파이썬', '공부는', '너무', '재밌어요!']

print(py)
# 파이썬 공부는 너무 재밌어요!
# (원본은 변하지 않는다.)

3. 리스트와 튜플


리스트 만들기

# 빈 리스트 만들기

>>> a = []
>>> a
[]

>>> b = list()
>>> b
[]


# 여러 자료형을 저장

>>> person = ['james', 17, 175.3, True]
>>> person
['james', 17, 175.3, True]

range를 사용해 리스트 만들기

  • range(횟수) 는 연속된 숫자가 들어있는 리스트를 반환한다.

  • 횟수(끝)로 지정한 숫자는 포함하지 않는다.

  • 파이썬3에서 range(횟수)는 range 객체를 만든다.
    -> 메모리를 적게 사용할 수 있다. 파이썬 2.7xrange와 같음.

# range(횟수)

>>> range(10)
range(0, 10)


# 10을 포함하지 않는다.

>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


# 리스트 = list(range(시작, 끝))
# 시작과 끝 숫자 지정 (끝은 포함하지 않는다.)

>>> b = list(range(5, 12))
>>> b
[5, 6, 7, 8, 9, 10, 11]


# 리스트 = list(range(시작, 끝, 증가폭))
# 증가폭을 지정한다. (끝은 포함하지 않는다.)

>>> c = list(range(-4, 10, 2))
>>> c
[-4, -2, 0, 2, 4, 6, 8]

>>> d = list(range(10, 0, -1))
>>> d
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

튜플 만들기

  • 튜플은 리스트처럼 요소를 일렬로 저장하지만,

    안에 저장된 요소를 변경, 추가, 삭제 할 수 없다.

  • 튜플 = (값, 값, 값) / 튜플 = 값, 값, 값

  • 요소가 한 개인 튜플 만들기

    튜플 = (값, ) / 튜플 = 값,

range를 사용해 튜플 만들기

# 튜플 = tuple(range(횟수))

# 튜플 = tuple(range(시작, 끝))

# 튜플 = tuple(range(시작, 끝, 증가폭))

>>> c = tuple(range(-4, 10, 2))
>>> c
(-4, -2, 0, 2, 4, 6, 8)

튜플을 리스트로, 리스트를 튜플로 만들기

# tuple 안에 리스트 넣어서 새 튜플 만들기

>>> a = [1, 2, 3]
>>> tuple(a)
(1, 2, 3)


# list 안에 튜플 넣어서 새 리스트 만들기

>>> b = (4, 5, 6)
>>> list(b)
[4, 5, 6]


# 안에 문자열을 넣으면?

>>> list('Hello')
['H', 'e', 'l', 'l', 'o']

>>> tuple('Hello')
('H', 'e', 'l', 'l', 'o')

리스트와 튜플로 변수 만들기

# 변수 여러개를 한 번에 만들기
# 변수의 개수와 요소의 개수는 같아야 한다.

>>> a, b, c = [1, 2, 3]
>>> print(a, b, c)
1 2 3

>>> d, e, f = (4, 5, 6)
>>> print(d, e, f)
4 5 6


# 리스트 언패킹

>>> x = [1, 2, 3]
>>> a, b, c = x
>>> print(a, b, c)
1 2 3

# 튜플 언패킹

>>> y = (4, 5, 6)
>>> d, e, f = y
>>> print(d, e, f)
4 5 6

좋은 웹페이지 즐겨찾기