프로그래밍/Python

[파이썬 독학] 4. 변수&연산

Beginner:) 2022. 7. 4.
320x100

2022.06.27 - [프로그래밍/Python] - [Python 배우기] 3. 자료형

 

[Python 배우기] 3. 자료형

2022.06.26 - [프로그래밍/Python] - [Python 배우기] 2. 파이참(PyCharm) 설치 [Python 배우기] 2. 파이참(PyCharm) 설치 2022.06.25 - [프로그래밍/Python] - [Python 배우기] 1. 파이썬 설치하기&실행하기 [Pyt..

park-duck.tistory.com


자료형은 데이터의 형태를 뜻하며 숫자, 문자, 불 등이 있다고 했다.

이번에는 변수를 배우면서 자료형을 연산해보자.


0. 변수(Variable)
- 먼저 들어가기 전에 변수를 알아보자. 변수란 자료형의 값을 저장하는 공간(메모리)이다.
개념이 어렵다면 "할 수 있는 수"라고 기억해도 좋다.

- 변수는 어떻게 활용하는지 예를 들어본다. 아래의 코드는 a라는 변수에 숫자형 123을 저장하는 것이다.
이전에도 말했지만 "=" 기호는 수학에서 "같다"라는 뜻이지만 프로그래밍에서는 우항에서 좌항으로 "대입하다"이다.

- type(a)는 a변수의 자료형을 나타내는 명령어이다. 아래의 소스코드를 실행하여 결과를 확인하자
(복붙하지말고 타이핑을 해야 도움이 된다)

a=100
print(type(a))
print(a)
#결과 : <class 'int'> 100

b=3.14
print(type(b))
print(b)
#결과 : <class 'float'> 3.14

c=1.23456e2
print(type(c))
print(c)
#결과 : <class 'float'> 123.456

d=0o375
print(type(d))
print(d)
#결과 : <class 'int'> 253

e=0xFF
print(type(e))
print(e)
#결과 : <class 'int'> 255


1. 숫자형

  • 사칙연산
    - 기본적으로 더하기(+), 빼기(-), 곱하기(*), 나누기(/)가 가능하다
    - 추가적으로 제곱(**), 몫(//), 나머지(%)도 가능하다.

a = 5
b = 3
print(5+3)
# 결과: 8

print(5-3)
# 결과: 2

print(5*3)
# 결과: 15

print(5**3)
# 결과: 125

print(5/3)
# 결과: 1.6666666666666667
# 5/3은 1.66666666666...... 인데 이러한 무한소수는 컴퓨터 데이터로 표현 불가능하다.
# 따라서 임의로 반올림을 하거나 등으로 임의 처리를 하는데 이는 오류를 나타낼 수 있음을 인지해야한다.

print(5//3)
# 결과: 1

print(5%3)
# 결과: 2

 

반응형


2. 문자형 연산

  • 문자형 변수 선언

- 문자열은홀따옴표(') 또는 쌍따옴표(")로 감싼다고 설명했다. (3개는 잘 사용하지 않는다.)
- 변수 또한 대입연산자를대입 연산자를 사용한다. (모든 자료형이 대입 연산자를 사용)

text = 'Hello Python!'
# 또는
text = "Hello Python!"
# 또는 
text = '''Hello Python!'''
# 또는 
text = """Hello Python!"""


- 문자열 안에 홀따옴표 또는 쌍따옴표를 표현하고 싶을 때는 이스케이프 문자 역슬래쉬( \ )를 사용한다.
(사용하는 키보드 또는 설정 값에 따라 역슬래쉬 '\'가 원화(₩) 표시로 나타날 수 있다)

# text = 'Yes, I'm a good student'
# 'Yes, I' 까지만 문자열로 인식하고, 그 뒤 m ~ student는 오류로 인식

text = 'Yes, I\'m a good student'
# 이스케이프 \' 를 사용하면 문자 I 우측 홀따옴표(')는 문자열을 지정하는 홀따옴표가 아닌 문자 그 자체의 홀따옴표로 표시


# text = "He says, "I'm a good student"
# "He says, " 까지만 문자열로 인식하고, 그 뒤 I ~ student는 오류로 인식

text = "He says, \"I'm a good student\""
# 문자열 표시를 쌍따옴표로 지정했기 때문에 I우측 홀따옴표를 이스케이프 하지않아도 된다.
# 그러나 "I'm a good student"를 표시하기 위해 두개의 이스케이프를 사용하여 쌍따옴표가 문자열을 지정하는 쌍따옴표가 아닌 문자 그 자체의 쌍따옴표로 표시


- 이외에도 탭, 백스페이스, 줄바꿈(엔터) 등을 표시할 수 있는 이스케이프가 존재한다.
(아래의 표 외에 궁금한게 있으면 따로 검색)

이스케이프 코드 설명
\n 줄바꿈
\t
\\ 이스케이프 코드 "\"가 아니고, 문자 자체인 "\"를 표시
\b 백스페이스

 

  • 문자형 사칙연산

- 문자도 사칙연산이란게 있을까? 정답은 "있다"이지만 생각하는 사칙연산과는 다르다.
- 더하기(+)는 문자열 이어 붙이기, 곱하기(*)는 문자열 n개만큼 추가하기이다.
- 빼기(-) ,나누기(/)는 기능이 없어 오류 난다.

first_text = "Hello "
second_text = "world"

print(first_text + second_text)
# 결과 : Hello world

print("#"*50)
# 결과 : ##########.....#######


- 이외 문자열 기능은... 너무 많아서 참고 중인 점프 투 파이썬을 보자... https://wikidocs.net/13
(참고로 포매팅(format())은 사람에 따라 자주 사용하고, 인덱싱은 배열 차례에서 자세히 다룰 것이다)



3. 불형(Boolean)

  • 불형 변수 선언

- 불형은 True(참, 1)와 False(거짓, 0) 두가지만 존재한다. (대소문자 구분)

var1 = True
var2 = False

print(type(var1))
print(var1)
# 결과 : <class 'bool'> True

print(type(var2))
print(var2)
# 결과 : <class 'bool'> False

 

  • 불형 논리 연산

- 수학에서 불의 대수를 이해하였다면 불형은 껌이다!
- 이 불의 대수도 수학과는 조금 다른데(개념적으로는 같다) 기본 동작으로 논리곱(AND), 논리합(OR), 논리 부정(NOT)이 있다. (코드는 소문자로 작성한다.)

코드 설명 예제
and "그리고"라는 뜻이다.
양쪽 값이 모두 True여야 결과도 True이며 나머진 False이다.
1*1 =1, 1*0=0 식으로 생각해도 좋다.
1. True and True = True
2. True and False = False
3. False and True = False
4. False and False = False
or "또는"라는 뜻이다.
양쪽 값중 하나라도 True라면 결과도 True이다.
1+1=1, 1+0=1, 0+0=0 식으로 생각해도 좋다
1. True and True = True
2. True and False = True
3. False and True = True
4. False and False = False
not "부정"이라는 뜻으로
참을 부정하면 거짓, 거짓을 부정하면 참이다.
"반대"라고 생각해도 좋다.
not True = False
not False = True


- 아래 코드를 예로 들어본다.

# and 연산
print(True and True)
print(True and False)
print(False and True)
print(False and False)
# 결과 : True False False False

# or 연산
print(True and True)
print(True and False)
print(False and True)
print(False and False)
# 결과 : True True True False

# not 연산
print(not True)
print(not False)
# 결과 : False True



- 지금은 논리 연산이지만 이후에 비트 연산으로도 and, or, not, xor 등이 사용되는데 가끔 사용된다. 일단 존재만 알고 넘어가자.


사실 개발자 포지션에는 이 파트부터 구글링이 필요한 단계이다

무슨 뜻이냐면 내가 앞으로 사용할 기능은 책에 1% 이하로 담겨있다.

즉, 책은 기초 중에 기초만 담겨있고 앞으로 내가 필요할 이외의 기능들이 엄청나게 많다는 것이다.

그 기능들을 사용하기 위해 필요한 것이 구글링!

지금은 내가 뭘 해야 할지, 이걸 배워서 어따 써먹을지 궁금해할 단계라고 생각할 것이다.

그래도 조금만 참으면서 이런 기능은 없을까? 저런 기능은 없을까? 하며 구글링을 미리 연습해보는 게 좋을 것 같다.


예를 들어 문장마다 마침표로 끝났는지 확인하고 싶을 때는 어떻게 해야 할까?

구글에다 "파이썬 문자열 끝에 특정 문자 찾기"로 검색해서 찾아보면 된다. (endswith)

 

2022.07.07 - [프로그래밍/Python] - [파이썬 독학] 5. 변수와 리스트(feat 이중리스트)

 

[파이썬 독학] 5. 변수와 리스트(feat 이중리스트)

2022.07.04 - [프로그래밍/Python] - [Python 독학] 4. 변수&연산 [Python 독학] 4. 변수&연산 2022.06.27 - [프로그래밍/Python] - [Python 배우기] 3. 자료형 [Python 배우기] 3. 자료형 2022.06.26 - [프로그래..

park-duck.tistory.com

 

반응형

댓글