[Python]문법 총 정리(2) - 사전/집합 자료형, Bool 자료형, 조건문/반복문

Date:     Updated:

카테고리:

1. Python 사전 자료형(Dictionary) & 집합 자료형(Set)

  • 특정한 원소의 존재 여부를 빠르게 확인하고 추가/삭제할 수 있다.

1) 사전(Dictionalry) 자료형

Definition

  • 데이터를 키(key)값(value) 쌍의 형태로 저장할 때 사용할 수 있다.
  • 다음과 같은 형태로 사전 자료형에 데이터를 기록할 수 있다.

사전 데이터[키] = 값

[Input]

arr1 = ["컴퓨터", "키보드", "모니터"]
arr2 = ["computer", "keyboard", "monitor"]

data = {}
for i in range(3):
    data[arr1[i]] = arr2[i]
print(data)

[Output]

{'컴퓨터': 'computer', '키보드': 'keyboard', '모니터': 'monitor'}

keys() 함수

  • 모든 키(key)를 하나씩 확인할 때는 keys() 메서드를 사용할 수 있다.

[Input]

data = {}
data['apple'] = "사과"
data["banana"] = "바나나"
data["carrot"] = "당근"

for key in data.keys():
    print("key:", key, ", value:", data[key])

[Output]

key: apple , value: 사과
key: banana , value: 바나나
key: carrot , value: 당근

등장 횟수 카운팅

data = [1,3,3,5,4,3,1,4]
counter = {}

for x in data:
  if x not in counter:
    counter[x] = 1
  else:
    counter[x] += 1
print(counter)
-> {1:2, 3:3, 5:1, 4:2}

2) 집합(Set) 자료형

Definition

  • 데이터의 중복을 허용하지 않고, 순서가 상관없을 때 사용하는 자료형이다.
  • 특정한 데이터가 등장한 적 있는지 체크할 때 효과적으로 사용된다.

add() 함수

데이터를 삽입할 때는 add() 메서드를 사용한다. [Input]

data = [1, 3, 3, 5, 4, 3, 1, 4]
visited = set()

for x in data:
    if x not in visited:
        visited.add(x)
    else:
        print("중복 원소 발견:", x)

print("고유한 원소들:", visited)

[Output]

중복 원소 발견: 3
중복 원소 발견: 3
중복 원소 발견: 1
중복 원소 발견: 4
고유한 원소들: {1, 3, 4, 5}

remove(), list() 함수

  • remove() 메서드를 이용해서 원소를 제거
  • list() 메서드를 이용해서 리스트로 변경

[Input]

data = {5, 6, 7, 8, 9}
print(data)

data.remove(7)
print(data)

arr = list(data)
print(arr)

[Output]

{5, 6, 7, 8, 9}
{5, 6, 8, 9}
[5, 6, 8, 9]
  • 집합 자료형은 다양한 연산자를 제공한다.
    • 합집합 연산자:
    • 교집합 연산자: &
    • 차집합 연산자: -

[Input]

data1 = {3, 4, 5, 6, 7}
data2 = {6, 7, 8, 9, 10}

data = data1 | data2 # 합집합
print(data)

data = data1 & data2 # 교집합
print(data)

data = data1 - data2 # 차집합
print(data)

[Output]

{3, 4, 5, 6, 7, 8, 9, 10}
{6, 7}
{3, 4, 5}

2. 파이썬(Python) 참/거짓 자료형

1) Definition

  • 일반적인 프로그램에서는 불(bool) 자료형을 많이 사용한다.
  • True(참), 거짓(False)를 표현
    • True(참) : 경우에 따라 1로 표기
    • False(거짓) : 경우에 따라 0으로 표기
  • 실제 예시에 따라서 참, 거짓을 구분하면 다음과 같다.
    • 거짓, False: 빈 리스트, 빈 튜플, 빈 사전, None
    • 참, True: 이외에 유의미한 데이터
      • 7 → 참(True)
      • 1 → 참(True)
      • 0 → 거짓(False)
      • “Hello World” → 참(True)
      • ”” → 거짓(False)
      • [1, 2, 3] → 참(True)
      • [] → 거짓(False)
      • () → 거짓(False)

2) Example

  • 실제로는 조건문에서 많이 사용
if 7:
  print("참(True)")
else: 
  print("거짓(False)")

-> (True)
  • 비교 연산자를 사용하면, 그 결과가 참(True) 혹은 거짓(False)으로 반환된다.
    print(5 < 7) # 5가 7보다 작으므로 참(True)
    -> True
    print(8 < 1) # 8이 1보다 작지 않으므로, 거짓(False)
    -> False
    print(3 == 3) # 3이 3과 같으므로, 참(True)
    -> True
    print(3 != 3) # 3이 3과 같지 않으므로, 거짓(False)
    -> False
    print(3 <= 3) # 3이 3보다 작거나 같으므로, 참(True)
    -> True
    
  • 논리 연산자를 사용하면, 불(bool) 자료형에 대한 연산이 가능하다.
    • x or y: x와 y 중에 하나라도 참일 때 참(True), 아니면 거짓(False)
    • x and y: x와 y가 모두 참일 때 참(True), 아니면 거짓(False)
    • not x: x가 참일 때 거짓(False), 거짓이면 참(True)
    • x in arr: x가 arr 안에 포함될 때 참(True), 아니면 거짓(False)
    • x not in arr: x가 arr 안에 포함되지 않을 때 참(True), 아니면 거짓(False)
a = True
b = False

print(a or b)
-> True
print(a and b)
-> False
print(not b)
-> True
print(7 in [3, 5, 7])
-> True
print(8 not in [2, 4, 6, 8])
-> False

3. 파이썬(Pyhton) 조건문

1) 조건문의 정의

  • 파이썬에서는 프로그램을 제어하기 위해 조거문과 반복문을 제공
  • 조건문은 프로그램 실행의 흐름을 제어
  • if문을 이용
    • 조건문 내부에 대하여 띄어쓰기를 4번 사용
    • 어떠한 값이 다른 값과 동일한지 구할 때는 등호를 2번 사용 ‘==’라고 쓴다.
      if 조건식:
      # 참인 경우 실행할 코드
      else:
      # 거짓인 경우 실행할 코드
      
  • Example 1) ```python x = int(input()) y = int(input())

if y == 0: print(“0으로 나눌 수 없습니다.”) else: print(x/y)

-> 5 # x입력 -> 2 # y입력 -> 6


### 2) elif
- if에 해당하지 않으면 elif가 수행, 그다음 else 수행

```python
age = 25

if age >= 1 and age < 8:
    print("입장료는", 3000, "원입니다.")
elif age >= 8 and age < 19:
    print("입장료는", 7000, "원입니다.")
elif age >= 19 and age < 60:
    print("입장료는", 12000, "원입니다.")
elif age >= 60:
    print("입장료는", 0, "원입니다.")

-> 입장료는 12000원입니다.

4. 파이썬(Python) 반복문

Definition

  • 반복 작업 실행
  • for 문법을 이용

` for 원소 in 시퀀스 데이터: 원소를 처리하는 코드 `

range() 함수

  • for문과 range(start, end) 형태가 가장 많이 사용된다.
  • Ex) 1~100까지의 합 ```python result = 0 for i in range(1,101): # 1부터 101까지 방문 result += i

print(result) -> 5050


### enumerate() 함수
- enumerate() 메서드를 사용하면 인덱스와 함께 반복할 수 있다.
```python
name_list = ['홍길동','이순신','장보고']

for i,element in enumerat(name_list):
  print(i, element)

-> 0 홍길동
-> 1 이순신
-> 2 장보고
  • 구구단 예제
for i in range(1,10):
  for j in range(1,10):
    print(i,"X", j, "=", i*j)    

# 출력
1 X 1 = 1
1 X 2 = 2
1 X 3 = 3
1 X 4 = 4
1 X 5 = 5
...
  • 369 예제
    • 1부터 100까지의 수에 대하여 박수를 치는 총 횟수를 구할 수 있다.
cnt = 0
for i in range(1, 101):
    tens = i // 10 # 십의 자리
    units = i % 10 # 일의 자리
    if tens in [3, 6, 9]:
        cnt += 1
    if units in [3, 6, 9]:
        cnt += 1
print(cnt)

-> 60
  • 1부터 N까지의 수 중에서 소수를 찾는 프로그램을 작성할 수 있다.
    • 소수가 아닌 경우, 어떤 수의 배수인지 출력한 뒤에 해당 수에 대한 반복문을 탈출한다.
    • break 구문은 해당 break 구문을 포함하는 반복문을 탈출한다.

[Input]

n = 10
for x in range(2, n + 1):
    prime_number = True
    for y in range(2, x):
        if x % y == 0: # 나누어 떨어지는 수가 있다면
            print(x, "=", y, "*", x // y)
            prime_number = False
            break # 반복문 탈출
    if prime_number:
        print(x, "은(는) 소수입니다.")

[Output]

2 () 소수입니다.
3 () 소수입니다.
4 = 2 * 2
5 () 소수입니다.
6 = 2 * 3
7 () 소수입니다.
8 = 2 * 4
9 = 3 * 3
10 = 2 * 5

Reference

py 카테고리 내 다른 글 보러가기

댓글 남기기