반응형

어떤 조건이 만족했을 때만 실행되는 구문을 만들려면 조건문을 사용해야 합니다. 조건문에는 if, else, elif문이 있습니다.

사용 방법은 다음과 같습니다.

 

조건문에는 비교연산자, 불연산자, 산술연산자가 사용될 수 있습니다. (: 12>3, True, False)

조건문 뒤에 콜론(:)을 붙여주어야 합니다.

조건이 만족되었을 때 실행되어지는 문장들은 들여쓰기를 해 주어야 합니다. 수행할 문장 앞에 들여쓰기 되어 있습니다.

조건문이 만족되면 수행할 문장 12가 수행되고 만족하지 못하면 수행할 문장 34가 수행됩니다.

 

if 조건문:

    수행할 문장1

    수행할 문장2

else:

    수행할 문장3

    수행할 문장4

 

다음 스크립트는 두 변수에 정수 값을 할당해주고 비교 연산자를 사용하여 두 변수를 비교하는 조건문을 만들었습니다.

x = 50

y = 30

 

if x > y:

  print("x is greater than y")

 

Output:

x is greater than y

 

다음 스크립트는 if문과 else문을 사용한 예제입니다.

x = 30

y = 50

 

if x > y:

  print("x is greater than y")

else:

  print("x is less than y")

 

Output:

x is less than y

 

다음 스크립트는 in 연산자를 사용하여 리스트에 있는 요소들 중 해당하는 요소가 있으면 출력하는 예제입니다.

colors = ['Red', 'Green', 'Blue']

 

if 'Green' in colors:

  print("colors 리스트 변수에 'Green' 존재합니다.")

 

Output:

colors 리스트 변수에 'Green'이 존재합니다.

 

elif

ifelse를 사용하면 두가지 조건밖에 표현을 못합니다. 여러가지 조건을 표현하고자 하면 ifelse를 여러 번 사용해야 합니다. 이러한 문제를 해결하기 위해서 elif문을 사용하면 됩니다. elif에도 조건문을 사용할 수 있습니다.

 

사용방법은 다음과 같습니다.

if 조건문1:

    수행할 문장 1_1

    수행할 문장 1_2

elif 조건문2:

    수행할 문장 2_1

    수행할 문장 2_2

else:

    수행할 문장 3_1

    수행할 문장 3_2

 

다음 스크립트는 score95점 이상일 때 A+, 90점 이상일 때 A, 80점 이상일 때 B, 80점 미만일 경우 C를 출력합니다.

if else만 사용하여 표현하였습니다.

score = 90

 

if score >= 95:

  print("score : A+")

else:

  if score >= 90:

    print("score : A")

  else:

    if score >= 80:

      print("score : B")

    else:

      print("score : C")

 

Output:

score : A

 

ifelse로 표현된 예제를 elif를 사용하여 쉽게 이해되도록 표현하였습니다.

score = 90

 

if score >= 95:

  print("score : A+")

elif score >= 90:

  print("score : A")

elif score >= 80:

  print("score : B")

else:

  print("score : C")

 

Output:

score : A

 

조건부 표현식

조건문이 ifelse로 표현되어 있으면 간단하게 한 줄로 표현할 수 있습니다.

 

다음 스크립트는 score50 이상일 때 state변수가 True이고 50미만일 경우 False를 할당합니다.

if score >= 50:

    state = True

else:

    state = False

 

조건부 표현식으로 바꿔보면 다음과 같습니다.

state = True if score >= 50 else False

반응형
반응형

파이썬 연산자는 두 값을 비교하고 변수에 값을 할당하거나 두 값을 더하거나 빼기, 목록에 항목이 있는지 찾기 등 다양한 연산을 수행할 수 있습니다. 파이썬 연산자는 다음과 같은 그룹으로 나뉠 수 있습니다.

 

-       산술 연산자(Arithmetic Operators)

-       비교 연산자(Comparison Operators)

-       할당 연산자(Assignment Operators)

-       논리 연산자(Logical Operators)

-       멤버쉽 연산자(Membership Operators)

-       항등 연산자(Identity Operators)

 

1.     산술 연산자

산술연산자는 피연산자에 대해서 산술 연산을 수행합니다. (: 숫자 및 변수 더하기, 빼기, 곱하기, 나누기)

파이썬의 산술연산자는 다음 표처럼 6가지 주요 범주로 나눌 수 있습니다.

연산자 이름 연산자 심볼 기능
더하기(Addition) + 두 연산자를 더한다 x=10
y=5
x + y = 15
빼기(Subtraction) - 두 연산자를 뺀다 x = 10
y = 5
x y = 5
곱하기(Multiplication) * 두 연산자를 곱한다 x = 10
y = 5
x * y = 50
나누기(Division) / 두 연산자를 나눈다 x = 10
y = 5
x / y = 2
나머지(Modulus) % 두 연산자를 나눴을 때 나머지 값이 구해진다 x = 10
y = 7
x % y = 3
지수(Exponent) ** 지수를 계산한다 x = 2
y = 5
x ** y = 32

 

x = 10

y = 5

add = x + y

sub = x - y

mul = x * y

div = x / y

mod = x % y

exp = x ** y

print(add)

print(sub)

print(mul)

print(div)

print(mod)

print(exp)

 

Output:

15

5

50

2.0

0

100000

 

 

2.     비교 연산자

비교 연산자는 피연산자에 포함된 값을 비교하고 피연산자 간의 관계에 따라 부울 값을 반환합니다.

다음 표는 비교 연산자가 요약되어 있습니다.

연산자 이름 연산자 심볼 기능
같음 == 두 피연산자가 같으면 True
두 피연산자가 다르면 False
x=10
y=5
x == y = False
같지않음 != 두 피연산자가 같으면 False
두 피연산자가 다르면 True
x = 10
y = 5
x != y = True
보다 크다 >  왼쪽에 있는 피연산자가 오른쪽에 있는 피연산자보다 큰지 판단 x = 10
y = 5
x > y = True
보다 작다 <  왼쪽에 있는 피연산자가 오른쪽에 있는 피연산자보다 작은지 판단 x = 10
y = 5
x < y = False
같거나 보다 크다 >= 왼쪽에 있는 피연산자가 오른쪽에 있는 피연산자보다 같거나 큰지 판단 x = 10
y = 7
x >= y = True
같거나 보다 작다 <= 왼쪽에 있는 피연산자가 오른쪽에 있는 피연산자보다 같거나 작은지 판단 x = 2
y = 5
x <= y = False

 

x = 10

y = 5

print(x == y)  # Equality

print(x != y)  # Inequality

print(x > y)   # Greater than

print(x < y)   # Smaller than

print(x >= y)  # Greater than or equal to

print(x <= y)  # Smaller than or equal to

 

Output:

False

True

True

False

True

False

 

 

3.     할당 연산자

연산자 이름 연산자 심볼 기능
할당 = 오른쪽에 있는 피연산자를 왼쪽에 할당한다 x=10
y=5
z = x + y
z15가 할당됨
더한 후 할당 += 왼쪽의 피연산자와 오른쪽 피연산자를 더한 후 왼쪽의 피연산자에 할당한다. x = 10
y = 5
x += y
x15가 할당됨
뺀 후 할당 -= 왼쪽의 피연산자와 오른쪽 피연산자를 뺀 후 왼쪽의 피연산자에 할당한다. x = 10
y = 5
x -= y
x5가 할당됨
곱한 후 할당 *= 왼쪽의 피연산자와 오른쪽 피연산자를 곱한 후 왼쪽의 피연산자에 할당한다. x = 10
y = 5
x *= y
x50이 할당됨
나눈 후 할당 /= 왼쪽의 피연산자와 오른쪽 피연사자를 나눈 후 왼쪽의 피연산자에 할당한다. x = 10
y =5
x /= y
x2가 할당됨
나머지 계산 후 할당 %= 왼쪽의 피연산자를 오른쪽 피연산자로 나눈 후 나머지 값을 왼쪽의 피연산자에 할당한다. x = 10
y = 7
x %= y
x3가 할당됨
지수 계산 후 할당 **= 왼쪽의 피연산자의 지수를 오른쪽 피연산자를 거듭제곱을 한 후 왼쪽 피연산자에 할당한다. x = 2
y = 5
x **= y
x32가 할당됨

 

x = 10

y = 5

x += y

x -= y

x *= y

x /= y

x %= y

x **= y

 

 

4.     논리 연산자

논리 연산자는 피연산자에 대해 AND, OR NOT과 같은 논리 연산을 수행합니다.

연산자 이름 연산자 심볼 기능
논리 AND and 두 피연산자가 True일 경우 True x=True
y=False
x  y = False
논리 OR or 두 피연산자 중 하나만 True여도 True x = True
y = False
x or y = True
논리 NOT not 논리 상태를 반전시킨다. x = True
y = False
not(x and y) = True

 

x = True

y = False

print(and y)  # Logical and

print(or y)   # Logical or

print(not(x))  # Logical not

 

Output:

False

True

False

 

5.     멤버쉽 연산자

멤버쉽 연산자는 피연산자에 저장된 값이 존재하는지 여부를 확인합니다. Python에는 'in' 'not in'이라는 두 가지 유형의 멤버십 연산자가 있습니다. 특정 시퀀스에서 값이 발견되면 in 연산자는 true를 반환합니다. not in 연산자는 반대의 경우 true를 반환합니다.

연산자 이름 연산자 심볼 기능
in 연산자 in 컬렉션에 있는 요소 중에 값이 존재하면 True items = [1, 3, 4]
print(4 in items)
True
not in 연산자 not in 컬렉션에 있는 요소 중에 값이 없으면 True items = [1, 3, 4]
print(4 not in items)
False

 

items = [1, 2, 3]

print(3 in items)

print(3 not in items)

 

Output:

True

False

 

6.     항등 연산자

항등 연산자는 메모리 위치를 비교하여 두 객체가 동일한지 여부를 찾는 데 사용됩니다.

연산자 이름 연산자 심볼 기능
is 연산자 is 두 객체가 동일한 메모리 위치를 가리켰을 때 True a = [1, 3, 4]
b = [1, 3, 4]
c = a
a is c
True
is not 연산자 is not 두 객체가 다른 메모리 위치를 가리켰을 때 True a = [1, 3, 4]
b = [1, 3, 4]
c = a
a is not c
False

 

a = [1, 2, 3]

b = [1, 2, 3]

c = a

print(a is b)

print(a is c)

 

Output:

False

True

반응형
반응형

< 튜플(Tuples) >

 

튜플은 리스트 처럼 요소들을 저장합니다. 다른점은 리스트는 [ ]사이에 요소들을 추가하지만 튜플은 ( ) 사이에 요소들을 추가합니다. 그리고 리스트는 요소들을 생성, 삭제, 수정이 가능하지만 튜플은 요소들을 바꿀 수 없습니다. 다음 스크립트는 튜플을 생성하는 방법을 보여줍니다. tp2처럼 한 개의 요소를 가질 때는 반드시 요소 뒤에 콤마를 붙여야 합니다. 그리고 tp4처럼 괄호를 생략해도 됩니다.

 

tp1 = ()

tp2 = (1, )

tp3 = (2, 3, 5)

tp4 = 2, 3, 5

tp5 = ('tuple1', 'tuple2', ('tuple3', 'tuple4'))

 

튜플의 요소를 수정하려고 하면 다음과 같은 오류 메시지가 출력됩니다.

 

tuple_ex = ("James", 15, "Male", True)

tuple_ex[1] 20

 

Output:

TypeError                                 Traceback (most recent call last)
<ipython-input-5-c7fa50c023f7> in <module>()
        1 tuple_ex = ("James", 15, "Male", True)
----> 2 tuple_ex[1] = 20

TypeError: 'tuple' object does not support item assignment

 

 

다음 스크립트는 튜플의 요소들을 숫자, 문자 그리고 Boolean 타입을 사용하였습니다. 그리고 tuple_ex의 타입을 출력해 보았습니다.

tuple_ex = ("James", 15, "Male", True)

print(tuple_ex)

print(type(tuple_ex))

 

Output:

('James', 15, 'Male', True)

<class 'tuple'>

 

튜플 인덱싱과 슬라이싱

 

튜플 인덱싱도 첫번째 요소가 0으로 시작하고 꼼마를 기준으로 카운트를 증가하면 됩니다. 그리고 인덱싱이 -1이면 요소들 중에 마지막 값을 나타냅니다.

튜플 슬라이싱은 요소들 중에 일정 범위만을 확인하고자 할 때 시작 인덱싱부터 끝 인덱싱을 지정하면 됩니다. 이때 끝 인덱싱 앞에까지 슬라이싱되고 끝 인덱싱은 포함되지 않습니다.

 

tuple_ex = ("James", 15, "Male", True)

print(tuple_ex[0])

print(tuple_ex[1:3])

print(tuple_ex[-1])

print(tuple_ex[0: ])

 

Output:

James

(15, 'Male')

True

('James', 15, 'Male', True)

 

튜플의 요소수 구하기(len)

튜플의 요오수를 구하기 위해서 len()함수를 사용하면 됩니다.

tuple_ex ("James", 15, "Male", True)

print(len(tuple_ex))

 

Output:

4

 

< 딕셔너리(Dictionaries) >

 

딕셔너리는 키(key)와 값(value)의 쌍으로 구성되어 있습니다. key는 변하지 않는 값을 사용하고 value는 변하지 않는 값도 사용 가능합니다.

key는 스트링, 정수, 실수 타입이 가능하고 value는 스트링, 정수, 실수, 리스트, 튜플 타입을 사용할 수 있습니다.

아무개의 속성을 나타낼 때 이름은 아무개이고 나이는 15, 성별은 남성이면 딕셔너리로 표현하면 다음과 같습니다.

dict_ex1 {'이름':'아무개', '나이':15, '성별':'남성'}

 

(key) (value)
이름 아무개
나이 15
성별 남성

 

key value의 쌍 여러 개가 중괄호 { } 사이에 들어가고 각각의 key value쌍들이 꼼마로 구분되어 집니다.

다음 스크립트는 딕셔너리의 사용 예를 보여주고 있습니다.

 

dict_ex1 = {'이름':'아무개', '나이':15, '성별':'남성'}

dict_ex2 = {3:'three'}

dict_ex3 = {'colors':['Red', 'Green', 'Blue']}

 

딕셔너리 요소에 접근

딕셔너리는 리스트나 튜플처럼 인덱싱으로 접근하면 오류가 발생합니다. 딕셔너리 요소에 접근하기 위해선 key를 사용해야 합니다. 다음 스크립트는 인덱싱으로 접근했을 때 나타나는 오류를 보여주고 있습니다.

 

dict_ex1 = {'이름':'아무개', '나이':15, '성별':'남성'}

dict_ex1[0]

 

Output:

KeyError                                  Traceback (most recent call last)
<ipython-input-16-6c29b25e182e> in <module>()
        1 dict_ex1 = {'이름':'아무개', '나이':15, '성별':'남성'}
----> 2 dict_ex1[0]

 

다음 스크립트는 key로 요소에 접근하는 방법을 보여주고 있습니다.

 

dict_ex1 = {'이름':'아무개', '나이':15, '성별':'남성'}

dict_ex1['이름']

 

Output:

아무개

 

딕셔너리에 요소 추가하기 (딕셔너리[key] = value)

다음 스크립트는 딕셔너리에 keyvalue를 추가하는 방법을 보여주고 있습니다.

 

dict_ex1 = {'이름':'아무개', '나이':15, '성별':'남성'}

dict_ex1['몸무게'] = 70

print(dict_ex1)

 

Output:

{'이름': '아무개', '나이': 15, '성별': '남성', '몸무게': 70}

 

 

딕셔너리 요소 삭제하기 (del 딕셔너리[key])

삭제하고자 하는 요소의 key를 입력하면 keyvalue쌍이 삭제됩니다.

 

dict_ex1 = {'이름':'아무개', '나이':15, '성별':'남성', '몸무게':70}

del dict_ex1['몸무게']

print(dict_ex1)

 

Output:

{'이름': '아무개', '나이': 15, '성별': '남성'}

 

딕셔너리 요소 수정하기 (딕셔너리[key] = 수정하고자 하는 value)

dict_ex1 = {'이름':'아무개', '나이':15, '성별':'남성', '몸무게':70}

dict_ex1['몸무게'] = 76

print(dict_ex1)

 

Output:

{'이름': '아무개', '나이': 15, '성별': '남성', '몸무게': 76}

 

딕셔너리에서 key만을 얻어오는 방법과 value만을 얻어오는 방법

keys()함수를 사용하면 전체 key를 얻어올 수 있습니다.

values()함수를 사용하면 전체 value를 얻어올 수 있습니다.

 

dict_ex1 = {'이름':'아무개', '나이':15, '성별':'남성', '몸무게':70}

print(dict_ex1.keys())

print(dict_ex1.values())

 

Output:

dict_keys(['이름', '나이', '성별', '몸무게'])

dict_values(['아무개', 15, '남성', 70])

 

딕셔너리 key를 리스트로 변환하기 (list함수 사용)

dict_ex1 = {'이름':'아무개', '나이':15, '성별':'남성', '몸무게':70}

list(dict_ex1.keys())

 

Output:

 ['이름', '나이', '성별', '몸무게']

 

딕셔너리 value를 리스트로 변환하기 (list함수 사용)

dict_ex1 = {'이름':'아무개', '나이':15, '성별':'남성', '몸무게':70}

list(dict_ex1.values())

 

Output:

 ['아무개', 15, '남성', 70]

 

딕셔너리의 key와 value 쌍 얻기 (items함수 사용)

dict_ex1 = {'이름':'아무개', '나이':15, '성별':'남성', '몸무게':70}

dict_ex1.items()

 

Output:

dict_items([('이름', '아무개'), ('나이', 15), ('성별', '남성'), ('몸무게', 70)])

 

딕셔너리의 key와 value 쌍 지우기 (clear함수 사용)

dict_ex1 = {'이름':'아무개', '나이':15, '성별':'남성', '몸무게':70}

dict_ex1.clear()

 

딕셔너리의 key로 value값 얻기 (get함수 사용)

dict_ex1 = {'이름':'아무개', '나이':15, '성별':'남성', '몸무게':70}

dict_ex1.get('이름')

 

Output:

아무개'

 

(bool) 자료형

bool 자료형은 참과 거짓을 나타내는 자료형입니다. bool 자료형은 TrueFalse의 값을 갖습니다. 다음 스크립트는 bool 자료형을 선언하고 type함수를 이용하여 bool 변수의 타입을 확인한 예제입니다.

bool_ex1 = True

bool_ex2 = False

print(type(bool_ex1))

print(type(bool_ex2))

 

Output:

<class 'bool'>

<class 'bool'>

 

반응형
반응형

파이썬에서 리스트는 동일한 데이터 타입이나 다른 데이터 타입의 요소들을 저장할 수 있습니다.

리스트를 생성하기 위해서 쉼표(,)사이 사이에 항목들을 추가합니다. 다음 스크립트는 리스트가 여러 타입의 요소들로 생성된 모습을 보여주고 있습니다. a와 같이 요소가 포함되지 않을 수도 있고, 숫자 타입만 넣을 수도 있습니다. 그리고 숫자나 문자를 혼용해서 사용할 수도 있습니다.

a = []

b = [1, 2, 3, 4]

c = ["Red", "Green", "Blue", "Orange"]

d = [1, 3, "Red", "Orange"]

e = [1, 2, ["Red", "Orange"]]

 

다음 스크립트는 리스트를 출력하고 타입을 확인하는 코드입니다.

colors = ["Red", "Green", "Blue", "Orange"]

print(colors)

print(type(colors))

 

Output:

['Red', 'Green', 'Blue', 'Orange']

<class 'list'>

 

리스트의 인덱싱

리스트도 문자열과 마찬가지로 인덱싱이 0부터 시작합니다. 그리고 콤마(,)로 구분되어 집니다. 다음 스크립트를 보면 인덱싱 0“Red”값이 들어가 있습니다. 그리고 인덱싱에 ‘-1’을 하면 마지막 인덱싱을 나타냅니다.

colors = ["Red", "Green", "Blue", "Orange"]

print(colors[0])

print(colors[1])

print(colors[2])

print(colors[-1])

 

Output:

Red

Green

Blue

Orange

 

리스트의 슬라이싱

리스트의 인덱싱의 시작지점부터 끝지점까지 불러올 수 있습니다. “리스트[시작 인덱싱 : 끝 인덱싱]”으로 슬라이싱하고 끝 인덱싱의 값은 포함되지 않습니다. 다음 스크립트를 참고하시기 바랍니다.

colors = ["Red", "Green", "Blue", "Orange"]

print(colors[0:2])

print(colors[ :-1])

print(colors[1: ])

 

Output:

['Red', 'Green']

['Red', 'Green', 'Blue']

['Green', 'Blue', 'Orange']

 

리스트 안에 리스트가 있는 경우 값 참조하기

다음 스크립트는 리스트 안에 2개의 리스트가 포함되어 있습니다. 3개의 리스트로 표현되어 있습니다.

첫 번째 인덱싱 : 0, 1, 2

두 번째 인덱싱 : 0, 1, 2, 3

세 번째 인덱싱 : 0, 1, 2

exam = [1, 2, ["Red", "Green", "Blue", [0.2, 0.5, 0.5]]]

print(exam[2])

print(exam[2][1])

print(exam[2][3][0])

 

Output:

['Red', 'Green', 'Blue', [0.2, 0.5, 0.5]]

Green

0.2

 

리스트의 길이 구하기(len())

len()함수를 사용하면 리스트 안의 요소들의 총 개수를 알 수 있습니다. 다음 스크립트를 참고하시기 바랍니다.

colors = ["Red", "Green", "Blue", "Orange"]

print(len(colors))

 

Output:

4

 

리스트에 요소 추가하기(리스트.append(“item”))

리스트에 요소를 추가하기 위해서 append()함수를 사용할 수 있습니다. 다음 스크립트는 colors 리스트에 “Black”을 추가한 예제입니다.

colors = ["Red", "Green", "Blue", "Orange"]

colors.append("Black")

print(colors)

 

Output:

['Red', 'Green', 'Blue', 'Orange', 'Black']

 

리스트에 요소 수정하기(리스트[수정할 인덱싱] = 수정할 내용)

리스트 요소 중 수정하고자 하는 인덱싱을 선택한 후 항목을 수정하면 됩니다. 다음 스크립트는 첫번째 요소인 “Red”“White”로 수정한 예제입니다.

colors 리스트의 경우 요소수가 4개이므로 인덱싱은 0부터 3까지 할 수 있습니다. 만약 요소가 없는 colors[4]를 수정하고자 하면 오류가 발생합니다.

colors = ["Red", "Green", "Blue", "Orange"]

colors[0] = "White"

print(colors)

 

Output:

['White', 'Green', 'Blue', 'Orange', 'Black']

 

리스트 요소 삭제(리스트.remove(삭제할 요소))

리스트 요소 중에 요소를 삭제하고자 할 때 remove()함수를 사용합니다. remove()함수 인자에 리스트 항목 중에 삭제할 요소를 기입하면 됩니다.

다음 스크립트는 colors리스트에서 “Green” 요소를 삭제하는 방법입니다.

colors = ["Red", "Green", "Blue", "Orange"]

colors.remove("Green")

print(colors)

 

Output:

['Red', 'Blue', 'Orange']

 

리스트 요소 삭제(리스트.pop(삭제할 인덱싱))

리스트 요소 중에 요소를 삭제하고자 할 때 pop()함수를 사용할 수도 있습니다. pop()함수는 인자에 삭제할 요소의 인덱싱을 기입하면 됩니다.

다음 스크립트는 colors 리스트에서 “Green”요소를 삭제하기 위해서 pop()함수를 사용하였습니다. “Green”요소의 인덱싱이 1이므로 pop(1)을 사용하면 됩니다.

colors = ["Red", "Green", "Blue", "Orange"]

colors.pop(1)

print(colors)

 

Output:

['Red', 'Blue', 'Orange']

반응형

+ Recent posts