· 숫자형
숫자형(Number)이란 숫자 형태로 이루어진 자료이다.
항목 | 파이썬의 사용 예시 |
정수 | 123, -345, 0 |
실수 | 123.45, -1234.5, 3.4e10 |
8진수 | 0o34, 0o25 |
16진수 | 0x2A, 0xFF |
※ 8진수와 16진수는 파이썬에서는 잘 사용하지 않는 형태이므로 알아만 두자.
print(10, '8진수 : ', oct(10), '10진수 : ',hex(10), '2진수 : ', bin(10))
print(10, 0o12, 0xa, 0b1010)
- 결과
10 8진수 : 0o12 10진수 : 0xa 2진수 : 0b1010 10 10 10 10 |
· 연산자
<예제>
print(3 + 6, 6 - 3, 15 * 3, 7 / 3)
print(8 / 3, 8 // 3, 8 % 3, divmod(8, 3))
두 번째 출력문에서 왼쪽으로부터 나누기, 몫, 나머지, (몫, 나머지) 순으로 출력한다.
<결과>
9 3 45 2.3333333333333335 2.6666666666666665 2 2 (2, 2) |
· 값의 입력을 위해 '치환'하는 경우
<예제>
v1 = 3 # 치환
print(v1)
# 2 = v1 # 변수의 자격이 없어서 에러가 발생한다.
v1 = v2 = v3 = 8 # 한 번에 여러 변수에게 값을 할당 가능하다.
print(v1, v2, v3)
처음 v1에 3의 값을 치환해주었지만, 다시 v1, v2, v3에게 값을 할당하면서 새롭게 치환된 것을 알 수 있다.
<결과>
3 8 8 8 |
· 파이썬에서 숙지 해야할 유용한 기능들
<예제>
a = '안녕하세요.'
b = '반가워요.'
c = '저도요.'
print(a, end = ';')
print(b)
print(c, \
end = ' ')
end = '내용'
내용에는 구분자를 넣어 행으로 출력할 때 출력되는 내용을 구분지어줄 수 있다. 이는 반복문에서 사용하면 유용하게 출력되는 내용들을 정리해서 출력할 수 있게 해준다. 보통은 공백을 넣어서 많이 사용한다.
'\'는 명령어가 계속 이어지고 있다는 뜻을 의미한다. 마지막 문장을 보면 end = ' '를 다음 줄에 썼음에도 불구하고 오류가 발생하지 않는 이유이다.
<결과>
안녕하세요.;반가워요. 저도요. |
· 참조값을 교환하는 방법
<예제>
v1 , v2 = 5, 20
print(v1, v2)
v2, v1 = v1, v2
print(v1, v2)
처음엔 v1 = 5, v2 = 20을 할당해주고 출력하지만
다음 줄에서 v2 = v1, v1 = v2를 할당해주면서 서로 값이 교환된 것을 알 수 있다.
<결과>
5 20 20 5 |
· Paking 연산 (나중에 더 자세히 공부하고, 지금은 이런게 있다 정도로만 기억하자.)
<예제>
v1, *v2 = 1, 2, 3, 4, 5
print(v1, v2)
*v1, v2, v3 = 1, 2, 3, 4, 5
print(v1, v2, v3)
# *v1, *v2, v3 = 1, 2, 3, 4, 5 # 패킹 연산을 한 곳에서 두 개 이상 사용하면 오류가 발생한다.
패킹 연산이란, 보는 것과 같이 '*'를 변수 앞에 사용해서 적용하는데 두 변수에게 여러 값을 줄 때 첫 번째 변수는 한 개의 값을 치환한다. 그러면 '*'가 앞에 붙어있는 변수가 나머지 값들을 list의 형태로 받아온다.
또 패킹은 하나의 연산에서 두 개 이상 사용하면 오류가 발생한다.
*v1, *v2, v3 = 1, 2, 3, 4, 5
^
SyntaxError: two starred expressions in assignment
<결과>
1 [2, 3, 4, 5] [1, 2, 3] 4 5 |
· 추가 연산 기호와 문자열의 연산 및 논리 연산
<예제>
print(7 > 3, 7 == 3, 7 <= 3, 7 != 3)
print(5 > 3 and 4 < 3, 5 > 3 and 4 >=3)
print(5 > 3 or 8 < 3, 5 > 3 or 5 >= 3)
print(not(5 >= 3))
print('대' + '한' + '민' + '국')
print('대한민국')
print('만세' + '만세' + '만세')
print('만세' * 3)
크기에 대한 비교 결과는 True와 False로 결과가 출력된다. 이렇게 참과 거짓으로 출력되는 것을 Boolean이라고 한다.
and 연산자는 두 비교 값 혹은 어떤 식이 올 때 그 결과가 둘 다 참이어야지만 True를 출력한다.
or 연산자는 둘 중 하나라도 참이라면 결과적으로 True를 출력한다.
not은 출력결과의 결과 True나 False를 반대로 출력하는 역할을 한다. (부정)
문자열에서의 '+'는 각 문자들을 붙여줘서 연결시켜주는 역할을 한다.
(숫자를 문자화 하고 +를 사용하면 숫자도 붙여쓰기가 가능하다.)
문자열에서 '*'는 문자열의 반복출력 횟수를 정해줄 수 있다.
<결과>
True False False True False True True True False 대한민국 대한민국 만세만세만세 만세만세만세 |
· 누적 연산과 불린 처리 과정
<예제>
a = 10
a = a + 1
a += 1 # -=, *=, /= 등이 존재한다.
print(a)
print('부호 변경 방법 : ', a, a * -1, -a, --a, +a)
print('불린 처리 : ', True, False, bool(True), bool(False))
print('불린 처리 : ', bool(1), bool(1.5), bool(-1)) # 0이외의 값은 True
print('불린 처리 : ', bool(0), bool(0.0), bool(None), bool(''), bool([]), bool({}))
a += 1은 a = a + 1과 똑같은 표시이다.
<결과>
12 부호 변경 : 12 -12 -12 12 12 불린 처리 : True False True False 불린 처리 : True True True 불린 처리 : False False False False False False |
· Print 함수의 서식(이스케이프 문자)
print문으로 파일의 저장위치나 불러올 위치를 출력하는 경우 \로 작동되는 기능들이 있는데 이 기능을 제외하고 문자로써 출력하는 방법이 있다.
· 이스케이프 문자
<예제>
print('aa\t\bb')
<결과>
aa b |
이와 같이 \t와 \b는 특수한 기능을 하기 때문에 출력에 있어서 원하는 문장을 출력해내지 못한다.
이러한 문자는 다음 같이 존재한다. (빈도가 높은 문자)
\n | 줄 변경(enter 키 역할) |
\t | 다음 탭으로 이동 (탭은 공백 4칸의 역할을 하기도 한다.) |
\b | 뒤로 한칸 이동 |
\\ | '\'를 출력하기 위해선 앞에 '\'를 한 번 더 사용하면 된다. |
\' | ''는 문자를 출력할 때 사용한다. 이러한 '를 문자로 출력하기 위해서는 마찬가지로 앞에 \를 입력해준다. |
\" | 파이썬에서는 '와 "를 특별히 구분하지는 않는다. 위와 같이 출력하면 된다. |
\a | 벨 소리 (출력 할 때 비프음이 나온다.) |
\r | 캐리지 리턴 (줄 바꿈과 동시에 커서도 다음 줄로 이동) |
\000 | Null 문자 |
맨 처음의 예시를 표현하면 다음 같이 표현할 수 있으며 \를 2번 입력할 것 없이 간단하게 출력하는 방법도 있다.
바로 출력하고 싶은 문자 앞에 'r'을 써주면 된다.
<예시>
print(r'aa\t\bb') # raw string r을 실행(기능을 잃고 순수하게 문자만 출력)
# print('C:\Users\Jo\OneDrive\문서\My Games')
print(r'C:\Users\Jo\OneDrive\문서\My Games')
두 번째 줄처럼 그냥 파일의 위치를 출력하려고 하면 아래와 같은 에러 메세지가 발생한다.
print('C:\Users\Jo\OneDrive\문서\My Games') # 일반 출력을 할 경우
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
<결과>
aa\t\bb C:\Users\Jo\OneDrive\문서\My Games |
· print 서식
print문의 서식에도 다양한 것들이 있다.
%d | 10진수 |
%x | 16진수 |
%o | 8진수 |
%f | 실수(소수점) |
%c | 문자 한글자 |
%s | 한글자 이상의 문자열 (숫자도 문자로 대입이 가능하다. 즉, 모든 값을 받을 수 있다.) |
<예시>
print('%d' % 2021) # %d에 숫자를 받아와 대입한다.
print('%7d' % 2021) # 총 자리수 7자리로 출력한다 여유분 공간은 공백으로 채운다.
print('%07d' % 2021) # 여유분 공간을 0으로 채워서 출력한다.
print('%-7d' % 2021) # 우측으로 자릿수가 채워진다. 여유분은 공백으로 충당
print('%f' % 202.1) # 실수 출력
print('%10.1f' % 202.1) # 총 10자리를 출력하고 소수점은 첫째 자리까지만 출력한다.
print('%10.3f' % 20.21) # 전체 10자리 출력, 소수점은 3자리까지만 출력.
print('%s' % '공부하는중') # 지금은 'program'이란 문자지만 변수를 넣어 출력해도 된다.
print('%cython' % 'P') # 앞에 글자가 계속 바뀌는 경우 유용하게 사용할 수 있다.
여러가지 print문의 기능들이 있는 것을 확인할 수 있다.
<결과>
2021 2021 0002021 2021 202.100000 202.1 20.210 공부하는중 Python |
위의 예시를 좀더 긴 문장으로 만들어 보면 다음과 같이 만들 수 있다.
<예시2>
print('저의 나이는 %d살입니다.' % 27)
print('저의 나이는 %s입니다.' % '스물 일곱')
print('저의 나이는 %d이며 관심사와 취미는 %s과 %s입니다.' % (27, 'IT기기 탐방', '게임'))
print('파이의 값은 %1.2f살이다.' % 3.1415) # 소수점 앞자리는 1글자, 소수점은 2글자
print('이름은 {}, 나이는 {}살'.format('victor', 25))
print('이름은 {0}, 나이는 {1}살'.format('victor', 25)) # 자릿수가 0부터 시작한다.
print('이름은 {1}, 나이는 {0}살 다시 이름은 {1}'.format(22, 'victor'))
print(format(1.5678, '10.2f')) # format은 나중에 나올 함수이지만 이렇게도 사용한다.
<결과>
저의 나이는 27살입니다. 저의 나이는 스물 일곱입니다. 저의 나이는 27이며 관심사와 취미는 IT기기 탐방과 게임입니다. 파이의 값은 3.14살이다. 이름은 victor, 나이는 25살 이름은 victor, 나이는 25살 이름은 victor, 나이는 22살 다시 이름은 victor 1.57 |
이렇게 특정 자리의 문자만 바꾸어 주는 것을 '문자열 포매팅'이라고 한다.
· 자료의 형식들
<예시>
print('type(데이터) 자료 형태의 확인')
print(5, type(5))
print(3.14, type(3.14))
print(5 + 4j, type(5 + 4j))
print(True, type(True))
print('123', type('123'))
print('카카오톡', type('카카오톡'))
print((1,), type((1,)))
print([1], type([1]))
print({1}, type({1}))
print({'key' : 123}, type({'key' : 123}))
print({'key':'123'}, type({'key' : '123'}))
<결과>
type(데이터) 자료 형태의 확인 5 <class 'int'> 3.14 <class 'float'> (5+4j) <class 'complex'> True <class 'bool'> 123 <class 'str'> 카카오톡 <class 'str'> (1,) <class 'tuple'> [1] <class 'list'> {1} <class 'set'> {'key': 123} <class 'dict'> {'key': '123'} <class 'dict'> |
'파이썬(Python)' 카테고리의 다른 글
List 자료형과 id()를 통한 변수 복사의 차이 (0) | 2021.06.06 |
---|---|
문자열과 관련된 함수 (0) | 2021.06.05 |
문자형 자료(인덱싱, 슬라이싱, 포매팅) (0) | 2021.05.24 |
주석과 변수 (0) | 2021.05.24 |
파이썬 공부 (0) | 2021.05.24 |