파이썬 - 1

더키·2022년 4월 3일
0

Python

목록 보기
1/5
post-thumbnail

사용하던 깃허브에 문제가 생겨 velog로 옮겨왔다...

3월 14일부터 코드스테이트에서 진행하는 인공지능 부트캠프 19기를 시작하게 되었다. 새로운 사람들과 새로운 시작을 하게 되었다. 오늘은 파이썬 그리고 데이터형에 대해서 간단히 정리해보려한다.

파이썬(Python)이란 ?

1991년 네덜란드계 프로그래머 귀도 반 로섬이 사용하는 프로그래밍 언어들에 불편함을 느끼고, 개인적으로 만들어낸 프로그래밍 언어이다. 파이썬은 컴파일 없이 명령을 내리면 바로 동작하는 인터프리티드 언어로, 객제지향적이다. 파이썬의 언어명은 당시 영국 방송국인 BBC에서 1969년부터 1974년까지 방영했던 'Monty Python's Flying Circus'라는 TV프로그램의 이름을 따서 지었다고 한다.

파이썬에서 사용하는 언어는 사람들이 사용하는 언어와 비슷해 배우기 쉬워 교육용 언어로 많이 쓰이기도 하며, 현재에는 파이썬의 사용 비중이 증가하고 있는 추세이다. 또한, 무료이며 방대한 라이브러리를 가지고 있다.

구글에서 제공하는 Colaboratory에서는 가상 환경을 통해 Python을 대화형으로 사용할 수 있다. 주피터 환경과 유사하여 print()를 사용하지 않고도 값을 출력할 수 있다.

문자 출력과 사칙연산

"Hello World!"
print("Hello World!")
> Hello World!

2 + 4
print(2+4)
> 6

1/2
print(1/2)
> 0.5

10*8
print(10*8)
> 80

4-3
print(4-3)
> 1

C언어에서는 소수값을 출력할 때, float이나 double을 따로 선언해주어야 하지만, 파이썬에서는 그러지 않아도 결과값이 출력된다.

나누기의 몫이나 나머지를 따로 구할 수도 있다. 제곱도 손 쉽게 구할 수 있다.

5//3 (몫)
> 1

10%3 (나머지)
> 1

3**4 (제곱)
> 81

2진수, 8진수, 16진수로 변환

2진수, 8진수, 16진수 등으로도 표현이 가능하다.

10진수 : 17

2진수 : bin(17)
> 0b10001

8진수 : oct(17)
> 0o21

16진수 : hex(17)
> 0x11

다른 진수로 된 값을 이용해 계산도 가능하다.

0b10 * 0o10 + 0x10 - 10
> 22

bin(0b10 * 0o10 + 0x10 - 10)
> 0b10110

oct(0b10 * 0o10 + 0x10 - 10)
> 0o26

hex(0b10 * 0o10 + 0x10 - 10)
> 0x16

논리연산과 비교연산

우리가 옳고 그름을 따지듯이 컴퓨터는 참과 거짓을 따진다. 어떤 조것이 주어졌을 때, 참이면 True, 거짓이면 False를 출력한다. 이것을 논리연산이라고 한다.
또한, 두 개의 값에 대해 크기?를 비교하여 참이면 True, 거짓이면 False를 출력한다. 이것을 비교연산이라고 한다.

논리연산

and(&) : 두 조건이 모두 참이어야만 참
or(|) : 두 조건 중 하나만 참이어도 참
not(~) : 조건이 참이라면 거짓, 거짓이라면 참

and (&)
False *and* False 
>False
False *and* True
>False
True *and* True
>True

or (|)
False *or* True
>True
True *or* True
>True
False *or* False
>False

not (~)
not False = True
not True = False

비교연산

a == b : 같은 값이라면 참
a != b : 같은 값이 아니라면 참
a > b : a가 b보다 크다면 참
a < b : a가 b보다 작다면 참
a >= b : a가 b보다 크거나 같다면 참
a <= b : a가 b보다 작거나 같다면 참

1 == 1
> True

2 != 2
> False

4 > 2
> True

2 < 4
> True

3 <= 5
> True

5 >= 3
> True

논리연산자와 비교연산자는 함께 사용되는 경우가 많으며, 우선순위를 따지자면, 비교연산자 > 논리연산자이다. 예를 들어보자.

True and 4 < 3
> False

파이썬에서는 False는 0, True는 1로 표현되지만, 1보다 큰 수 또한 True로 출력된다. (그렇다고, True를 수로 표현했을 때, 10, 100이 나오는 것은 아니다.)

print(int(True))
> 1

print(int(False))
> 0

True and 4는 True가 되어야 될 것 같지만, 비교연산자인 (4 < 3)가 논리연산자인 and보다 우선이기 때문에 False 값이 나오면서 True and False는 False가 되어버린다.
그래서 괄호를 이용해 우선순위를 정해주면, 이러한 오류를 해결할 수 있다.

추가 지식
코드업에서 예제 문제를 풀던 도중 비트단위(bitwise)연산자를 접하게 되었다. 비트단위연산자는 비트 단위로 논리 연산을 할 때 쓰이는 연산자로 &(bitwise and), |(bitwise or), ~(bitwise not), ^(bitwise xor), <<(bitwise left shift), >>(bitwise right shift)가 존재한다.

비트시프트 연산자(<<, >>)

비트시프트 연산은 2진수 연산법으로 수를 받아 << 또는 >> 를 따라 연산을 진행하는 방법이다.

num << # 은 num이라는 숫자를 #만큼 왼쪽으로 이동하라는 뜻이고, num >> # 은 # 만큼 왼쪽으로 이동하라는 뜻이다.

8 >> 2
> 2

3 << 2
> 12

3의 2진수는 11. 11을 오른쪽으로 2번 이동하게 되면 00으로 값은 0이 된다. 반대로 11을 왼쪽으로 2번 이동하면 1100이 되어 결과 값은 12가 된다. 즉 >> 는 /2, << 는 *2가 되는 셈이다. 하지만, 오른쪽 시프트 연산은 결국엔 1의 값이 소멸돼 0이 된다.

그 외의 연산자

비트시프트 연산자가 아닌 다른 비트단위연산자들을 살펴보자.

and(&) : 둘 모두가 1일 때 1 반환
or(|) : 둘 중 하나가 1이면 1 반환
not(~) : 0이면 1, 1이면 0을 반환하는 단항 연산자로 보수를 표현할 때 쓰인다.
xor(^) : 배타적 논리합이라 불리며, 둘 중 하나만 1일 때 1 반환

예제 
3 & 5
0000 0000 0000 0011 = 3
0000 0000 0000 0101 = 5
------------------------
0000 0000 0000 0001 = 1

3 | 5
0000 0000 0000 0011 = 3
0000 0000 0000 0101 = 5
------------------------
0000 0000 0000 0111 = 7

~3
0000 0000 0000 0011 = 3
------------------------
1111 1111 1111 1100 = -4

3 ^ 5
0000 0000 0000 0011 = 3
0000 0000 0000 0101 = 5
------------------------
0000 0000 0000 0110 = 6

~3의 경우 0과 1로만 표현되는 컴퓨터에게 음수라는 값을 저장시키는 2의 보수 표현 방법으로 사용되며, ~n이라 하면 -n-1 값으로 생각하면 된다. (대충 대학교 프로그래밍 시간에 짧게나마 배웠던 내용이라 얼핏 생각이 난다.)

문자열

C언어와는 다르게 파이썬은 크게 세 개의 자료형으로 나누어진다. int, float, str.
int는 정수형, float는 소수형, str은 문자열을 뜻한다.
문자열 또한 정수형, 소수형처럼 덧셈, 곱셈이 가능하다. (뺄셈과 나눗셈은 오류가 발생한다.)

print('Hello' + 'World!')
> Hello World!

print('Hello World!' * 2)
> Hello World!Hello World!
profile
메디컬 딥러닝 엔지니어

0개의 댓글