본문 바로가기
PROGRAMMING/PYTHON

[Python] 변수, 자료형(숫자형, 문자열)

by 안녕나는현서 2021. 4. 25.
728x90

- shift + enter : 코드 즉시 실행, 다음 코드 작성란 생성

- ctrl + enter : 다음 코드란 생성 없이 현재 코드만 실행

 

- 주석

  • #으로 표현
  • ctrl + / 으로 여러 줄을 한 번에 주석 처리할 수 있음

 

- 변수

  • 변할 수 있는 수
  • 데이터를 담을 수 있는 공간
  • 변수 이름은 자유롭게 설정 가능
  • 첫문자는 알파벳, 한글, underber(_)만 사용 가능, 예약어 사용 불가
  • id() 함수를 사용하여 메모리 주소 확인 가능

 

- 변수 선언하기

# 변수 선언하기

num = 3
print(num)

a, b = 10, 15
print(a)
print(b)
print(a,b)

c = d = 30
print(c)
print(d)

sum = a+b
print(sum)

[a, b] = ['python', 'life']
print(a)
print(b)

 

- 값 swap

x, y = 10, 20

tmp = x
x= y
y = tmp

print(x, y)

x, y = 10, 20

y, x = x, y
print(x, y)

 

- 자료형

  • 숫자(정수형 integer) : int
    • 0b 접두어 : 2진수
    • 0o 접두어 : 8진수
    • 0x 접두어 : 16진수
  • 숫자(실수형 Floating-point) : float (4.24e10 = 4.24 * 10^10), 10. (10.0) 또는 .01 (0.01)과 같이 표현가능
  • 복소수(complex) : 허수부는 j 접미사 사용
    • complex_num.real : 정수부 출력
    • complex_num.imag : 허수부 출력
  • 문자열(string) : str
  • 논리(True/False) : bool
    • (문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어있으면 False출력 / 숫자형은 1이 True, 0이 False)
  • type() 함수를 사용하여 데이터 타입 확인 가능

 

- 숫자형

# 변수에 정수대입

num1 = 13
print('num1 : ', num1)

num2 = 35
print('num2 : ', num2)

num2 = 77
print('num2 : ', num2)

 

- 문자열

# 변수에 문자열 대입

str1 = 'Funny python'
print(str1)

str2 = 'Easy python'
print(str2)

 

- 이스케이프 코드

  • 프로그래밍할 때 사용할 수 있도록 미리 정의해 둔 문자 조합
  • \n : 문자열 안에서 줄을 바꿀 때
  • \t : 문자열 사이에 탭 간격을 줄 때
  • \\ : 문자 \를 그대로 사용할 때
  • \' : 작은 따옴표(')를 그대로 사용할 때
  • \" : 큰 따옴표(")를 그대로 사용할 때
# 문자열 안에 따옴표를 포함시키고 싶을 때

# 1) 이중 인용부호 활용
food = "Python's favorite food is perl."
say = '"Python is very easy." he says.'

print(food)
print(say)
print('')

# 2) 이스케이프 코드 활용
food = 'Python\'s favorite food is perl.'
say = "\"Python is very easy.\" he says."
print(food)
print(say)

# 여러 줄인 문자열을 변수에 대입하고 싶을 때

# 1) 이스케이프 코드 활용
multiline = 'Life is too short\nYou need python'
print(multiline)

# 2) 연속된 따옴표 3개 사용
multiline = '''Life is too short
You need python'''
print(multiline)

 

- 문자열 연산 : 더하기, 곱하기

# 문자열 연산

# 1) 더하기 : 연결
head = 'Python'
tail = 'is fun!'
print(head+tail)

# 2) 곱하기
a = 'python'
print(a*2)

 

- 문자열 길이 구하기

# 문자열 길이 구하기

a = 'Life is too short'
len(a)

 

- 문자열 인덱싱

# 문자열 인덱싱 : 무엇인가를 '가리킨다'는 의미

a = 'Life is too short, You need python'
# 파이썬은 0부터 숫자가 매겨짐
# 뒤에서부터 세면 -1부터 숫자가 매겨짐
print(a[3])
print(a[-3])

 

- 문자열 슬라이싱

# 문자열 슬라이싱 : 무엇인가를 '잘라낸다'는 의미

a = 'Life is too short, You need python'
# 문자열[start:end] : start <= x < end
print(a[0:4])
print(a[:17])
print(a[19:])
print(a[:])
print(a[19:-7])

# 슬라이싱을 이용한 문자열 나누기

dy_info = '20200706Sunny'
year = dy_info[:4]
day = dy_info[4:8]
weather = dy_info[8:]

print('년도 : ', year)
print('월일 : ', day)
print('날씨 : ', weather)

 

- 문자열 포매팅

# 문자열 포매팅 : 문자열 안의 특정한 값을 바꿔야 할 경우 사용

# 1) %-formatting
print('I eat %d apples.'%3)
print('I eat %s apples.'%'five')
number = 3
print('I eat %d apples.'%number)
day = 'three'
print('I ate %d apples. so I was sick for %s days.'%(number, day))

print('')

# 2) str.format()
number = 10
day = 'three'
print('I ate {} apples. so I was sick for {} days.'.format(number, day))
print('I ate {number} apples. so I was sick for {day} days.'.format(number=10, day=3))

# 3) f-string formatting
name = '홍길동'
age = 30
print(f'나의 이름은 {name}입니다. 나이는 {age}입니다.')
print(f'나는 내년이면 {age+1}살이 된다.')
d = {'name' : '홍길동', 'age' : 30}
print(f"나의 이름은 {d['name']}입니다. 나이는 {d['age']}입니다.")

 

- 문자열 포맷 코드

  • %s : 문자열(string) -> 뒤에 숫자형이 와도 자동으로 문자열로 바꾸기 때문에 어떤 형태의 값이든 반환 가능
  • %c : 문자 1개 (character)
  • %d : 10진 정수(integer)
  • %o : 8진수
  • %x : 16진수
  • &f : 부동소수점, 소수점 이하 6자리의 정밀도가 기본
  • %% : 문자 '%' 자체
# 포맷 코드와 숫자 함께 사용
# 1) 오른쪽 정렬 : 숫자만큼 길이의 문자열 공간에서 대입값을 오른쪽으로 정렬
print('%10s' % 'hi!')

# 2) 왼쪽 정렬
print('%-10s' % 'hi!')

# 3) 소수점 표현 : %전체길이.소수점 뒤의 숫자 개수f
print('%0.4f' % 3.42134234)
print('%7.4f' % 3.42134234)

 

- 문자열 관련 함수 : count, find, rfind, index, join, replace, split

# 문자열 관련 함수

s = 'Life is short, You need Python.'

print('문자 개수 : ', s.count('i'))
print('단어 개수 : ', s.count('Python'))

print('')

print('문자 위치 : ', s.find('s')) #앞에서부터 찾음
print('문자 위치 : ', s.rfind('s')) #뒤에서부터 찾음
print('문자 위치 : ', s.index('s'))
# find : 찾는 문자가 없으면 -1 반환
# index : 찾는 문자가 없으면 오류 발생

print('')

print('문자 삽입 : ', '/'.join(s))

print('')

print('문자 바꾸기 : ', s.replace('short', 'long'))
print('문자 나누기 : ', s.split())
print('문자 나누기 : ', s.split(','))

 

- 그 외 문자열 관련 함수

  • upper : 소문자를 대문자로 변경
  • lower : 대문자를 소문자로 변경
  • lstrip : 왼쪽 공백 지우기
  • rstrip : 오른쪽 공백 지우기
  • strip : 양쪽 공백 지우기
728x90

'PROGRAMMING > PYTHON' 카테고리의 다른 글

[Python] 딕셔너리  (0) 2021.04.25
[Python] 반복문  (0) 2021.04.25
[Python] 리스트, 튜플  (0) 2021.04.25
[Python] 조건문  (0) 2021.04.25
[Python] 연산자  (0) 2021.04.25

댓글