경기도 인공지능 개발 과정/과제

Python 초보자를 위한 파이썬 300제 (101 ~ 200)

agingcurve 2022. 5. 28. 15:06
반응형

101 ~ 110

101 파이썬에서 True 혹은 False를 갖는 데이터 타입은 무엇인가?

In [2]:
print("bool 타입입니다.")
bool 타입입니다.

102 아래 코드의 출력 결과를 예상하라

In [3]:
print(3 == 5)
False

103 아래 코드의 출력 결과를 예상하라

In [4]:
print(3 < 5)
True

104 아래 코드의 결과를 예상하라.

In [5]:
x = 4
print(1 < x < 5)
True

105 아래 코드의 결과를 예상하라.

In [6]:
print ((3 == 3) and (4 != 3))
True

106 아래 코드에서 에러가 발생하는 원인에 대해 설명하라.

In [8]:
print(3 => 4)
print("지원하지 않는 연산자입니다.")
  Input In [8]
    print(3 => 4)
          ^
SyntaxError: expression cannot contain assignment, perhaps you meant "=="?

107 아래 코드의 출력 결과를 예상하라

In [11]:
if 4 < 3:
    print("Hello World")
print("조건을 만족하지 않기 때문에 아무 결과도 출력되지 않습니다.")
조건을 만족하지 않기 때문에 아무 결과도 출력되지 않습니다.

108 아래 코드의 출력 결과를 예상하라

In [12]:
if 4 < 3:
    print("Hello World.")
else:
    print("Hi, there.")
Hi, there.

109 아래 코드의 출력 결과를 예상하라

In [13]:
if True :
    print ("1")
    print ("2")
else :
    print("3")
print("4")
1
2
4

110 아래 코드의 출력 결과를 예상하라

In [14]:
if True :
    if False:
        print("1")
        print("2")
    else:
        print("3")
else :
    print("4")
print("5")
3
5

111 사용자로부터 입력받은 문자열을 두 번 출력하라. 아래는 사용자가 "안녕하세요"를 입력한 경우의 출력 결과이다.

안녕하세요 안녕하세요안녕하세요

In [15]:
user = input("입력:")
print(user * 2)
안녕하세요안녕하세요

112 사용자로부터 하나의 숫자를 입력받고, 입력 받은 숫자에 10을 더해 출력하라.

In [16]:
user = input("숫자를 입력하세요: ")
print(user +10)
숫자를 입력하세요: 40
40

113 사용자로부터 하나의 숫자를 입력 받고 짝수/홀수를 판별하라.

In [17]:
user = int(input("숫자 입력: "))
if user % 2 ==0:
    print("짝수")
else:
    print("홀수")
숫자 입력: 30
짝수

114 사용자로부터 값을 입력받은 후 해당 값에 20을 더한 값을 출력하라. 단 사용자가 입력한 값과 20을 더한 계산 값이 255를 초과하는 경우 255를 출력해야 한다.

In [19]:
user = int(input("입력값: "))
new = user + 20
if new < 255:
    print(new)
else:
    print(255)
입력값: 230
250

115 사용자로부터 하나의 값을 입력받은 후 해당 값에 20을 뺀 값을 출력하라. 단 출력 값의 범위는 0~255이다. 예를 들어 결괏값이 0보다 작은 값이되는 경우 0을 출력하고 255보다 큰 값이 되는 경우 255를 출력해야 한다.

In [22]:
user = int(input("입력값: "))
new = user - 20
if new <0:
    print(0)
elif new > 255:
    print(255)
else:
    print(new)
입력값: 290
255

116 사용자로부터 입력 받은 시간이 정각인지 판별하라.

In [29]:
user = input("현재시간 : ")
if user.split(":")[1] == "00":
    print("정각입니다.")
else:
    print("정각이 아닙니다")
현재시간 : 20:00
정각입니다.

117 사용자로 입력받은 단어가 아래 fruit 리스트에 포함되어 있는지를 확인하라. 포함되었다면 "정답입니다"를 아닐 경우 "오답입니다" 출력하라.

In [32]:
fruit = ["사과", "포도", "홍시"]

user = input("좋아하는 과일은? ")
if user in fruit:
    print("정답입니다.")
else:
    print("오답입니다.")
좋아하는 과일은? 배
오답입니다.

118 투자 경고 종목 리스트가 있을 때 사용자로부터 종목명을 입력 받은 후 해당 종목이 투자 경고 종목이라면 '투자 경고 종목입니다'를 아니면 "투자 경고 종목이 아닙니다."를 출력하는 프로그램을 작성하라.

In [34]:
warn_investment_list = ["Microsoft", "Google", "Naver", "Kakao", "SAMSUNG", "LG"]

user = input("투자 종목: ")
if user in warn_investment_list:
    print("투자 경고 종목입니다.")
else:
    print("투자 경고 종목 아닙니다.")
투자 종목: Microsoft
투자 경고 종목입니다.

119 아래와 같이 fruit 딕셔너리가 정의되어 있다. 사용자가 입력한 값이 딕셔너리 키 (key) 값에 포함되었다면 "정답입니다"를 아닐 경우 "오답입니다" 출력하라.

In [39]:
fruit = {"봄" : "딸기", "여름" : "토마토", "가을" : "사과"}
user = input("제가좋아하는계절은: ")

if user in fruit.keys():
    print("정답입니다.")
else:
    print("오답입니다.")
제가좋아하는계절은: 가을
정답입니다.

120 아래와 같이 fruit 딕셔너리가 정의되어 있다. 사용자가 입력한 값이 딕셔너리 값 (value)에 포함되었다면 "정답입니다"를 아닐 경우 "오답입니다" 출력하라.

In [45]:
fruit = {"봄" : "딸기", "여름" : "토마토", "가을" : "사과"}
user = input("제가좋아하는계절은: ")

if user in fruit.values():
    print("정답입니다.")
else:
    print("오답입니다.")
제가좋아하는계절은: 딸기
정답입니다.

121 ~ 130

121 사용자로부터 문자 한 개를 입력 받고, 소문자일 경우 대문자로, 대문자 일 경우, 소문자로 변경해서 출력하라.

힌트-1 : islower() 함수는 문자의 소문자 여부를 판별합니다. 만약 소문자일 경우 True, 대문자일 경우 False를 반환합니다. 힌트-2 : upper() 함수는 대문자로, lower() 함수는 소문자로 변경합니다.

In [49]:
user = input("문자: ")
if user.islower():
    print(user.upper())
문자: a
A

122 점수 구간에 해당하는 학점이 아래와 같이 정의되어 있다. 사용자로부터 score를 입력받아 학점을 출력하라.

In [51]:
user = int(input("학점을 입력하세요: "))

if user >80:
    print("grade is A")
elif user > 60:
    print("grade is B")
elif user > 40:
    print("grade is C")
elif user > 20:
    print("grade is D")
else:
    print("grade is E")
학점을 입력하세요: 99
A

123 사용자로부터 달러, 엔, 유로, 또는 위안 금액을 입력받은 후 이를 원으로 변환하는 프로그램을 작성하라. 각 통화별 환율은 다음과 같다. 사용자는 100 달러, 1000 엔, 13 유로, 100 위안과 같이 금액과 통화명 사이에 공백을 넣어 입력한다고 가정한다.

In [58]:
user = input("입력: ")
user = user.split(" ")

if user[1] == "달러":
    print(float(user[0]) * 1167,"원")
elif user[1] == "엔":
    print(float(user[0]) * 1.096,"원")
elif user[1] == "유로":
    print(float(user[0]) * 1268,"원")
elif user[1] == "위안":
    print(float(user[0]) * 171,"원")
입력: 100 달러
116700 원

124 사용자로부터 세 개의 숫자를 입력 받은 후 가장 큰 숫자를 출력하라.

In [59]:
user1 = int(input("number 1: "))
user2 = int(input("number 2: "))
user3 = int(input("number 3: "))

if user1 > user2 and user1 > user3:
    print(user1)
elif user2 > user1 and user2 > user3:
    print(user2)
else:
    print(user3)
number 1: 10
number 2: 9
number 3: 20
20

125 휴대폰 번호 앞자리에 따라 통신사는 아래와 같이 구분된다. 사용자로부터 휴대전화 번호를 입력 받고, 통신사를 출력하는 프로그램을 작성하라.

In [62]:
user = input("휴대전화 번호 입력: ")
user = user.split("-")

if user[0] == "011":
    print("당신은 SKT 사용자입니다.")
elif user[0] == "016":
    print("당신은 KT 사용자 입니다.")
elif user[0] == "019":
    print("당신은 LGU 사용자 입니다.")
else:
    print("당신은 알 수 없습니다.")
휴대전화 번호 입력: 016-2322-4444
당신은 KT 사용자 입니다.

126 우편번호는 5자리로 구성되는데, 앞의 세자리는 구를 나타낸다. 예를들어, 강북구의 경우 010, 011, 012 세 자리로 시작한다.

In [64]:
user = input("우편번호 : ")
user = int(user[2])

if user == 0 or user == 1 or user == 2:
    print("강북구")
elif user == 3 or user == 4 or user == 5:
    print("도봉구")
else:
    print("노원구") 
우편번호 : 01900
노원구

127 주민등록번호 뒷 자리 7자리 중 첫째 자리는 성별을 나타내는데, 1, 3은 남자 2, 4는 여자를 의미한다. 사용자로부터 13자리의 주민등록번호를 입력 받은 후 성별 (남자, 여자)를 출력하는 프로그램을 작성하라.

In [66]:
user = input("주민등록번호: ")
user = int(user[7])
if user == 1:
    print("남자")
else:
    print("여자")
주민등록번호: 123444-2111233
여자

128 주민등록번호의 뒷 자리 7자리 중 두번째와 세번째는 지역코드를 의미한다. 주민 등록 번호를 입력 받은 후 출생지가 서울인지 아닌지 판단하는 코드를 작성하라

In [75]:
user = input("주민등록번호: ")
user = int(user[8:10])
local_code_seoul = [i for i in range(9)]
if user in local_code_seoul:
    print("서울입니다.")
else:
    print("서울아닙니다")
주민등록번호: 861010-1015210
서울입니다.

129 주민등록번호는 13자리로 구성되는데 마지막 자리수는 주민등록번호의 유효성을 체크하는데 사용된다. 먼저 앞에서부터 12자리의 숫자에 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5를 차례로 곱한 뒤 그 값을 전부 더한다. 연산 결과 값을 11로 나누면 나머지가 나오는데 11에서 나머지를 뺀 값이 주민등록번호의 마지막 번호가 된다.

In [78]:
num = input("주민등록번호: ")
계산1 = int(num[0]) * 2 + int(num[1]) * 3 + int(num[2]) * 4 + int(num[3]) * 5 + int(num[4]) * 6 + \
        int(num[5]) * 7 + int(num[7]) * 8 + int(num[8]) * 9 + int(num[9]) * 2 + int(num[10])* 3 + \
        int(num[11])* 4 + int(num[12]) * 5
계산2 = 11 - (계산1 % 11)
계산3 = str(계산2)

if num[-1] == 계산3[-1]:
    print("유효한 주민등록번호입니다.")
else:
    print("유효하지 않은 주민등록번호입니다.")
주민등록번호: 821010-1635210
유효하지 않은 주민등록번호입니다.

130 아래 코드는 비트코인의 가격 정보를 딕셔너리로 가져오는 코드이다. btc 딕셔너리 안에는 시가, 종가, 최고가, 최저가 등이 저장되어 있다. 최고가와 최저가의 차이를 변동폭으로 정의할 때 (시가 + 변동폭)이 최고가 보다 높을 경우 "상승장", 그렇지 않은 경우 "하락장" 문자열을 출력하라.

In [83]:
import requests
btc = requests.get("https://api.bithumb.com/public/ticker/").json()['data']

변동폭 = float(btc['max_price']) - float(btc['min_price'])
시가 = float(btc['opening_price'])
최고가 = float(btc['max_price'])

if (시가+변동폭) > 최고가:
    print("상승장")
else:
    print("하락장")
상승장

131 for문의 실행결과를 예측하라.

In [84]:
과일 = ["사과", "귤", "수박"]
for 변수 in 과일:
    print(변수)
사과
귤
수박

132 for문의 실행결과를 예측하라.

In [85]:
과일 = ["사과", "귤", "수박"]
for 변수 in 과일:
  print("#####")
#####
#####
#####

133 다음 for 문과 동일한 기능을 수행하는 코드를 작성하세요.

In [86]:
for 변수 in ["A", "B", "C"]:
  print(변수)
A
B
C

134 for문을 풀어서 동일한 동작을하는 코드를 작성하라.

In [87]:
for 변수 in ["A", "B", "C"]:
  print("출력:", 변수)
출력: A
출력: B
출력: C

135 for문을 풀어서 동일한 동작을 하는 코드를 작성하라.

In [88]:
for 변수 in ["A", "B", "C"]:
  b = 변수.lower()
  print("변환:", b)
변환: a
변환: b
변환: c

136 다음 코드를 for문으로 작성하라.

In [89]:
변수 = 10
print(변수)
변수 = 20
print(변수)
변수 = 30
print(변수)
10
20
30

137 다음 코드를 for문으로 작성하라.

In [91]:
변수 = 10
print(변수)
변수 = 20
print(변수)
변수 = 30
print(변수)
10
20
30

138 다음 코드를 for문으로 작성하라.

In [92]:
print(10)
print("-------")
print(20)
print("-------")
print(30)
print("-------")
10
-------
20
-------
30
-------

139 다음 코드를 for문으로 작성하라.

In [93]:
print("++++")
for 변수 in [10, 20, 30]:
  print(변수)
++++
10
20
30

140 다음 코드를 for문으로 작성하라.

In [94]:
print("-------")
print("-------")
print("-------")
print("-------")
-------
-------
-------
-------

141 다음과 같이 판매가가 저장된 리스트가 있을 때 부가세가 포함된 가격을 for 문을 사용해서 화면에 출력하라. 단 부가세는 10원으로 가정한다.

In [95]:
리스트 = [100, 200, 300]
for i in 리스트:
    print(i)
100
200
300

142 for 문을 사용해서 리스트에 저장된 값을 다음과 같이 출력하라.

In [98]:
리스트 = ["김밥", "라면", "튀김"]
for i in 리스트:
    print(f"오늘의 메뉴 : {i}")
오늘의 메뉴 : 김밥
오늘의 메뉴 : 라면
오늘의 메뉴 : 튀김

143 리스트에 주식 종목이름이 저장돼 있다. 저장된 문자열의 길이를 다음과 같이 출력하라.

In [2]:
리스트 = ["SK하이닉스", "삼성전자", "LG전자"]

for i in 리스트:
    print(len(i))
6
4
4

144 리스트에는 동물이름이 문자열로 저장돼 있다. 동물 이름과 글자수를 다음과 같이 출력하라.

In [4]:
리스트 = ['dog', 'cat', 'parrot']
for i in 리스트:
    print(i, len(i))
dog 3
cat 3
parrot 6

145 리스트에 동물 이름 저장돼 있다. for문을 사용해서 동물 이름의 첫 글자만 출력하라.

In [5]:
리스트 = ['dog', 'cat', 'parrot']
for i in 리스트:
    print(i[0])
d
c
p

146 리스트에는 세 개의 숫자가 바인딩돼 있다. for문을 사용해서 다음과 같이 출력하라.

In [8]:
리스트 = [1, 2, 3]
for i in 리스트:
    print("3", "x", i)
3 x 1
3 x 2
3 x 3

147 리스트에는 세 개의 숫자가 바인딩돼 있다. for문을 사용해서 다음과 같이 출력하라.

In [11]:
리스트 = [1, 2, 3]
for i in 리스트:
    print("3", "x", i, "=", i * 3)
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9

148 리스트에는 네 개의 문자열이 바인딩돼 있다. for문을 사용해서 다음과 같이 출력하라.

In [13]:
리스트 = ["가", "나", "다", "라"]
for i in 리스트:
    if i == "가":
        continue
    else:
        print(i)
나
다
라

149 리스트에는 네 개의 문자열이 바인딩돼 있다. for문을 사용해서 다음과 같이 출력하라.

In [ ]:
리스트 = ["가", "나", "다", "라"]
가
for i in 리스트:
    print

150 리스트에는 네 개의 문자열이 바인딩돼 있다.

In [16]:
리스트 = ["가", "나", "다", "라"]
reverse = 리스트[::-1]
for i in reverse:
    print(i)
라
다
나
가

151 리스트에는 네 개의 정수가 저장돼 있다. for문을 사용해서 리스트의 음수를 출력하라.

In [18]:
리스트 = [3, -20, -3, 44]
for i in 리스트:
    if i < 0:
        print(i)
-20
-3

152 for문을 사용해서 3의 배수만을 출력하라.

In [17]:
리스트 = [3, 100, 23, 44]
for i in 리스트:
    if i % 3 ==0:
        print(i)
3

153 리스트에서 20 보다 작은 3의 배수를 출력하라

In [19]:
리스트 = [13, 21, 12, 14, 30, 18]
for i in 리스트:
    if i < 20 and i % 3 ==0:
        print(i)
12
18

154 리스트에서 세 글자 이상의 문자를 화면에 출력하라

In [26]:
리스트 = ["I", "study", "python", "language", "!"]
for i in 리스트:
    if len(i) >2:
        print(i)
study
python
language

155 리스트에서 대문자만 화면에 출력하라.

In [30]:
리스트 = ["A", "b", "c", "D"]
for i in 리스트:
    if i.isupper():
        print(i)
A
D

156 리스트에서 소문자만 화면에 출력하라.

In [31]:
리스트 = ["A", "b", "c", "D"]
for i in 리스트:
    if i.islower():
        print(i)
b
c
  1. 이름의 첫 글자를 대문자로 변경해서 출력하라.
In [34]:
for 변수 in 리스트:
  print(변수[0].upper() + 변수[1:])
A
B
C
D

158 파일 이름이 저장된 리스트에서 확장자를 제거하고 파일 이름만 화면에 출력하라. (힌트: split() 메서드)

In [36]:
리스트 = ['hello.py', 'ex01.py', 'intro.hwp']

for i in 리스트:
    print(i.split(".")[0])
hello
ex01
intro

159 파일 이름이 저장된 리스트에서 확장자가 .h인 파일 이름을 출력하라.

In [51]:
리스트 = ['intra.h', 'intra.c', 'define.h', 'run.py']

for i in 리스트:
    if i[-2:] == ".h":
        print(i)
intra.h
define.h

160 파일 이름이 저장된 리스트에서 확장자가 .h나 .c인 파일을 화면에 출력하라.

In [ ]:
리스트 = ['intra.h', 'intra.c', 'define.h', 'run.py']

for i in 리스트:
    if i[-2:] == ".h":
        print(i)

161 for문과 range 구문을 사용해서 0~99까지 한 라인에 하나씩 순차적으로 출력하는 프로그램을 작성하라.

In [ ]:
for i in range(0,100):
    print(i)

162 월드컵은 4년에 한 번 개최된다. range()를 사용하여 2002~2050년까지 중 월드컵이 개최되는 연도를 출력하라.

In [54]:
for i in range(2002, 2051,4):
    print(i)
2002
2006
2010
2014
2018
2022
2026
2030
2034
2038
2042
2046
2050

163 1부터 30까지의 숫자 중 3의 배수를 출력하라.

In [58]:
for i in range(1,30):
    if i % 3 ==0:
        print(i)
3
6
9
12
15
18
21
24
27

164 99부터 0까지 1씩 감소하는 숫자들을, 한 라인에 하나씩 출력하라.

In [65]:
for i in range(100):
    print(99-i)

165 for문을 사용해서 아래와 같이 출력하라.

In [67]:
for i in range(10):
    print(i / 10)
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9

166 구구단 3단을 출력하라.

In [68]:
for i in range(1,10):
    print(3, "x", i, "=", 3*i)
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27

167 구구단 3단을 출력하라. 단 홀수 번째만 출력한다.

In [69]:
for i in range(1,10,2):
    print(3, "x", i, "=", 3*i)
3 x 1 = 3
3 x 3 = 9
3 x 5 = 15
3 x 7 = 21
3 x 9 = 27

168 1~10까지의 숫자에 대해 모두 더한 값을 출력하는 프로그램을 for 문을 사용하여 작성하라.

In [78]:
sum = 0
for i in range(1, 11):
    
    sum += i
sum
Out[78]:
55

169 1~10까지의 숫자 중 모든 홀수의 합을 출력하는 프로그램을 for 문을 사용하여 작성하라.

In [82]:
sum=0
for i in range(1, 11,2):
    sum += i
print(sum)
        
25

170 1~10까지의 숫자를 모두 곱한 값을 출력하는 프로그램을 for 문을 사용하여 작성하라.

In [1]:
sum =1
for i in range(1,10):
    sum *= i
print(sum)
362880

171 아래와 같이 리스트의 데이터를 출력하라. 단, for문과 range문을 사용하라.

In [3]:
price_list = [32100, 32150, 32000, 32500]
for i in range(4):
    print(price_list[i])
32100
32150
32000
32500

172 아래와 같이 리스트의 데이터를 출력하라. 단, for문과 range문을 사용하라.

In [4]:
price_list = [32100, 32150, 32000, 32500]
for i in range(4):
    print(i,price_list[i])
0 32100
1 32150
2 32000
3 32500

173 아래와 같이 리스트의 데이터를 출력하라. 단, for문과 range문을 사용하라.

In [7]:
price_list = [32100, 32150, 32000, 32500]
for i in range(4):
    print(3-i,price_list[i])
3 32100
2 32150
1 32000
0 32500

174 아래와 같이 리스트의 데이터를 출력하라. 단, for문과 range문을 사용하라.

In [8]:
price_list = [32100, 32150, 32000, 32500]
for i in range(1, 4):
    print(90 + 10 * i, price_list[i])
100 32150
110 32000
120 32500

175 my_list를 아래와 같이 출력하라.

In [13]:
my_list = ["가", "나", "다", "라"]
for i in range(len(my_list)-1):
    print(my_list[i],my_list[i+1])
가 나
나 다
다 라

176 리스트를 아래와 같이 출력하라.

In [15]:
my_list = ["가", "나", "다", "라", "마"]
for i in range(len(my_list)-2):
    print(my_list[i],my_list[i+1],my_list[i+2])
가 나 다
나 다 라
다 라 마

177 반복문과 range 함수를 사용해서 my_list를 아래와 같이 출력하라.

In [19]:
my_list = ["가", "나", "다", "라"]
for i in range(len(my_list)-1):
    print(my_list[len(my_list)-1-i],my_list[len(my_list)-2-i])
라 다
다 나
나 가

178 리스트에는 네 개의 정수가 저장되어 있다. 각각의 데이터에 대해서 자신과 우측값과의 차분값을 화면에 출력하라.

In [26]:
my_list = [100, 200, 400, 800]
for i in range(len(my_list) -1):
    if i != len(my_list):
        print(my_list[i+1]-my_list[i])
100
200
400

179 리스트에는 6일 간의 종가 데이터가 저장되어 있다. 종가 데이터의 3일 이동 평균을 계산하고 이를 화면에 출력하라.

In [31]:
my_list = [100, 200, 400, 800, 1000, 1300]

for i in range(1, len(my_list)-1):
    print(abs(my_list[i-1] + my_list[i] + my_list[i+1]) / 3)
233.33333333333334
466.6666666666667
733.3333333333334
1033.3333333333333
In [28]:
sum(my_list[:3])
Out[28]:
700
In [35]:
low_prices  = [100, 200, 400, 800, 1000]
high_prices = [150, 300, 430, 880, 1000]

volatility = []

for i,v in zip(low_prices,high_prices):
    vc = v - i
    volatility.append(vc)
print(volatility)
[50, 100, 30, 80, 0]

181 아래 표에서 하나의 행을 하나의 리스트로, 총 3개의 리스트를 갖는 이차원 리스트 apart를 정의하라.

In [36]:
apart = [ ["101호", "102호"], ["201호", "202호"], ["301호", "302호"] ]

182 아래 표에서 하나의 열을 하나의 리스트로, 총 2개의 리스트를 갖는 이차원 리스트 stock을 정의하라.

In [37]:
stock = [ ["시가", 100, 200, 300], ["종가", 80, 210, 330] ]

183 아래 표를 stock 이름의 딕셔너리로 표현하라.시가를 key로 저장하고, 나머지 같은 열의 데이터를 리스트로 저장해서 value로 저장한다. 종가 역시 key로 저장하고 나머지 같은 열의 데이터를 리스트로 저장해서 value로 저장한다.

In [45]:
stock = {"시가": [100,200, 300], "종가":[80, 210, 330]}

184 아래 표를 stock 이라는 이름의 딕셔너리로 표현하라. 날짜를 key로 저장하고, 나머지 같은 행의 데이터를 리스트로 저장해서 value로 저장한다. 첫 열이 날짜이다.

In [46]:
value = {"10/10":[80,110,70,90], "10/11":[210,230,190,200]}

185 리스트에 저장된 데이터를 아래와 같이 출력하라.

In [51]:
apart = [ [101, 102], [201, 202], [301, 302] ]

for row in apart:
    for col in row:
        print(col, "호")
101 호
102 호
201 호
202 호
301 호
302 호

186 리스트에 저장된 데이터를 아래와 같이 출력하라.

In [53]:
apart = [ [101, 102], [201, 202], [301, 302] ]
for row in apart[::-1]:
    for col in row:
        print(col,"호")
301 호
302 호
201 호
202 호
101 호
102 호

187 리스트에 저장된 데이터를 아래와 같이 출력하라.

In [58]:
apart = [ [101, 102], [201, 202], [301, 302] ]
for i in apart[::-1]:
    for j in i[::-1]:
        print(j,"호")
302 호
301 호
202 호
201 호
102 호
101 호

188 리스트에 저장된 데이터를 아래와 같이 출력하라.

In [61]:
apart = [ [101, 102], [201, 202], [301, 302] ]
for i in apart:
    for j in i:
        print(j,"호")
        print("____")
101 호
____
102 호
____
201 호
____
202 호
____
301 호
____
302 호
____

189 리스트에 저장된 데이터를 아래와 같이 출력하라.

In [63]:
apart = [ [101, 102], [201, 202], [301, 302] ]
for row in apart:
    for col in row:
        print(col,"호")
    print("-----")
101 호
102 호
-----
201 호
202 호
-----
301 호
302 호
-----

190 리스트에 저장된 데이터를 아래와 같이 출력하라.

In [64]:
apart = [ [101, 102], [201, 202], [301, 302] ]
for row in apart:
    for col in row:
        print(col,"호")
print("-----")
101 호
102 호
201 호
202 호
301 호
302 호
-----

191 data에는 매수한 종목들의 OHLC (open/high/low/close) 가격 정보가 바인딩 되어있다. 수수료를 0.014 %로 가정할 때, 각 가격에 수수료를 포함한 가격을 한라인에 하나씩 출력하라.

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

for i in data:
    for j in i:
        print(j+(j*0.014))
2028.0
3092.7
2078.7
2007.72
7605.0
2078.7
2078.7
2007.72
15666.3
15260.7
15767.7
15108.6

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

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

for i in data:
    for j in i:
        print(j+(j*0.014))
    print("_____")
2028.0
3092.7
2078.7
2007.72
_____
7605.0
2078.7
2078.7
2007.72
_____
15666.3
15260.7
15767.7
15108.6
_____

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

In [74]:
data = [
    [ 2000,  3050,  2050,  1980],
    [ 7500,  2050,  2050,  1980],
    [15450, 15050, 15550, 14900]
]
result = []
for i in data:
    for j in i:
        result.append(j+(j*0.014))
result  
Out[74]:
[2028.0,
 3092.7,
 2078.7,
 2007.72,
 7605.0,
 2078.7,
 2078.7,
 2007.72,
 15666.3,
 15260.7,
 15767.7,
 15108.6]

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

In [75]:
data = [
    [ 2000,  3050,  2050,  1980],
    [ 7500,  2050,  2050,  1980],
    [15450, 15050, 15550, 14900]
]
result = []
for i in data:
    sub = []
    for j in i:
        sub.append(j+(j*0.014))
    result.append(sub)
result  
Out[75]:
[[2028.0, 3092.7, 2078.7, 2007.72],
 [7605.0, 2078.7, 2078.7, 2007.72],
 [15666.3, 15260.7, 15767.7, 15108.6]]

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

In [82]:
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])
100
190
310

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

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

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

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

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

for row in ohlc[1:]:
    if (row[3] >= row[0]):
        print(row[3])
100
310

198 ohlc 리스트에는 시가(open), 고가 (high), 저가 (low) , 종가(close)가 날짜별로 저장돼 있다. 고가와 저가의 차이를 변동폭으로 정의할 때 변동폭을 volatility 이름의 리스트에 저장하라.

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

volatility = []
for row in ohlc[1:]:
    vc = row[1] - row[2]
    volatility.append(vc)
print(volatility)
[40, 30, 10]

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

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

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

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

In [95]:
ohlc = [["open", "high", "low", "close"],
        [100, 110, 70, 100],
        [200, 210, 180, 190],
        [300, 310, 300, 310]]
result = 0
for row in ohlc[1:]:
    money =row[3] -row[0]
    result += money
result
Out[95]:
0