전체 글: 287개의 글

[Python] not 연산자 & in 연산자

Posted by nkjok
2025. 8. 19. 08:03 낙서장[1]/94. Python
반응형

1️⃣ not 연산자
not 연산자는 피연산자가 참이면 False를 반환하고, 피연산자가 거짓이면 True를 반환합니다.
피연산자의 데이터 타입에 관계없이 항상 불리언을 반환합니다.
print(not True)
print(not False)
# 결과
False
True


➕ 드모르간의 법칙
집합 연산과 논리 연산에서 사용되는 법칙 중 하나입니다.
논리합(곱)의 부정은 각 항의 부정의 논리곱(합)으로 표현할 수 있음을 나타냅니다.
not (A or B)는 (not A) and (not B)와 같습니다.
not (A and B)는 (not A) or (not B)와 같습니다.
영국의 수학자 오거스터스 드 모르간에 의해 증명되었습니다.
드모르간의 법칙을 적용하면 복잡한 논리 연산을 변환하고 최적화할 수 있습니다.
NAND(NOT AND) 게이트로 모든 종류의 논리 회로를 구현할 때 사용됩니다.
논리 회로 설계에서 불필요한 연산을 줄이고, 효율성을 높이는 데 사용됩니다.


not 연산의 우선순위는 and 연산과 or 연산보다 높습니다.
and 연산 또는 or 연산의 결과를 부정할 때는 괄호로 and 연산 또는 or 연산을 묶어야 합니다.
a = 10

print(not (a < 9 or a > 5))  # not (False or True) -> not True
print(not (a < 9 and a > 5))  # not (False and True) -> not False

print(not a < 9 or a > 5)  # not False or True -> True or True
print(not a < 9 and a > 5)  # not False and True -> True and True
# 결과
False
True
True
True


⚠️ 여기서 잠깐!
not 연산의 피연산자로 불리언 외의 데이터도 사용할 수 있습니다.
and 연산 또는 or 연산과는 달리, 항상 불리언(True 또는 False)을 반환합니다.
print(not 0)  # not 거짓
print(not 1)  # not 참
print(not -1)  # not 참
print()
print(not "")  # not 거짓
print(not [])  # not 거짓
# 결과
True
False
False

True
True


2️⃣ in, not in 연산자
in 연산자

in 연산자는 특정 값이 문자열, 리스트 등에 포함되어 있는지 확인하는 연산자입니다.
해당 값이 포함되어 있으면 True를, 포함되어 있지 않으면 False를 반환합니다.
if "a" in ["a", "b", "c"]:
    print(True)
else:
    print(False)
# 결과
True


문자열이 특정 부분 문자열을 포함하고 있는지 확인할 때 사용할 수 있습니다.
print("ing" in "Coding Valley")
print("coding" in "Coding Valley")
print("g V" in "Coding Valley")
# 결과
True
False
True


pocket = ["card", "cash"]

# "card" 또는 "cash" 둘 중 하나라도 있는 경우
if "card" in pocket or "cash" in pocket:
    print ("버스 타고 집 가기")
else:
    print ("걸어가기")
# 결과
버스 타고 집 가기


not in 연산자

not in 연산자는 in 연산자와는 정반대의 결과를 반환합니다.
해당 값이 포함되어 있으면 False를, 포함되어 있지 않으면 True를 반환합니다.
pocket = ["card", "cash"]

# "card"도 없고, "cash"도 없는 경우
if "card" not in pocket and "cash" not in pocket:
    print("걸어가기")
else:
    print("버스 타고 집 가기")
# 결과
버스 타고 집 가기


➕ not A in B
not A in B는 A not in B와 동일한 결과를 반환합니다.
not A in B 대신 A not in B를 사용하는 것을 권장합니다.
파이썬은 가독성과 명확성을 중시하는 언어입니다.
not A in B보다 A not in B가 자연어에 더 가까워, 의도가 명확히 표현됩니다.
print(not "h" in "Hello World")
print("h" not in "Hello World")
print(not "ing" in "Coding")
print("ing" not in "Coding")
# 결과
True
True
False
False

반응형

'낙서장[1] > 94. Python' 카테고리의 다른 글

[Python] 리스트 삭제  (1) 2025.07.24
[Python] 리스트 수정/추가  (0) 2025.07.24
[Python] 리스트활용 / 인덱싱  (2) 2025.07.23
[Python] 리스트 LIST  (2) 2025.07.23
[Python] 비교연산자  (1) 2025.07.22

[Python] 리스트 삭제

Posted by nkjok
2025. 7. 24. 08:00 낙서장[1]/94. Python
반응형

1️⃣ del 문
del 문은 변수 또는 요소를 삭제하는 구문입니다.
del은 ‘삭제하다’라는 의미의 영단어 delete에서 유래되었습니다.
리스트에서 요소를 삭제하면 그 뒤의 요소들이 한 칸씩 앞으로 당겨집니다.
beverage_list = ["아메리카노", "카푸치노", "라떼", "녹차", "유자차"]

del beverage_list[2]
print(beverage_list)
# 결과
['아메리카노', '카푸치노', '녹차', '유자차']


del과 슬라이싱을 사용해 요소 여러 개를 한 번에 삭제할 수 있습니다.
nickname = ["Amy", "Oliva", "Kelly", "Jay", "Bella"]

del nickname[3:]
print(nickname)
# 결과
['Amy', 'Oliva', 'Kelly']


슬라이싱으로 모든 요소를 선택해서 삭제하면 빈 리스트로 만들 수 있습니다.
nickname = ["Amy", "Oliva", "Kelly"]

del nickname[:]
print(nickname)
# 결과
[]


del 문으로 리스트 변수 자체를 삭제할 수도 있습니다.
삭제된 변수에 접근을 시도하면 NameError가 발생합니다.
beverage_list = ["아메리카노", "카푸치노", "라떼", "녹차", "유자차"]

del beverage_list
print(beverage_list)
# 결과
NameError: name 'beverage_list' is not defined

반응형

'낙서장[1] > 94. Python' 카테고리의 다른 글

[Python] not 연산자 & in 연산자  (6) 2025.08.19
[Python] 리스트 수정/추가  (0) 2025.07.24
[Python] 리스트활용 / 인덱싱  (2) 2025.07.23
[Python] 리스트 LIST  (2) 2025.07.23
[Python] 비교연산자  (1) 2025.07.22

[Python] 리스트 수정/추가

Posted by nkjok
2025. 7. 24. 07:54 낙서장[1]/94. Python
반응형

1️⃣ 리스트 요소 수정
인덱싱으로 특정 위치에 접근한 다음, 대입 연산자로 값을 대입해 요소를 수정할 수 있습니다.
슬라이싱으로 특정 범위에 접근하면 여러 요소를 한 번에 수정할 수 있습니다.
nickname = ["Amy", "Oliva", "Rei", "Kali", "Joy"]
print(nickname)

nickname[3] = "Kelly"
print(nickname)

nickname[4] = "Jay"
print(nickname)

nickname[0:2] = ["John", "Tom"]
print(nickname)
# 결과
['Amy', 'Oliva', 'Rei', 'Kali', 'Joy']
['Amy', 'Oliva', 'Rei', 'Kelly', 'Joy']
['Amy', 'Oliva', 'Rei', 'Kelly', 'Jay']
['John', 'Tom', 'Rei', 'Kelly', 'Jay']


2️⃣ append() 메서드
append() 메서드는 리스트의 끝에 요소를 한 개 추가하는 메서드입니다.
nickname = ["Amy", "Oliva", "Rei", "Kelly", "Jay"]
print(nickname)

nickname.append("Bella")
print(nickname)
# 결과
['Amy', 'Oliva', 'Rei', 'Kelly', 'Jay']
['Amy', 'Oliva', 'Rei', 'Kelly', 'Jay', 'Bella']


➕ extend() 메서드
extend() 메서드는 리스트의 끝에 여러 개의 요소를 추가하는 메서드입니다.
인자로 리스트를 전달하면, 개별 요소가 리스트의 끝에 추가됩니다.
fruits = ["딸기", "바나나", "사과"]
fruits.extend(["수박", "포도", "참외"])
print(fruits)
# 결과
['딸기', '바나나', '사과', '수박', '포도', '참외']

반응형

'낙서장[1] > 94. Python' 카테고리의 다른 글

[Python] not 연산자 & in 연산자  (6) 2025.08.19
[Python] 리스트 삭제  (1) 2025.07.24
[Python] 리스트활용 / 인덱싱  (2) 2025.07.23
[Python] 리스트 LIST  (2) 2025.07.23
[Python] 비교연산자  (1) 2025.07.22

[Python] 리스트활용 / 인덱싱

Posted by nkjok
2025. 7. 23. 08:03 낙서장[1]/94. Python
반응형

1️⃣ 리스트 인덱싱
인덱싱을 통해 리스트의 개별 요소에 접근할 수 있습니다.
beverage_list = ["아메리카노", "카푸치노", "라떼", "녹차", "유자차"]
print(beverage_list[0])
# 결과
아메리카노


⚠️ 여기서 잠깐!
리스트의 인덱스 범위를 벗어나는 인덱스로 접근하면 IndexError가 발생합니다.
print(beverage_list[5])
# 결과
IndexError: list index out of range


2️⃣ 중첩 리스트 인덱싱
중첩 리스트의 경우 중첩 인덱싱으로 요소에 접근할 수 있습니다.
인덱싱을 한 번 하면 내부 리스트에 접근 가능합니다.
인덱싱을 두 번 하면 내부 리스트의 개별 요소에 접근 가능합니다.
beverage_list = [
    ["아메리카노", "카푸치노"],
    ["녹차", "유자차"],
]

print(beverage_list[1])  # 1번 내부 리스트
print(beverage_list[1][1])  # 1번 내부 리스트의 1번 요소
# 결과
['녹차', '유자차']
유자차


3️⃣ index() 메서드
index() 메서드는 특정 요소의 인덱스를 찾아 반환하는 메서드입니다.
인자로 전달받은 값과 일치하는 요소가 있는 경우 해당 요소의 인덱스를 반환합니다.
fruits = ["딸기", "바나나", "사과", "수박", "포도"]

print(fruits.index("수박"))
# 결과
3


인자와 일치하는 요소가 존재하지 않으면 ValueError가 발생합니다.
fruits = ["사과", "바나나"]

print(fruits.index("포도"))
# 결과
ValueError: '포도' is not in list


인자와 일치하는 요소가 여러 개 있다면, 첫 번째로 등장하는 인덱스를 반환합니다.
bag_items = ["노트북", "펜", "펜", "펜", "지갑"]

print(bag_items.index("펜"))
# 결과
1


➕ 인자와 메서드
인자

인자는 함수를 호출할 때 괄호 안에 전달하는 값을 의미합니다.
인자는 함수가 필요한 값을 제공하며, 함수는 인자를 바탕으로 동작합니다.
인자를 받지 않는 함수도 존재하며, 이러한 함수를 호출할 때는 괄호 안을 비웁니다.


메서드

메서드는 특정 객체에 속한 함수로, 해당 객체와 관련된 작업을 수행합니다.
함수의 일종이지만 특정 객체에서 호출해야 한다는 차이점이 있습니다.
index()는 메서드입니다.
index()는 대상인 리스트에서 호출됩니다.
index()를 호출한 리스트 자체가 동작 대상이 됩니다.
print()와 len()은 메서드가 아닌 함수입니다.
print()와 len()은 특정 객체에서 호출되지 않고, 독립적인 함수로 동작합니다.
print()와 len()은 동작의 대상을 인자로 전달받습니다.


➕ 음수 인덱스
음수 인덱스는 끝에서부터의 위치를 의미하는 인덱스입니다.
-1은 마지막 요소를 가리키고, -2는 끝에서 2번째 요소를 가리킵니다.
문자열과 리스트에서 음수 인덱스를 사용해 인덱싱할 수 있습니다.
num_list = [1, 2, 3, 4, 5, 6]
print(num_list[-1])  # 마지막 요소
print("Hello World!"[-2])  # 뒤에서 2번째 문자
# 결과
6
d


※ 연산도 가능

반응형

'낙서장[1] > 94. Python' 카테고리의 다른 글

[Python] 리스트 삭제  (1) 2025.07.24
[Python] 리스트 수정/추가  (0) 2025.07.24
[Python] 리스트 LIST  (2) 2025.07.23
[Python] 비교연산자  (1) 2025.07.22
[Python] 숫자 연산  (3) 2025.07.21

[Python] 리스트 LIST

Posted by nkjok
2025. 7. 23. 07:48 낙서장[1]/94. Python
반응형

1️⃣ 리스트
리스트는 여러 개의 항목을 순서대로 저장할 수 있는 데이터 타입입니다.
리스트에 저장할 수 있는 항목의 개수와 데이터 타입에는 제한이 없습니다.
리스트가 포함하는 각 항목을 요소라고 부릅니다.
각 요소의 위치는 문자열과 마찬가지로 인덱스라고 부릅니다.
요소를 자유롭게 추가, 수정, 삭제할 수 있습니다.
대괄호( [ ] ) 안에 요소들을 콤마( , )로 구분해서 넣어 생성할 수 있습니다.
beverage_list = ["아메리카노", "카푸치노", "라떼", "녹차", "유자차"]
print(beverage_list)
# 결과
['아메리카노', '카푸치노', '라떼', '녹차', '유자차']


대괄호 안에 요소를 넣지 않으면 빈 리스트가 생성됩니다.
# 결과
empty_list = []


리스트에 서로 다른 데이터 타입의 요소를 저장할 수 있지만, 권장되지 않습니다.
하나의 리스트 안에는 같은 타입의 요소를 저장하는 것이 코드의 가독성을 높입니다.
mixed_list = ["Hello", 123, True, [1, 2, 3]]


같은 값의 요소를 중복으로 저장할 수 있습니다.
duplicated_fruits = ["딸기", "딸기", "바나나", "사과", "수박", "포도"]


2️⃣ 중첩 리스트
리스트 내에 다른 리스트를 포함하고 있는 구조를 중첩 리스트라고 합니다.
안쪽 리스트는 바깥쪽 리스트의 요소이기 때문에 마찬가지로 콤마( , )로 구분합니다.
행과 열로 구성된 표 형태로 데이터가 저장되어 있다고 생각할 수 있습니다.
seasonal_fruits = [
    ["한라봉", "매실"],
    ["복숭아"],
    ["무화과", "배", "감"],
    ["귤"],
]

print(seasonal_fruits)
# 결과
[['한라봉', '매실'], ['복숭아'], ['무화과', '배', '감'], ['귤']]

반응형

'낙서장[1] > 94. Python' 카테고리의 다른 글

[Python] 리스트 수정/추가  (0) 2025.07.24
[Python] 리스트활용 / 인덱싱  (2) 2025.07.23
[Python] 비교연산자  (1) 2025.07.22
[Python] 숫자 연산  (3) 2025.07.21
[Python] 문자슬라이싱  (0) 2025.07.21