티스토리 뷰

Language/Python

파이썬 문법 - 2

Seogineer 2021. 2. 14. 16:25

조건문

 

- if문

if 조건식:
    수행문

조건식을 다 적은 후에 콜론(:)을 적어서 조건식이 끝났음을 파이썬 인터프리터에게 알린다.

조건을 만족했을 때 실행할 문장은 if문 다음 라인에 탭 또는 스페이스로 들여 쓰기 후 적는다.

 

소스코드

bitcoin = 8400000
if bitcoin > 10000000:
    print("bitcoin 매수")

 

 

- if/else

if 조건:
    문장 1
else:
    문장 2

조건이 참일 때는 문장1이 수행되고 조건이 거짓일 때는 문장2가 수행된다.

 

소스코드

bitcoin = 1000
if bitcoin >= 1000:
    print("bitcoin 1000 돌파")
else:
    print("bitcoin 1000 미만")

 

 

- if/elif/else

if 조건 1:
    조건 1이 참일 때 수행할 문장
elif 조건 2:
    조건 2가 참일 때 수행할 문장
else:
    조건 1과 조건 2가 참이 아닐 때 수행할 문장

참인 조건을 만나면 해당되는 코드를 실행하고 비교를 중지한다.

 

소스코드

ripple = 500
if ripple < 500:
    print("리플이 쌉니다.")
elif 500 <= ripple < 1000:
    print("리플이 보통이네요.")
else:
    print("리플이 비싸네요.")

 

 

- 비교 연산자, 논리 연산자

비교 연산자 의미
== 같다.
!= 같지 않다.
> 크다.
< 작다.
>= 크거나 같다.
<= 작거나 같다.

 

논리 연산자 의미
and 그리고
or 또는
not ~아닌

and : 모든 조건이 참이라면 코드가 실행

or : 하나라도 참이면 코드가 실행

not : 조건이 거짓일 때만 실행

 

소스코드

bitcoin_ma5 = 1900
bitcoin_price = 1935
bitcoin_target = 1937

if (bitcoin_price >= bitcoin_ma5) and (bitcoin_price > bitcoin_target):
    print("매수 상승장이고 변동성 돌파 전략 조건 만족")

 

 

반복문

 

- for문

for 변수 in 자료구조:
    코드

for문의 끝에 콜론(:)이 있어야 하며, 실행할 코드는 들여 쓰기가 되어 있어야 한다.

 

소스코드

for value in ["가", "나", "다", "라"]:
    print(value)
    
tickers = ["BTC", "BTG", "BCH", "XRP", "ETH", "DASH"]
for ticker in tickers:
    print(ticker)

 

 

- for와 range

for 변수 in range(시작 값, 끝 값):
    코드

for 변수 in range(시작 값, 끝 값, 오프셋):
    코드

 

소스코드

#for
for num in range(1,10):
  print(num)

#for 10~20
for num in range(10, 21):
  print(num)

#for 2002 ~ 2050 월드컵 개최 년도
for num in range(2002, 2051, 4):
  print(num)

 

 

- for와 딕셔너리

cur_price = {"BTC":9010000, "XRP":511, "DASH":360000}
for ticker in cur_price:
    print(ticker)

"""
출력 결과
BTC
XRP
DASH
"""

딕셔너리에는 key, value 쌍이 저장되어 있는데 for문을 사용하면 key 값들이 출력된다.

 

cur_price = {"BTC":9010000, "XRP":511, "DASH":360000}
for ticker, price in cur_price.items():
    print(ticker, price)

"""
출력 결과
BTC 9010000
XRP 511
DASH 360000
"""

key와 value에 동시에 접근하려면 다음과 같이 for문에서 두 개의 변수를 사용해서 key, value 값을 바인딩한다.

 

cur_price = {"BTC":9010000, "XRP":511, "DASH":360000}
for ticker in cur_price:
    print(ticker, cur_price[ticker])

"""
출력 결과
BTC 9010000
XRP 511
DASH 360000
"""

key값을 이용해서 value값에 접근하는 방법도 있다.

 

 

- while문

while 조건문:
    수행문1
    수행문2
    수행문3

while문은 계속해서 반복적인 작업을 수행해야 하거나 반복할 횟수가 명확하게 정해져 있지 않은 경우에 주로 사용한다.

 

num = 1
while num < 10:
  print(num)
  num += 1
num = 1
while True:
  if num >= 10:
  	break
  print(num)
  num += 1

 

 

함수

def name(parameter):
    문장1
    문장2
    return

함수는 자주 사용하는 코드에 대한 이름표라고 할 수 있다.

 

소스 코드

def hap(a, b):
    ret = a + b
    return ret
    
result = hap(3, 4)
print(result)

"""
출력 결과
7
"""

함수가 호출될 때 2개의 값을 입력 받로고 정의했으면 2개의 값을 인자로 주어야 한다.

 

def print_ohlc(ohlc):
    print("시가: ", ohlc[0])
    print("고가: ", ohlc[1])
    print("저가: ", ohlc[2])
    print("종가: ", ohlc[3])

xrp_ohlc = [100, 120, 80, 90]
print_ohlc(xrp_ohlc)	#함수 호출

리스트를 함수의 인자받을 수 있다.

 

 

모듈

import 모듈
import 모듈 as 새이름
from 모듈 import 함수
from 모듈 import *

모듈을 import 후에 "모듈.함수"로 모듈내의 함수에 접근할 수 있다.

 

소스코드

import coin
coin.get_open_price()

import coin as newname
newname.get_open_price()

from coin import get_open_price 
get_open_price()

from coin import * 
get_close_price()

 

 

클래스

class MyClass:
    def method1(self, parameter):
    	코드
    	return
    
    def method2(self, parameter):
        코드
        return

데이터와 함수를 묶어서 관리할 수 있다.

 

- self

class 붕어빵틀:
    def 팥소넣기(self, 팥소):
        self.팥소 = 팥소

붕어빵1 = 붕어빵틀()
붕어빵2 = 붕어빵틀()

#방법1 - 비추천
붕어빵틀.팥소넣기(붕어빵1, "초코맛팥소")
붕어빵틀.팥소넣기(붕어빵2, "딸기맛팥소")

#방법2 - 추천
붕어빵1.팥소넣기("초코맛팥소")
붕어빵2.팥소넣기("딸기맛팥소")

붕어빵에 팥소를 넣는 방법1과 방법2가 있는데

방법1은 어떤 메서드를 어떤 객체에 대해서 호출하는지를 지정하기 위해서 첫 번째 인자로 self 자리에 객체를 넘겨준다.

방법2와 같이 메서드를 호출하면 파이썬 인터프리터가 알아서 방법1과 같은 방식으로 변환해준다.

 

- 초기화자(initializer)

class 붕어빵틀:
    def __init__(self):
        self.팥소 = "초코맛팥소"
        
붕어빵1 = 붕어빵틀()

객체가 생성된 후 자동으로 초기화자(__init__)가 호출된다.

팥소넣기 메서드를 호출하지 않아도 팥소를 객체 생성과 동시에 넣을 수 있다.

 

- 상속

class Parent:
  def sing(self):
    print("sing a song")

class LuckyChild(Parent):
  def dance(self):
    print("shuffle dance")

luckyboy = LuckyChild()
luckyboy.sing()
luckyboy.dance()

"""
출력 결과
sing a song
shuffle dance
"""

LuckyChild 클래스는 sing() 메서드를 가지고 있지 않지만 Parent 클래스로부터 상속받았기 때문에 sing() 메서드를 호출할 수 있다. 그리고 Parent 클래스에서 없던 dance() 메서드를 추가할 수 있다.

 

 

참고

wikidocs.net/21820

wikidocs.net/21821

wikidocs.net/21868

wikidocs.net/21869

'Language > Python' 카테고리의 다른 글

파이썬 문법 - 1  (0) 2021.02.12
SimpleHTTPServer 사용하기  (0) 2021.02.06
댓글
Total
Today
Yesterday
링크
Apple 2023 맥북 프로 14 M3, 스페이스 그레이, M3 8코어, 10코어 GPU, 512GB, 8GB, 한글