1. 국내주식/1-1. 국내주식 연구일지

(파이썬) for문 활용 (3) - 단어 뒤에 숫자 붙여서 출력하기

봄이오네 2022. 10. 21. 08:11
반응형
목 차
1. 들어가며
2. 필요성
3. 사전준비
① 단어 + 숫자 → 에러 발생 (패턴이 정의되지 않음)
② "단어" + 숫자 → 에러 발생 (문자와 숫자는 연결해서 출력 안됨)
③ "단어" + "숫자" → 출력 성공 (문자형과 문자형을 연결하였기 때문에 출력 성공)
4. for문을 통해 특정단어의 끝에 붙은 숫자 증가시키기
① "단어" + "문자형 변수(i)" → "단어i"로 출력 (실패)
② "단어" + 변수 str(i) → 당초 의도한 대로 출력 (성공)
5. 마치며

1. 들어가며

주식 자동 매매 시스템을 구축하기 위해서 많이 쓰이는 모듈 중 하나가 for문일 것이다.
for문은 한정된 범위에서 사용자가 정한 범위(range)에서
데이터를 얻어올 때 주로 쓰인다.

이 글에서는 for문을 통해 특정단어에 숫자가 붙는 내용을 설명할 예정이다.
ex) pattern0, pattern1, pattern2, ...... , pattern10


2. 필요성

특정단어에 숫자를 붙여야하는 이유는 무엇일까?
향후 패턴에 따라 익절/손절을 할 때,
종목코드/패턴 파악시에도 for문이 쓰이지만,
익절/손절 타점을 설정할 때도 for문이 쓰이기 때문이다.


3. 사전 준비

  • 특정단어(pattern)에 숫자를 붙이는 방법 : 숫자도 문자형으로 변경하여 활용(③번 사례)

단어 + 숫자 → 에러 발생 (패턴이 정의되지 않음)
오류 내용 : NameError: name 'pattern' is not defined

print(pattern + 1)


(expected result)
 	print(pattern + 1)
NameError: name 'pattern' is not defined


"단어" + 숫자 → 에러 발생 (문자와 숫자는 연결해서 출력 안됨)
오류 내용 : TypeError: can only concatenate str (not "int") to str

print("pattern" + 1)


(respected result)
	print("pattern" + 1)
TypeError: can only concatenate str (not "int") to str

"단어" + "숫자" → 출력 성공 (문자형과 문자형을 연결하였기 때문에 출력 성공)

print("pattern" + "1")


(expected result)

pattern1

4. for문을 통해 특정단어의 끝에 붙은 숫자 증가시키기

① "단어" + "문자형 변수(i)" → "단어i"로 출력 (실패)

for i in range(0,3):
    print("pattern" + "i")
    
    
(expected result)
patterni
patterni
patterni


② "단어" + 변수 str(i) → 당초 의도한 대로 출력 (성공)

  • 2번째 줄의 변수 i앞에 str을 붙여주어서 문자형으로 만들어주는 것이 핵심이다.
for i in range(0,3):
    print("pattern" + str(i))
    

(expected result)
pattern0
pattern1
pattern2
그림. 3번째 줄에서 변수i 앞에 str을 붙여준다.

5. 마치며

for반복문을 활용하여 특정 단어 뒤에 숫자가 붙는 방법을 알아보았다.
핵심은 변수(i)앞에 str을 붙이면 되는 것이다.

다만, 위의 방법에서 한가지 알아 두어야 할 것은,
<그림>의 3번째 줄에서도 확인하였듯이,
출력된 결과문인 pattern0은 문자형이라는 것이다.

문자형이 문제가 될 수 있는 건, 향후 기술한 pattern은 리스트 타입으로 가질 것이다.
즉, 문자형의 pattern0 과 리스트형의 pattern0 은 동일할 수 없다는 것이다.

다음 글(for문-4번. for문에서 eval 활용하기)에서 위의 문제점을 설명하겠다.

반응형