티스토리 뷰

코딩 초급

[Python] 기초 2

태장고 21302 2021. 10. 10. 00:01

강의에 들어가기 전에!! 빠른 이해를 원한다면, 꼭 파이썬 IDE에서 코드를 돌려보세요!!

https://www.python.org/downloads/

^-- 파이썬 설치 링크

 

목차

1. 참/거짓을 이용한 논리 연산( Boolean Algebra )

2. 조건문

3. 반복문

4. 배열

 

참/거짓을 이용한 논리 연산

Boolean Algebra(불 대수학)은 컴퓨터 과학에서 꽤나 중요한 것 중 하나입니다.

수학에서의 Boolean Algebra 연산자는 크게 3가지로 나뉩니다.

1. x ∧ y : 둘 다 참일 경우를 의미한다.

2. x ∨ y : 둘 중 하나라도 참인 경우를 의미한다.

3. ㄱx : 참을 거짓으로 거짓을 참으로 바꾸는 연산자이다.

자, 수학에서는 이것 외에도 여러가지 연산자가 있지만, 컴퓨터와 연관지어 설명할 때 꼭 필요한 3가지만 알아보자!

예시를 들어보자면, ( 0은 거짓, 1은 참 을 나타낸다. )

 

1.의 경우에 0 0이면 둘 다 거짓이므로 0을 출력한다.

2.의 경우에 0 1이면 둘 중 하나가 참이므로 1을 출력한다. 또 1 1이어도 " 둘 중 하나라도 참 " 이라는 조건에 성립하기 때문에 1을 출력한다.

3.의 경우에 0이면 1을 출력하고, 1이면 0을 출력한다.

이렇게 Boolean Algebra 에 대하여 이해가 됬다면,

이제 이것이 Python에서는 어떻게 쓰이는지 알아보자!

위 3개가 Python에도 똑같이 있다. ( 표현법이 다를 뿐!! )

1. x and y : x와 y가 모두 참인 경우 1을 출력

2. x or y : x와 y 중 하나라도 참일 경우 1을 출력

3. not x : x가 1의 경우 0을 출력하고, 0일 경우에 1을 출력

Python에서는 위와 같이 사용하고 있다.

 

사용 예시 코드는 다음과 같다.

a, b = input().split()
a = bool(int(a))
b = bool(int(b))
print(a and b) #a와 b가 둘 다 참일 경우 True를 출력
print(a or b) #a와 b 중 하나라도 참이면 Ture를 출력
print(!a) #a가 참일 경우 False를 아니면 True를 출력
print(!b) #b가 참일 경우 False를 아니면 True를 출력

 

왜 Boolean Algebra가 컴퓨터 과학에서 중요할까? 그 이유는 복잡한 조건식을 표현하기 편리하기 때문입니다.

a와 b라는 변수 2개가 입력될 때, b나 a 중에 하나라도 거짓이면 참을 출력하시오 라는 문제가 나온다고 하자. 컴퓨터과학에서 0은 거짓이고, 1은 참이라고 하기 때문에 이를 식으로 표현하기 위해 Boolean Algebra를 사용하는 것도 있고, 단순히 참/거짓을 판별하기 위해 사용하기도 한다. 그리고 조건문의 원리가 참/거짓으로 이루어져 있다. 이것은 PS(Problem Solving)을 하다 보면 이해하게 될 것이다.

 

조건문

조건문은 다음과 같이 사용할 수 있다.

if 조건 : #조건이 True이면 실행시킨다.
  실행1 
  실행2 #들여쓰기를 하면 if문에 포함된다.
실행 3 #들여쓰기가 되어있지 않으면 if문에 포함되지 않는다.

조건이 맞다면 실행1과 실행 2를 진행하고 실행3은 조건이 맞든 맞지 않든 조건문 밖에 있기 때문에 무조건 실행한다.

Python에서 조건문을 사용할 때 조심해야 하는 것은 들여쓰기에 의해 조건문에 포함이 되고 되지 않고를 판별하기 때문에 꼭 주의해서 코드를 짜 주어야 한다. 그렇지 않으면 맞는거 같은데 계속 틀려서 머리가 아파지는 일이 발생할 가능성이 높다.

 

또 if~ else라는 것도 존재하는데, else는 if와 짝꿍처럼 붙어 다니는 친구로 if만 쓰는 것은 상관이 없지만, else만 쓰는 것은 안된다. 반드시 else는 if와 사용해 주어야 한다. 사용은 다음과 같이 할 수 있다.

if 조건 : #True라면 실행
  실행1
else : #조건이 False라면 실행
  실행2

else도 if와 마찬가지로 클론( : )을 사용하여 끝을 정해준다.

 

이것을 곂쳐서 사용할 수도 있다.

if 조건1 :
  실행1
else if 조건2 :
  실행2
else :
  실행3

이러면 여러 조건문을 사용해 줄 수 있다. 우선 조건1의 참거짓을 판별하여 참이면 실행1을 실행하고 아니면 그 다음 조건2를 판별하여 참이면 실행2를 실행하고, 이것도 아니라면 실행3을 실행한다. 추가적으로 elif라고 하는 것도 있는데, 기능상 곂치니 사용하고 싶은 사람들은 검색해서 사용해 보길 바란다. ( 굳이? 안 알랴줌~! )

 

반복문

반복문을 사용하는 이유는? 귀찮아서 이다. 우리가 반복된 연산을 하려고 할 때 덧셈을 10000번 한다던가.. 고등학교 과정이긴 하지만 시그마(∑)를 연산한다던가 할 때에 일일이 하기는 귀찮으니 사용하는 것이 반복문이다. 반복문은 다음과 같이 사용할 수 있다.

for i in range(0, 10): #i라는 변수를 0부터 9까지 반복함
  실행1

for 다음에 있는 것은 진행할 변수이다. 위 반복문의 경우, 실행1을 실행시킬 때 마다 i가 1씩 증가해 9가 될 때까지 반복한다.

반복문의 실행 범위는 [a, b)이다. 아직 이 기호를 모를 수 있기 때문에 조금의 설명을 더해 보자면 a ≤ i < b 의 범위 동안 반복한다는 것이다. 위의 경우 a는 0, b는 10으로 설정한 것이다.

 

반복문도 조건문과 같이 클론으로 끝을 판단해 준다. 그리고 들여쓰기를 통해 포함 관계를 나타내준다.

 

또 다른 형태의 while 이라는 것이 있는데 이것은 만약 참이라면 실행을 하게 된다.  다음과 같이 사용할 수 있다.

while True:
  실행1

위와 같이 사용할 수도 있고 True에 조건을 넣어 조건을 만족할 때까지 반복문을 돌릴 수도 있다.

 

배열

흔히 1~3개의 변수는 그냥 선언하면 되지만 입력이 1000개라면 1000개를 다 선언하기는 너무 귀찮은 작업이다.

이것이 바로 배열을 쓰는 이유이다. 정리하자면! 수 많은 정수를 저장하기 위함이다. 배열은 다음과 같이 사용할 수 있다.

n = int(input())
a = input().split() #변수를 나누어 순서대로 a에 저장

for i in range(10) :
 a[i] = int(a[i]) #0~9까지 저장된 변수를 모두 정수형으로 변환
 
d = [] #d라는 이름의 배열을 만듦
for i in range(n) :
 d.append(0) #배열을 n번째 인덱스까지 모두 0으로 채움

위와 같이 만들면 모두 정수로 이루어진 배열을 하나 만들 수 있다.

인덱스는 배열의 한 칸이라고 생각하면 된다. n번째 인덱스는 배열에서 n번째 있는 칸의 수를 의미한다.

 

인덱스에 접근하기 위해서는 다음과 같이 해 주면 된다.

a[i] #a라는 이름의 배열에 i번째 인덱스에 접근함

 

기초 2편은 여기까지~!

'코딩 초급' 카테고리의 다른 글

문자열 문제에 유용한 도구  (0) 2021.11.28
[C/C++] 기초 2  (0) 2021.10.10
[C/C++] 기초 1  (0) 2021.10.10
[Python] 기초1  (0) 2021.10.10
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함