for
- 변수 in Iterator(반복자) 형태
- 몇 회 반복할지와 어떤 형태로 반복할지를 설계하는 것
- Iterator로는 range 함수 및 리스트 자료형이 사용될 수 있음
- range 함수는 (시작, 끝, 스텝)으로 구성되는데 인덱스를 기준으로 시작이 0이 기본이기 때문에 끝은 원하는 수 +1로 지정
- for의 조건식이 반복되는 동안 종속문장을 출력하고 그 후 다음 문장을 출력
- 변수의 값 변화와 조건식의 참, 거짓을 중점으로 표를 그려보는 것 추천
Q1. for문을 range()함수, 튜플, 리스트, 문자열을 이용하여 수행
A.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | print("=== range()함수 사용 ===") for i in range(1, 5): print(i) print("=== 튜플 사용 ===") for i in (1,2,2,3,4,5): print(i) print("=== 리스트 사용 ===") for i in [5,4,3,2,1,0,-1]: print(i) print("=== 문자열 사용 ===") for i in "2468" : print(i) | cs |
range(시작, 끝, 스텝)
인덱스(0부터 시작)가 기준이기 때문에
끝은 원하는 마지막 수 +1로 지정해주어야 함.
스텝은 간격.
Q2. for문을 활용하여 아래와 같은 결과 출력
A.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # ver.1 for i in range(1, 31, 1) : print(i, '\t', end='') # end=''는 디폴트인 엔터를 없애는 인자 if (i%5 == 0) : # i가 5의 배수일 때 엔터 print() # ver.2 for i in range(1,31,1): print(i, end="\t") if i % 5 == 0: print() # ver.3 for i in range(1,31): print(i, end = "\n" if i % 5 == 0 else "\t" ) print() | cs |
Q3. 리스트를 사용하지 않고 입력받은 수까지의 홀수와 짝수, 각각의 합을 각각 한줄로 출력하는 프로그램
A.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | oddSum, evenSum = 0, 0 num = int(input("값 입력 : ")) st_odd ='홀수 : ' st_even ='짝수 : ' for i in range(num, 0, -1): #입력받은 값~1까지 반복 if i % 2 == 0: st_even += (str(i) + ' ') if i == 2 else (str(i) + ', ') #삼항연산자 evenSum += i else: st_odd += (str(i) + ' ') if i == 1 else (str(i) + ', ') oddSum += i print("-"*50) print(st_odd,' 홀수의 합 : ', oddSum) print("-"*50) print(st_even,' 짝수의 합 : ', evenSum) print("-"*50) print("%d 에서 1 까지의 합 : %d" % (num, oddSum + evenSum)) | cs |
삼항연산자 : (조건문이 true일 경우 실행할 문장) if (조건문) else (else 종속문장)
문자열을 str()형변환 함수를 활용하여 string형으로 바꿔준 후 합하는 방식
Q4. 이중 for문을 사용하여 아래 실행결과와 같이 출력
A.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # ver. 1 s, n = 1, 4 for i in range(1, 28, 1) : for j in range(s, n) : num = i % 9 if num == 0 : num += 9 print("{} * {} = {}".format(j, num, num*j), "\t", end='') if j % 3 == 0 : print() if i % 9 == 0 : s += 3 n += 3 print() | cs |
1 2 3 4 5 6 | # ver. 2 for i in range(1, 10, 3): # 1부터 9까지 3의 간격으로 i는 1, 4, 7 for k in range(1, 10, 1): # 1~9까지 곱해지는 수 print("%d * %d = %d \t %d * %d = %d \t %d * %d = %d " % (i, k, i*k, i+1, k, (i+1)*k, i+2, k, (i+2)*k )) # i+1, i+2 print() #간격 띄어줌 | cs |
Q5. 이중 for문을 사용하여 아래 실행결과와 같이 출력
A.
1 2 3 4 5 6 7 8 9 | # ver.1 star="*" for i in range(0,2): #위쪽, 아래쪽 두 번 반복 for k in range(1,4): if i==0: print(star*(i+k)) else: print(star*(4-k)) print() | cs |
1 2 3 4 5 6 7 8 9 10 | # ver.2 e = 1 for i in range(1, 7) : # 6개의 라인 if i < 4 : e = e+1 elif i > 4 : e = e-1 for j in range(1, e) : print("*", end='') print() | cs |
1 2 3 4 5 6 7 | # ver3. for y in range(1,7): for x in range(1,4): if y>=x and (y-x)<4: print("*",end="") print() print() | cs |
ver.2와 유사하지만 and 연산자를 이용해 조건문을 하나만 사용
'study > python' 카테고리의 다른 글
파이썬 튜플(Tuple) 예제 (0) | 2022.05.31 |
---|---|
파이썬 리스트(List) 활용, 정렬 예제 (0) | 2022.05.31 |
파이썬 for문 , while문 (반복문) 예제 (0) | 2022.05.27 |
파이썬 if~elif~else / match~case (switch~case) 조건문 예제 (0) | 2022.05.26 |
파이썬 문자열을 출력하는 여러가지 방법 예제 (0) | 2022.05.26 |
댓글