본문 바로가기
개발일지/Python

2022.01.27 6장 반복문 (while, for문)

by 개발에정착하고싶다 2022. 1. 27.
320x100

오늘 하루동안 했던 것을 적어보기 전에 느낀점을 말해보자면

정말 모방이 답이다.

인풋을 하면 할 수록 활용하기가 용이하다.

다만, 어떤 인풋이든 소화를 시키면서, 분해하고 쪼개가며 이해하면서 인풋 중이다.

 

이 짓을 몇개의 강의를 통해서, 도저히 소화가 안되는 난이도까지 갔다가

다시 새로운 다른 강의로 갔다가 다시 도저히 소화가 안되는 난이도 까지 갔다가

다시 새로운 배움의 시작으로 가는것을 반복하다 보니

이젠 그래도 약간은 익숙해졌다.

그리고 간단한 몇 줄 짜리도 전엔 이해가 도무지 안 되었는데

지금은 최소한에 해답을 보고 이해할 수 있는 수준까지는 되었다.

정말 놀랍다.

 

게다가 이번 반복문 파트는 그냥 몰랐던 부분에 대해서

놀라운 것 투성이다.

활용점이 참 많은 부분이였다.

내 기준에서 정말 프로그래밍의 꽃이라고 볼수 있는게 반복문 인것같다.

 

=============================================

''' 1. 샘플코드
for dan in range(2,10):
    print(dan, "단")
    for hang in range(2,10):
        print(dan,"*", hang, "=", dan * hang)
    print() # 큰 틀에서 봤을땐 가장 처음의 for 문 안에 있기 때문에 1번째 for 문이 끝나는 2단이 끝나는 시점에서
            # 한칸 들여쓰기 되는 용도로 사용된다.
'''

''' 2. 내가 작성한 코드
for i in range(2,10):
    print(i,"단")
    for a in range(2,10):
        print(i,"*",a,"=",i*a)
    print()
'''

''' 1번 시도후 실패, 후 해설 참조하여 정답
i = 2

while i <10:
    a= 1      # 여기에 넣어주면 쌓이는 식이 아니라, 2번째 while루프가 끝나면 다시 1로 초기화 된다.
    print(i,"단")
    while a <10: # 이렇게 했을 경우, 2단이 끝나면 a는 10이기 때문에 출력이 안된다.
        print(i,"*",a,"=",i*a)
        a +=1
    i +=1
    print()


'''
'''
# 교재에 나온 while 정석
dan = 2
while dan <=9:
    hang = 2
    print(dan, "단")
    while hang <=9:
        print(dan,"*", hang, "=", dan *hang)
        hang += 1
    dan +=1
    print()
'''

''' 실패. 이건 그냥 이어붙이기만 된다. 당연한거지만
for i in range(10):
    print("*",end="")
    
'''

'''해설지 대로
for i in range(10):
    for x in range(i):
        print("*", end="")
    print()
어떻게 봐도 사실은 이해가 가면서도 딱히 납득은 안간다.
1. 첫번째 for문의 값이 0이기 때문에 두번째 for 문에선 마지막의 print()만된다.
# 왜냐하면 두번째 for문은 첫번째 for문의 숫자만큼 *을 출력해주는데, 첫번째 for문의 첫번째 타자는 0이기 때문이다.
'''

''' *을 한개씩 증가 시켜가며 출력해주는 것
for i in range(10):
    for x in range(i):
        print("*",end="")
    print()
'''

''' 초 간단 별 출력 수식
for i in range(10):
    print("*"*i)
이런건 생각도 못해봤다.
정말 대단 하다. 이렇게 간단하면서 표현이 가능한 수식이 정말 이상적인것같다.
'''

'''
print("3+4 = ?")
while True: # while True의 의미는 좀 더 가깝게. True가 나올때 까지 조진다. 라는 의미같다.
    a = int(input("정답을 입력하시오 : "))
    if (a ==7): break #True가 나오면 이 while의 무한루프에서 벗어난다는 의미다.
print("참 잘했어요")
'''

'''
# 위의 수식을 보지 않고 머리로 연산하며 따라해보기
print("3+4=?")
while True:
    a = int(input("정답을 말해봐: "))
    if a == 7:
        break
print("정답 입니다.")
'''

'''
for ten in range(5):
    for num in range(ten*10, ten*10+10): # 구조적으로 여기는 range 즉, 범위값을 잡는 자리다.
                                        # 그리고 처음은 0*10, 0*10+10이므로 0부터 10 즉, range(10)과 같다.
        print(num,end=",")
    print()
'''

'''
# 위의 수식의 의미는 사실 별거 아니였다.
# 그러나 이것을 내가 직접 표현해 보는 건 어떨까 해서 시도해 본다.

for i in range(5):
    for a in range(i*10,i*10+10):
        print(a,end=",")
    print()
# 성공
'''

'''
# 의도치는 않았지만 아무튼 비슷하게는 갔다. 실패는 실패
for i in range(11):
    for a in range(11):
        print(" ",end="")
    print("*"*i,end="")
    print()
'''
''' 실패. 이거는 뭐 생각이 안난다.
# 턴이 초기에 공백9, 별1개에서 각각 -1,+1이 되게
for i in range(11):
    for a in range(11):
        print(" ",end="")
    print("*"*i,end="")
    print()
그냥 무작정 인풋으로 조지고 그걸 활용하는걸로 늘려가야겠다.
'''

'''
# 해설
for i in range(1,11):
    for s in range(10-i):  # 아 이런식으로도 사용이 가능하단건 처음 알았다.
        print(" ",end="")
    for x in range(i):
        print("*",end="")
    print("")
'''

# 해설 따라하기

'''
for i in range(1,11):
    for x in range(11-i):
        print(" ",end="") # 이 이어붙이는 기능도 참 놀랍다.
    for s in range(i):
        print("*",end="")
    print()                # 이게 있어야 비로소 해당 수식은 완성된다.
'''
'''
# 이번 수식도 별을 트리모양으로 만드는건데 엄두가 안난다. 때문에 그저 따라한다.
for i in range(1,11):
    for s in range(10 -i):
        print(" ", end="")
    for x in range(i*2-1): # 이 부분도 참 놀랍다.
        print("*",end="")
    print()
# 와... 결과적으로 내 머릿속에는 그냥 단 하나의 이미지만 연상되어서 굳어있었다.
# 트리모양의 별을 기준으로 양 옆을 비워준다는 개념.
# 종종 이렇게 연상되는 것 단 하나만 생각하는게 단점인것같긴 하다.
# 해당 모형은 단순하다. 왼쪽에 공백표시되는건 하나씩 줄어가는거고
# 별은 2씩 증가해간다.
'''

'''
for i in range(1,10):
    for x in range(10-i):
        print(" ",end="")
    for s in range(i*2-1): # 이 수식의 메인 포인트다.
        print("*",end="")
    print()
'''

# 지금은 베끼는 수준밖엔 안되지만 언젠가 반드시 이것들을 내가 창조수준으로 활용할때 까지
# 카피하도록 해야겠다.
# 태초의 창조를 제외하고 모든 창조는 모방으로부터 시작되었으니깐.
300x250