python 문자열

|

패스트캠퍼스 웹 프로그래밍 수업을 듣고 중요한 내용을 정리했습니다.
개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
이 포스팅에서는 python 문자열에 대해 설명합니다.


문자열

작은 따음표와 큰 따음표를 혼용해서 쓰는 방법

# 기본적으로는 ''와 "" 둘다 사용 가능하다.
>>> '안녕하세요'
>>> "안녕하세요"

# ''안에 "" 사용이 가능하고 ""안에 '' 사용이 가능하다.
>>> '안녕하세요 속에 "안녕하세요"'

#'''는 여러줄에 걸친 문자열을 나타낼 때 사용한다.
>>> '''안녕하세요
...
... 안녕안녕 나는나는나는
...
... 누구게요?
... 누구인지 맞춰보세요! '''

이스케이프 문자

이스케이프 문자 설명
\t 탭 (tab)
\n 줄바꿈
\ (역슬래시) 입력
' 작은따옴표 (‘) 입력
" 큰따옴표 (“) 입력

인덱스 연산

문자열에서 문자를 추출할 때 가장 왼쪽은 0, 가장 오른쪽은 -1

>>> lux = '빛으로 강타해요!'
>>> lux[0]
'빛'
>>> lux[-1]
'!'

그런데 문자열은 불변이기에, 인덱싱한 부분에 새 값을 대입할 수는 없다.

lux[0]='손'

위 같은 대입은 불가능하다.

슬라이스 연산

[start:end:step] 형식을 사용

  • [:] : 처음부터 끝까지
  • [start:] : start부터 마지막까지
  • [:end] : 처음부터 end까지
  • [start:end] : start부터 end까지
  • [start:end:step] : start부터 end까지, step만큼 뛰어넘는다.

길이

내장함수 len을 사용

문자열 나누기 (slpit)

>>> girlsday = "민아,유라,소진,혜리"
>>> girlsday.split(',')
['민아', '유라', '소진', '혜리']

문자열 결합 (join)

>>> girlsday_list = girlsday.split(',')
>>> girlsday_str = ', '.join(girlsday_list)
>>> print(girlsday_str)
민아, 유라, 소진, 혜리

{} format

>>> fruits = '사과, 바나나, 멜론'.split(',')
>>> colors = '빨강, 노랭, 초록'.split(',')

>>> for item in fruits:
      print('fruits: {}, colors: {}'.format(item, colos[fruits.index(item)]))

fruits: 사과, colors: 빨강
fruits: 바나나, colors: 노랑
fruits: 멜론, colors: 초록

f 표현법

f'{변수 또는 표현식}'

# 기본 형태
apple = '사과'
banana = '바나나'
train = '기차'

f'{apple}은 맛있어 맛있으면 {banana} {banana}는 길어 길면 {train}]

실습

1.여러 줄의 텍스트를 multi_lines변수에 할당하고, print()함수로의 출력과 인터프리터의 자동 출력(변수명 입력)을 비교해보시오.

multi_lines = '''안녕하세요
안
녕
하

세 요~ '''

>>> print(multi_lines)
안녕

세요~~~

;;;ㅎㅎ;히히히

>>> multi_lines
'안녕\n\n세요~~~\n\n힣;ㅎ;ㅎ;ㅎㅎ;히히히'

2.str1, str2변수에 각각 문자열을 할당하고, 두 변수를 결합해 str3변수에 할당해보시오.

str1 = '안녕'
str2 = '하세요'

>>> str3 = str1 + str2
>>> str3
'안녕하세요'

3.str1변수에 * 연산자를 사용한 결과를 출력해보시오.

>>> str3 * 3
'안녕하세요안녕하세요안녕하세요'

python 숫자

|

패스트캠퍼스 웹 프로그래밍 수업을 듣고 중요한 내용을 정리했습니다.
개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
이 포스팅에서는 python 숫자에 대해 설명합니다.


내장데이터 타입(숫자)

수학연산자

연산자 설명 결과
+ 더하기 32 + 7 39
- 빼기 82 - 2 80
* 곱하기 3 * 7 21
/ 나누기 7 / 2 3.5
// 정수 나누기 7 // 2 3
% 나머지 7 % 3 1
** 지수 2 ** 10 1024

산술 연산자 결합

>>> a = 100
>>> a -= 3
>>> print(a)
97

우선순위

>>> 10 + 5 * 4

>>> 20 + (300 + 50 * 4)

진수

  • 2진수(binary) : 0b 또는 0B
  • 8진수(octal) : 0o 또는 0O
  • 16진수(hex) : 0x 또는 0X

실습

1.양수 1234를 표현해본다.

+1234

2.음수 100을 표현해본다.

-100

3.10과 3의 덧셈, 뺄셈, 곱셈, 나눗셈, 정수나눗셈, 나머지, 지수 연산을 실행해본다.

10 + 3
10 - 3
10 * 3
10 / 3
10 // 3
10 % 3
10 ** 3

4.c에 60을 할당 후 8과의 산술연산자 결합으로 아래 목록을 표현해본다.

c = 60
  • 나누기 연산 결과를 표현
  c / 8
  • 정수 나누기 연산 결과를 표현
  c // 8
  • 나머지 결과를 표현
  c % 8

5.부동소수점형 변수를 정수형으로 형변환을 해본다

int(6.2342)

6.정수형 변수를 부동 소수점형으로 형변환을 해본다.

float(3235)

python 변수

|

패스트캠퍼스 웹 프로그래밍 수업을 듣고 중요한 내용을 정리했습니다.
개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
이 포스팅에서는 python 변수에 대해 설명합니다.


변수

파이썬의 모든것 (정수, 문자열, 함수 등)은 객체(object)로 이루어져 있다.

객체는 데이터의 형태를 결정해주는 타입으로 파이썬에서는 객체의 타입을 바꿀 수 없다.

프로그래머는 변수를 선언하고 사용하는 형태로 컴퓨터의 메모리에 값을 할당하고, 참조할 수 있으며 파이썬에서 값을 할당할 경우에는 =를 사용한다. 기본적으로 우리는 =같다라고 생각하지만 파이썬에서 같다의 의미는 ==를 사용한다.

>>> var1 = 100
>>> pring(var1)
100

위와 같은 코드는 변수 var1에 100이라는 정수를 할당하고, print를 이용해 변수 var1가 가진 값을 출력한다.

그런데 변수는 단지 이름일 뿐이며 그 자체가 어떠한 값을 갖는것은 아니다.

위의 경우 var1이라는 변수는 100이라는 데이터를 직접 가지는 것이 아니라, 100이라는 정수형 객체가 있고 a는 단순히 해당 객체를 참조하는 역할을 한다.

>>> var2 = var1
>>> var3 = var1
>>> var4 = var1

>>> var1 = 101

var2, var3, var4를 var1과 같다고 선언한 뒤 var1의 값을 바꾸면 상식적으로 우리는 var2, var3, var4의 값이 var1과 같은 101로 바뀌었을거라고 생각하지만,

>>> var1 = 101
>>> var2 = 100
>>> var3 = 100
>>> var4 = 100

이렇게 출력된다.

그 이유는 실제로 컴퓨터가 저장하고 있는 부분을 메모리라고 하는데, 컴퓨터의 데이터는 메모리에 저장이 되고 메모리는 주소를 가진다.

100 이라는 숫자가 어딘가 메모리에 들어가 있다. var1 이라는 변수는 얘가 바로 100이라는 숫자를 가지는게 아니라 그냥 100이라는 값을 참조하게 된다.(가리킨다)

따라서 var2, var3, var4는 var1이 100을 참조하는 것을 가리키면서 100이라는 숫자를 똑같이 참조하고 있다. 근데 이때 var1는 101이라고 재 정의되면서 var1은 101을 참조하고 그와 동시에 var1이 100을 참조하는 연결은 끊어지게 되면서 var1만 101을 가리키고 var2, var3, var4는 여전히 100을 가리키고 있는 것이다.

이러한 숫자들의 주소는 id 내장함수로 확인해볼 수 있다.

>>> id(var1)
4520513920

>>> id(var2)
4520513888
>>> id(var3)
4520513888
>>> id(var4)
4520513888

변수의 타입 확인

내장 함수 type 사용

>>> type(var1)
<class 'int'>
>>> type('안녕하세요')
<class 'str'>

여기서 int는 integer(정수형)을 의미하고 str은 string(문자형)을 의미한다.

Unicode와 Incoding

모든 문자 인코딩 방식을 모두 유니코드로 교체하려고 한다.

문자 집합, 즉 문자 set은 처음에는 영어밖에 없었는데(폰트는 미국에서 처음 나왔으니까) 그래서 컴퓨터 설계할 때 영어만 출력할 수 있도록 되어있었다. 그런데 컴퓨터가 전세계로 퍼져나가면서 다른 나라 사람들은 문자를 출력할 방법이 없었다.

그래서 문자 집합들을 만들기 시작했는데, 이를 만들면 바이트로 글자를 나타내는데, (1바이트로 나타낼 수 있는 글자 가지수는 (1바이트는 8비트) 256가지) 근데 문제는 한글이 굉장히 복잡한 언어여서 1바이트를 가지고 표현하던 아키드 코드의 부족한 점을 보완하기 위해 만든 코드가 유니코드이다.

변수의 입력과 출력

입력은 내장함수 input사용

>>> var  = input()

>>> var = input('숫자를 입력하세요 :')

출력은 내장함수 print사용

print(var)

실습

1.1일이 몇초인지 계산 후 해당결과를 seconds_per_day 변수에 할당하라

seconds_per_day  = 24 * 60 * 60

2.1년이 몇 초인지 계산 후 해당결과를 seconds_per_year 변수에 할당하라

seconds_per_year = 365 * seconds_per_day

3.각 변수의 타입을 확인하라

print(type(seconds_per_day))

혹은

type(seconds_per_year)

4.문자열을 입력해주세요 : 라는 안내문구를 띄워주도록 input함수를 사용하고, 결과는 var에 할당하라

var = input('문자열을 입력해주세요 : ')

python 첫 시작

|

패스트캠퍼스 웹 프로그래밍 수업을 듣고 중요한 내용을 정리했습니다.
개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.


python

리터럴

변하지 않는 고정된 데이터 자체의 표현

  • 5 (정수형 데이터)
  • “Fastcampus” (문자열 데이터)
  • 1.2543 (부동 소수점 데이터)

표현식 (expression)

값을 의미하는 표현 또는 값을 반환하는 표현

구문 (statement)

값의 의미를 지니지않으며, 어떠한 목적을 수행하는 코드

for char in '안녕하세요':
  print(char)
...
안
녕
하
세
요

실습

파이썬 인터프리터를 계산기처럼 사용해서 1년이 총 몇 초인지 계산해보시오

365 * 24 * 60 * 60

pyenv, virtualenv, iPython 설치 및 설정하기

|

패스트캠퍼스 웹 프로그래밍 수업을 듣고 중요한 내용을 정리했습니다.
개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.


Python?

python은 흔히 고급언어라 불리고 고급언어란 사람이 알아듣기 매우 쉬운 언어를 의미한다.

python을 하기 위해서는 pyenv를 설치해야 하는데 pyenv는 프로젝트별로 파이썬 버전을 따로 관리할 수 있도록 도와주는 라이브러리를 뜻한다.

여러 프로젝트를 동시에 진행하다보면, 어떤 프로젝트에서는 python 2.7을, 어떤 프로젝트에서는 python 3.4를 사용하는 식으로 다양한 버전을 사용할 수 있는데, 이런 때 각각에 설치된 라이브러리 간 충돌을 방지하기 위해 사용한다.

pyenv 설치

* 맥

brew install pyenv
brew install pyenv-virtualenv

이때 virtualenv는 파이썬 개발환경을 프로젝트별로 분리해서 관리할 수 있게 해주는 라이브러리다

위의 pyenv와 다른점은 pyenv는 파이썬의 버전을 관리해주는 거라면, virtualenv파이썬 패키지 설치 환경 을 따로 관리한다

pyenv 설정

* 설치 후 pyenv 관련 설정을 shell에 추가한다
vi ~/.zshrc

export PYENV_ROOT=/usr/local/var/pyenv
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi

그리고 pyenv를 통해서 python 3.6.5버전을 설치한다.

pyenv install 3.6.5

pyenv 사용


1.가상환경 생성

pyenv wirtualenv <version> <env_name>

pyenv virtualenv 3.6.5 new_python

2.사용할 폴더로 이동

cd projects
mkdir python
cd python

3.local 에 가상환경 지정

pyenv local now_python

4.가상환경 지우기

pyenv uninstall new_python

###iPython

기본 파이썬 셸보다 다양한 기능을 할 수 있도록 해주는 셸을 제공한다.

iPython 설치

pip install iPython

커맨드 라인에서 ipython실행

vi 단축기

shift + g : 가장 아래로

shift + a : 현재 줄에서 가장 마지막으로