개발/(1) 초위파(Python) 300제 풀이

초보자를 위한 파이썬(Python) 300제 풀이 (196, 197, 198, 199, 200)

생각외로깔끔함 2022. 11. 16. 00:28
728x90
반응형

 

초보자를 위한 파이썬(Python) 300제 풀이

 

 

 

196. ohlc 리스트에는 시가(open), 고가(high), 저가(low), 종가(close)가 날짜별로 저장되어 있습니다. 종가가 150원보다 큰 경우에만 종가를 출력하세요.

ohlc = [["open", "high", "low", "close"],
        [100, 110, 70, 100],
        [200, 210, 180, 190],
        [300, 310, 300, 310]]
190
310

 

ohlc = [["open", "high", "low", "close"],
        [100, 110, 70, 100],
        [200, 210, 180, 190],
        [300, 310, 300, 310]]

for x in ohlc[1:]:
    if int(x[3]) > 150:
        print(x[3])
  • for 구문과 if 구문을 혼합하여 문제를 해결할 수 있습니다.

 

197. ohlc 리스트에는 시가(open), 고가(high), 저가(low), 종가(close)가 날짜별로 저장되어 있습니다. 종가가 시가보다 크거나 같은 경우에만 종가를 출력하세요.

ohlc = [["open", "high", "low", "close"],
        [100, 110, 70, 100],
        [200, 210, 180, 190],
        [300, 310, 300, 310]]
100
310

 

ohlc = [["open", "high", "low", "close"],
        [100, 110, 70, 100],
        [200, 210, 180, 190],
        [300, 310, 300, 310]]

for x in ohlc[1:]:
    if int(x[3]) >= int(x[0]):
        print(x[3])
  • 위 문제의 답안과 같은 방식의 해결방안입니다.

 

198. ohlc 리스트에는 시가(open), 고가(high), 저가(low), 종가(close)가 날짜별로 저장되어 있습니다. 종가가 시가보다 크거나 같은 경우에만 종가를 출력하세요. 고가와 저가의 차이를 변동폭으로 정의할 떄, 변동폭을 volatility 이름의 리스트에 저장하세요.

ohlc = [["open", "high", "low", "close"],
        [100, 110, 70, 100],
        [200, 210, 180, 190],
        [300, 310, 300, 310]]
>> print(volatility)
[40, 30, 10]

 

volatility = []

for x in ohlc[1:]:
    volatility.append(int(x[1]) - int(x[2]))

print(volatility)
  • volatility는 for 문 밖에서 정의를 하고 와야 초기화가 되지 않는다.

 

199. 리스트에는 3일 간의 ohlc 데이터가 저장되어 있습니다. 종가가 시가보다 높은 날의 변동성(고가 - 저가)을 화면에 출력하세요. 종가가 시가보다 높은 거래일의 ohlc는 [300, 310, 300, 310] 입니다. 따라서 이 거래일의 변동성은 10 (310 - 300)입니다.

ohlc = [["open", "high", "low", "close"],
        [100, 110, 70, 100],
        [200, 210, 180, 190],
        [300, 310, 300, 310]]
10

 

for x in ohlc[1:]:
    if int(x[3]) > int(x[0]):
        print(int(x[3]) - int(x[0]))
  • 이 문제의 답안 또한 위 문제들의 답안과 해결방안이 같습니다.
  • 연산자와 부등호를 쓸 때는 꼭 int or float 형태여야 하는 것을 잊으면 안됩니다.

 

200. 리스트에는 3일 간의 ohlc 데이터가 저장되어 있습니다. 시가에 매수해서 종가에 매도했을 경우 총 수익금을 계산하세요. 1일차 수익 0원(100 - 100), 2일차 수익 -10원(190 - 200), 3일차 수익 10원(310 - 300)입니다.

ohlc = [["open", "high", "low", "close"],
        [100, 110, 70, 100],
        [200, 210, 180, 190],
        [300, 310, 300, 310]]
0

 

oh_sum = []

for x in ohlc[1:]:
    oh_sum.append(int(x[3]) - int(x[0]))

print(sum(oh_sum))
profit = 0
for row in ohlc[1:]:
    profit += (row[3] - row[0])
  • for 문 밖으로 리스트를 하나 만들어줍니다.
  • 이후 oh_sum 이라는 리스트에 일수마다 수익금을 append 합니다.
  • 마지막으로 sum 함수를 이용해 총 수익금을 구할 수 있습니다.
  • 아래의 방법도 활용할 수 있습니다.

 

 

 

출처 = https://wikidocs.net/book/922, 초보자를 위한 파이썬 300제,

PyCharm 사용

728x90
반응형