etc/introducing python: 처음 시작하는 파이썬

2장: 파이 재료;숫자, 문자열, 변수

seul chan 2017. 1. 11. 01:47

2장 - 파이 재료

2.1. variable

  • 소문자, 대문자, 숫자, underscore (_) -> only can use for variable
  • reserved word can't be used for var ( False, None, True, and, as, assert,break, class, continue, def, del, elif, else, if, except, finally, for, from, global, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield )

2.2. num

2.2.1. int (정수)

  • +123 : 그냥 123
  • 음수 표현: -를 숫자 앞에 붙인다.
  • 나눗셈에는 2가지 방식이 있다: / -> 부동소수점, // -> 정수(소수점 제외 결과)
  • 0으로 나누면 예외 (ZeroDivisionError)


a = 95

a -= 3

a

divmod(9, 5) 

# 소숫점을 제외한 몫과 나머지를 나누는 함수


2.2.3. 진수

숫자 앞에 다음을 붙이면 2, 8, 16진수를 사용할 수 있다.

  • 2진수: 0b, 0B
  • 8진수: 0o, 0O
  • 16진수: 0x, 0X

2.2.4. 형변환

int()함수: 정수형으로 변환

  • True는 0, False는 1


2.3. 문자열 string

in Python, string is immutable.

  • 빈문자열; '', "" 등... -> 문자열을 합칠 때 공백 입력 가능

bottles = 99

# base = ''

base += 'current inventory: '

base += str(bottles)

print(base)


2.3.3. 이스케이프 문자

파이썬은 문자열 안의 일부 문자의 의미를 다르게 해석 -> 특정 효과 부여 가능 back slash () 사용

  • \n : 줄바꿈 기호
  • \t : tab
  • \" 로 이중인용 표현 가능
  • \를 입력하고 싶을때는 \로

testimony = "\"I did nothing!\" he said."

print(testimony)

testimony += "\\"

print(testimony)


2.3.4 결합: +

파이썬은 문자열 결합시 공백을 자동으로 넣지 않음 (print()는 인자 사이에 공백을 붙임)

2.3.5. 복제하기 : *

  • 연산자를 활용해 문자열 복제


# 2.3.5 예제

start = 'Na ' * 4 + "\n"

middle = 'hey '*3 + "\n"

end = 'Goodbye.'

print(start + start + middle + end)


2.3.6.문자 추출: []

letters[5] 와 같은 형태로 특정 문자열을 뽑을 수 있다. 문자열은 불변하기 때문에 특정 인덱스에 문자 삽입, 변경할 수 없다

대신 replace(), indexing slice 등을 활용해서 바꿀 수 있다

2.3.7 슬라이스 [start:end:stop]

  • [:] 처음부터 끝까지 전체 추출
  • [start:] start부터 끝까지 추출
  • [:end] from the start to (end - 1)
  • [start:end] from the start to (end-1)

2.3.8. 길이: len()

len() 형식으로 문자열의 길이를 잴 수 있음 문자열 함수는 string.function(arguments) 형식으로 사용

2.3.9. 나누기: split()

todos.split(',') : , (쉼표)를 기준으로 string을 split한다

  • 구분자를 지정하지 않으면 공백 문자를 자동으로 사용 (\n, ' ', 'tab)

2.3.10. 결합하기: join()

문자열 list를 하나의 문자열로 결합. 결합할 문자열 지정한 다음에 리스트를 결합

  • string.join(list) 형태로 사용
  • ex) '\n'.join(lines)
crypo_list = ["yeti", "bigfoot", "Loch ness monster"]
crypo_string = ', '.join(crypo_list)
print(crypo_string)


2.3.11. 문자열 다루기

파이썬의 많은 문자열 함수를 활용해서 다양하게 사용 가능

# all 자로 시작하는가?

poem.startswith('all')

# wet... 으로 끝나는가 ? (줄바꿈 문자도 있다)

poem.endswith('and wet...\n')

#첫번째로 the 가 나오는 오프셋은?

word = 'the'

poem.find(word)

#마지막으로 the 가 나오는 오프셋?

poem.rfind(word)

# the 가 몇개 나오는가?

poem.count(word)

#시가 글자, 숫자로만 이뤄졌는가?

poem.isalnum()


2.3.12 대소문자, 배치

내장함수- strip : 시퀀스 삭제

  • 문자열은 불변하기 때문에 setup 문자열을 바꿀 수 없다. 단지 값을 설정하고 함수를 수행한 뒤 새로운 문자열로 결과를 반환하는것 뿐이다

setup = "a duck goes into a bar..."
print(setup.strip('.'))
print(setup.capitalize()) # 첫번째 단어 대문자로
print(setup.title()) #단어의 첫글자 대문자로
print(setup.upper()) #모든 글자 대문자로
print(setup.lower()) #모든 글자 소문자로
print(setup.swapcase()) #대소문자 바꾸기

#문자열 정렬 함수
print(setup.center(30)) # 지정한 공간에서 중앙에 배치
print(setup.ljust(30)) # 왼쪽 배치
print(setup.rjust(30)) # 오른쪽 배치

2.3.13. 대체: replace

  • 인자로 바꿀 문자열, 대체할 문자열, 횟수를 입력.
  • 횟수를 생략하면 처음만 바꿈

print(setup.replace('duck', 'cat'))

print(setup.replace('a', 'a famous', 100))  # 단어의 중간에 들어있는 a도 바꾼다.

# 바꾸고 싶지 않다면 regular expression을 활용해서 바꾸지 않으면 된다.