291. 바탕화면에 '매수종목1.txt' 파일을 생성한 후 다음과 같이 종목코드를 파일에 써보세요.[파일 쓰기]
005930
005380
035420
->
f = open("C:/Users/hyunh/Desktop/매수종목1.txt", mode="wt", encoding="utf-8")
f.write("005930\n")
f.write("005380\n")
f.write("035420")
f.close()
292. 바탕화면에 '매수종목2.txt' 파일을 생성한 후 다음과 같이 종목코드와 종목명을 파일에 써보세요.[파일 쓰기]
005930 삼성전자
005380 현대차
035420 NAVER
->
f = open("C:/Users/hyunh/Desktop/매수종목2.txt", mode="wt", encoding="utf-8")
f.write("005930 삼성전자\n")
f.write("005380 현대차\n")
f.write("035420 NAVER\n")
f.close()
293. 바탕화면에 '매수종목.csv' 파일을 생성한 후 다음과 같이 종목코드와 종목명을 파일에 써보세요. 인코딩은 'cp949'를 사용해야합니다.[CSV 파일 쓰기]
->
import csv
f = open("C:/Users/hyunh/Desktop/매수종목.csv", mode="wt", encoding="cp949", newline='')
writer = csv.writer(f)
writer.writerow(["종목명", "종목코드", "PER"])
writer.writerow(["삼성전자", "005930", 15.59])
writer.writerow(["NAVER", "035420", 55.82])
f.close()
294. 바탕화면에 생성한 '매수종목1.txt' 파일을 읽은 후 종목코드를 리스트에 저장해보세요.[파일읽기]
005930
005380
035420
->
f = open("C:/Users/hyunh/Desktop/매수종목1.txt", encoding="utf-8")
lines = f.readlines() # python list
codes = []
for line in lines:
code = line.strip() #'\n'
codes.append(code)
print(codes)
f.close()
295. 바탕화면에 생성한 '매수종목2.txt' 파일을 읽은 후 종목코드와 종목명을 딕셔너리로 저장해보세요. 종목명을 key로 종목명을 value로 저장합니다.[파일읽기]
005930 삼성전자
005380 현대차
035420 NAVER
->
f = open("C:/Users/hyunh/Desktop/매수종목2.txt", encoding="utf-8")
lines = f.readlines()
data = {}
for line in lines:
line = line.strip() # '\n' 제거
k, v = line.split()
#print(k, v)
data[k] = v
print(data)
f.close()
296. 문자열 PER (Price to Earning Ratio) 값을 실수로 변환할 때 에러가 발생합니다. 예외처리를 통해 에러가 발생하는 PER은 0으로 출력하세요.[예외처리]
per = ["10.31", "", "8.00"]
for i in per:
print(float(i))
->
per = ["10.31", "", "8.00"]
for i in per:
try:
print(float(i))
except:
print(0)
297. 문자열로 표현된 PER 값을 실수로 변환한 후 이를 새로운 리스트에 저장해보세요.[예외처리 및 리스트에 저장]
per = ["10.31", "", "8.00"]
for i in per:
print(float(per))
->
per = ["10.31", "", "8.00"]
new_per = []
for i in per:
try:
v = float(i)
except:
v = 0
new_per.append(v)
print(new_per)
298. 어떤 값을 0으로 나누면 ZeroDivisionError 에러가 발생합니다. try ~ except로 모든 에러에 대해 예외처리하지 말고 ZeroDivisionError 에러만 예외처리해보세요.[특정 예외만 처리하기]
->
try:
b = 3 / 0
except ZeroDivisionError:
print("0으로 나누면 안되요")
299. 다음과 같은 코드 구조를 사용하면 예외 발생 시 에러 메시지를 변수로 바인딩할 수 있습니다.[예외의 메시지 출력하기]
try:
실행코드
except 예외 as 변수:
예외처리코드
리스트의 인덱싱에 대해 에러를 출력해보세요.
data = [1, 2, 3]
for i in range(5)
print(data[i])
->
data = [1, 2, 3]
for i in range(5):
try:
print(data[i])
except IndexError as e:
print(e)
300.파이썬 예외처리는 다음과 같은 구조를 가질 수 있습니다.[try, except, else, finally 구조 사용해보기]
try:
실행 코드
except:
예외가 발생했을 때 수행할 코드
else:
예외가 발생하지 않았을 때 수행할 코드
finally:
예외 발생 여부와 상관없이 항상 수행할 코드
아래의 코드에 대해서 예외처리를 사용하고 try, except, else, finally에 적당한 코드를 작성해봅시다. else와 finally는 적당한 문구를 print하시면 됩니다.
per = ["10.31", "", "8.00"]
for i in per:
print(float(per))
->
per = ["10.31", "", "8.00"]
for i in per:
try:
print(float(i))
except:
print(0)
else:
print("clean data")
finally:
print("변환 완료")
파이썬 300제를 끝까지 푼 분들~ 정말 고생하셨습니다. !
'Python > 파이썬 300제' 카테고리의 다른 글
파이썬 300제 271~280 (파이썬 클래스) (0) | 2024.06.10 |
---|---|
파이썬 300제 281~290 (파이썬 클래스) (0) | 2024.06.10 |
파이썬 300제 261~270 (파이썬 클래스) (0) | 2024.06.10 |
파이썬 300제 251~260 (파이썬 클래스) (3) | 2024.06.09 |
파이썬 300제 241~250 (파이썬 모듈) (0) | 2024.06.09 |