코딩 스쿨에 오신것을 환영합니다~~

질의응답 게시판

 
[스타트파이썬] 연습문제 4-1 관련해 질문 있습니다.
주 * 울 | 2021-05-21

안녕하세요.

우선 바쁘신 와중에도 항상 빠른 확인 감사드립니다^^

다름아니고 스타트파이썬 반복문(for) 연습문제 4-1 관련해 질문사항이 있습니다.

정확히 "4의 배수를 한 줄에 10개씩 출력하라"는 조건을 작성하는 것과 관련해,
처음에 아래와 같이 작성을 하였더니 실행 결과 값이 1줄 10개씩 실행은 되지만
세줄에 한번 꼴로 공백 한 줄이 추가 입력됩니다.
코딩========================================================
count=0

for i in range(800,901) :
    if i%4!=0 :
        print("%4d" % i, end="")
        count=count+1

    if count%10==0 :
        print()
실행========================================================
 801 802 803 805 806 807 809 810 811 813
 814 815 817 818 819 821 822 823 825 826
 827 829 830 831 833 834 835 837 838 839

 841 842 843 845 846 847 849 850 851 853
 854 855 857 858 859 861 862 863 865 866
 867 869 870 871 873 874 875 877 878 879

 881 882 883 885 886 887 889 890 891 893
 894 895 897 898 899
===========================================================

이에 count%10==0에 대한 if 조건문을 if i%4!=0 조건문의 하위 조건으로
작성을 할 경우 연습문제 실행결과 예시와 같이 구현이 됩니다.
두 가지와 관련하여 어떠한 부분이 결과 값 차이를 발생시키는 것인지 궁금합니다.
확인 부탁 드리겠습니다!

코딩========================================================
count=0

for i in range(800,901) :
    if i%4!=0 :
        print("%4d" % i, end="")
        count=count+1

        if count%10==0 :
            print()
실행========================================================
 801 802 803 805 806 807 809 810 811 813
 814 815 817 818 819 821 822 823 825 826
 827 829 830 831 833 834 835 837 838 839
 841 842 843 845 846 847 849 850 851 853
 854 855 857 858 859 861 862 863 865 866
 867 869 870 871 873 874 875 877 878 879
 881 882 883 885 886 887 889 890 891 893
 894 895 897 898 899
===========================================================


  • 관 * 자
  • 2021-05-21 (22:58)
count는 if문의 조건식(4의 배수가 아닌 경우)에만 의미를 가지기 때문에 count가 10의 배수인지를 if문 내에서 체크하여야 합니다.

다음과 같이 count 값을 테스트해보면 이해되실거예요. 이와같이 어떤 값이 생각한대로 동작하지 않을경우에는 직접 그 값을 출력해 보면 무엇이 문제인지를 파악할 수 있습니다.

1번)
count=0

for i in range(800,901) :
    if i%4!=0 :
        print("%4d" % i, end="")
        count=count+1
        
    print("(", count,")", end=" ")
    if count%10==0 :
        print()

실행결과 :
( 0 ) 
 801( 1 )  802( 2 )  803( 3 ) ( 3 )  805( 4 )  806( 5 )  807( 6 ) ( 6 )  809( 7 )  810( 8 )  811( 9 ) ( 9 )  813( 10 ) 
 814( 11 )  815( 12 ) ( 12 )  817( 13 )  818( 14 )  819( 15 ) ( 15 )  821( 16 )  822( 17 )  823( 18 ) ( 18 )  825( 19 )  826( 20 ) 
 827( 21 ) ( 21 )  829( 22 )  830( 23 )  831( 24 ) ( 24 )  833( 25 )  834( 26 )  835( 27 ) ( 27 )  837( 28 )  838( 29 )  839( 30 ) 
( 30 ) 
 841( 31 )  842( 32 )  843( 33 ) ( 33 )  845( 34 )  846( 35 )  847( 36 ) ( 36 )  849( 37 )  850( 38 )  851( 39 ) ( 39 )  853( 40 ) 
 854( 41 )  855( 42 ) ( 42 )  857( 43 )  858( 44 )  859( 45 ) ( 45 )  861( 46 )  862( 47 )  863( 48 ) ( 48 )  865( 49 )  866( 50 ) 
 867( 51 ) ( 51 )  869( 52 )  870( 53 )  871( 54 ) ( 54 )  873( 55 )  874( 56 )  875( 57 ) ( 57 )  877( 58 )  878( 59 )  879( 60 ) 
( 60 ) 
 881( 61 )  882( 62 )  883( 63 ) ( 63 )  885( 64 )  886( 65 )  887( 66 ) ( 66 )  889( 67 )  890( 68 )  891( 69 ) ( 69 )  893( 70 ) 
 894( 71 )  895( 72 ) ( 72 )  897( 73 )  898( 74 )  899( 75 ) ( 75 ) 


--------------------------------------------

2번 

count=0

for i in range(800,901) :
    if i%4!=0 :
        print("%4d" % i, end="")
        count=count+1
        
        print("(", count,")", end=" ")
        if count%10==0 :
            print()

실행결과 :


801( 1 )  802( 2 )  803( 3 )  805( 4 )  806( 5 )  807( 6 )  809( 7 )  810( 8 )  811( 9 )  813( 10 ) 
 814( 11 )  815( 12 )  817( 13 )  818( 14 )  819( 15 )  821( 16 )  822( 17 )  823( 18 )  825( 19 )  826( 20 ) 
 827( 21 )  829( 22 )  830( 23 )  831( 24 )  833( 25 )  834( 26 )  835( 27 )  837( 28 )  838( 29 )  839( 30 ) 
 841( 31 )  842( 32 )  843( 33 )  845( 34 )  846( 35 )  847( 36 )  849( 37 )  850( 38 )  851( 39 )  853( 40 ) 
 854( 41 )  855( 42 )  857( 43 )  858( 44 )  859( 45 )  861( 46 )  862( 47 )  863( 48 )  865( 49 )  866( 50 ) 
 867( 51 )  869( 52 )  870( 53 )  871( 54 )  873( 55 )  874( 56 )  875( 57 )  877( 58 )  878( 59 )  879( 60 ) 
 881( 61 )  882( 62 )  883( 63 )  885( 64 )  886( 65 )  887( 66 )  889( 67 )  890( 68 )  891( 69 )  893( 70 ) 
 894( 71 )  895( 72 )  897( 73 )  898( 74 )  899( 75 )