티스토리 뷰

191

📖question

data에는 매수한 종목들의 OHLC (open/high/low/close) 가격 정보가 바인딩 되어있다.

data = [
    [ 2000,  3050,  2050,  1980],
    [ 7500,  2050,  2050,  1980],
    [15450, 15050, 15550, 14900]
]

수수료를 0.014 %로 가정할 때, 각 가격에 수수료를 포함한 가격을 한라인에 하나씩 출력하라.

2000.28
3050.427
2050.2870000000003
...

✍️answer

data 안에 있는 row, row 안에 있는 col인 각각의 원소에 수수료를 곱한 것을 출력한다.

data = [
    [2000,  3050,  2050,  1980],
    [7500,  2050,  2050,  1980],
    [15450, 15050, 15550, 14900]
]
for row in data:
    for col in row:
        print(col*(1+0.00014))

 

192

📖question

191번의 출력 결과에 행단위로 "----" 구분자를 추가하라.

2000.28
3050.427
2050.2870000000003
1980.2772
----
7501.05
2050.2870000000003
2050.2870000000003
1980.2772
----
15452.163
15052.107
15552.177
14902.086000000001
----

✍️answer

한 row가 끝날 때마다 가로선이 출력되므로 row 반복문에 써준다.

for row in data:
    for col in row:
        print(col*(1+0.00014))
    print("----")

 

193

📖question

192 번 문제의 결괏값을 result 이름의 리스트에 1차원 배열로 저장하라.

>> print(result)
[2000.28, 3050.427, 2050.2870000000003, 1980.2772, 7501.05, 2050.2870000000003, 2050.2870000000003, ...]

✍️answer

빈 리스트를 선언하고, col을 리스트에 추가한다.

result = []
for row in data:
    for col in row:
        result.append(col*(1+0.00014))
print(result)

 

194

📖question

191번 문제의 결괏값을 result 이름의 리스트에 2차원 배열로 저장하라. 저장 포맷은 아래와 같다. 각 행에 대한 데이터끼리 리스트에 저장되어야 한다.

>> print(result)
[
 [2000.28, 3050.427, 2050.2870000000003, 1980.2772],
 [7501.05, 2050.2870000000003, 2050.2870000000003, 1980.2772],
 [15452.163, 15052.107, 15552.177, 14902.086000000001]
]

✍️answer

전체를 넣을 리스트와 row 리스트를 만들고, row 리스트에는 col을, 전체 리스트에 row를 추가한다.

result = []
for row in data:
    sub = []
    for col in row:
        sub.append(col*(1+0.00014))
    result.append(sub)
print(result)

 

195

📖question

ohlc 리스트에는 시가(open), 고가 (high), 저가 (low) , 종가(close)가 날짜별로 저장돼 있다. 화면에 종가데이터를 출력하라.

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

✍️answer

각 row리스트에 마지막 요소를 출력하기 위해 인덱스를 쓰고, 문자열은 제외하기 때문에 슬라이싱을 쓴다.

ohlc = [["open", "high", "low", "close"],
        [100, 110, 70, 100],
        [200, 210, 180, 190],
        [300, 310, 300, 310]]
for row in ohlc[1:]:
    print(row[3])

 

196

📖question

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

✍️answer

row 리스트의 마지막 원소를 출력하는데 150이 넘도록 하기 때문에 조건을 써준다.

for row in ohlc[1:]:
    if row[3] > 150:
        print(row[3])

 

197

📖question

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

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

✍️answer

row 리스트의 마지막 원소를 출력하는데 종가가 시가보다 크거나 같은 경우만 출력하는 조건을 써준다.

for row in ohlc[1:]:
    if row[0] <= row[3]:
        print(row[3])

 

198

📖question

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]

✍️answer

고가와 저가의 차를 구하고, volatility 리스트에 추가한다.

volatility = []
for row in ohlc[1:]:
    volatility.append(row[1]-row[2])
print(volatility)

 

199

📖question

리스트에는 3일 간의 ohlc 데이터가 저장돼 있다. 종가가 시가보다 높은 날의 변동성 (고가 - 저가)을 화면에 출력하라.

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

종가가 시가보다 높은 거래일의 OHLC는 [300, 310, 300, 310] 이다. 따라서 이 거래일의 변동성은 10 (310 - 300)이다.

10

✍️answer

종가와 시가를 비교하는 조건이 맞으면 고가-저가를 하는 식을 출력한다.

for row in ohlc[1:]:
    if row[3] > row[0]:
        print(row[1]-row[2])

 

200

📖question

리스트에는 3일 간의 ohlc 데이터가 저장돼 있다. 시가에 매수해서 종가에 매도 했을 경우 총 수익금을 계산하라.

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

1일차 수익 0원 (100 - 100), 2일차 수익 -10원 (190 - 200), 3일차 수익 10원 (310 - 300) 이다.

0

✍️answer

저장할 변수를 선언하고 종가-시가를 더하도록한다.

total = 0
for row in ohlc[1:]:
    total = total + row[3]-row[0]
print(total)

'Python > 초보자를 위한 300제' 카테고리의 다른 글

15. 2차원 배열 (5)  (0) 2022.05.22
181~190 파이썬 반복문 6  (0) 2022.05.06
171~180 파이썬 반복문 5  (0) 2022.05.05
161~170 파이썬 반복문 4  (0) 2022.05.04
151~160 파이썬 반복문 3  (0) 2022.05.03
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday