[Python]문법 총 정리(2) - 사전/집합 자료형, Bool 자료형, 조건문/반복문
카테고리: py
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
- 패스트 캠퍼스 강의 자료, 딥러닝을 위한 Python
- 모든 저작권은 패스트 캠퍼스에 있습니다.
댓글 남기기