1. while 문
'''
# 반복문이란?
- 특정 코드 블록을 여러번 실행한다.
- 코드의 재사용, 가독성
# 반복문
- while
-반복횟수가 정해진 경우
-반복횟수가 정해지지 않은 경우
=> 무한 루프 , while 조건식 True
=> 조건문과 break 필요
- for
-반복횟수가 정해진 경우, for 인덱스변수 in range()
=>for 인덱스변수 in range()
-문자열|리스트|딕셔너리|튜플 안의 데이터를 순차적 접근
=>for 아이템변수 in 문자열|리스트|딕셔너리|튜플
'''
'''
while문
#반복횟수가 정해진 경우, 조건식이 True 동안 명령문 실행
카운트변수 = 초기치
while 조건식 :
명령문
카운트 변수 증감 (+=, -= 이용)
'''
'''
# ex1) 1~5까지 한행에 출력
# 무한루프인 경우 [Ctrl]+[C]
cnt = 1
while cnt<=5:
print(cnt)
cnt += 1 #코드를 삭제한다면 무한루프
print('while 테스트 종료')
결과)
1
2
3
4
5
while 테스트 종료 -> 한 줄에 하나씩 출력된다.
만약 한줄에 하나씩 출력하려면
cnt = 1
while cnt<=5:
print(cnt, end = ' ') # end = '연결문자|\t' 생략 시 줄바꿈 \n
cnt += 1 #코드를 삭제한다면 무한루프
print('while 테스트 종료')
결과)
1 2 3 4 5 while 테스트 종료
ex2) 10~1 까지 한행에 출력
--------------------------------------------
cnt = 10
while cnt >=1 :
print(cnt, end = ' ')
cnt -= 1
print('\n while 테스트 종료2')
결과)
10 9 8 7 6 5 4 3 2 1
while 테스트 종료2
'''
문제)
# 1~100까지 누적합 구하기
cnt = 1
tot = 0 # cnt의 모든 값을 저장하는 용도 # 1 + 2 + 3 ... + 100
while cnt <=100 :
tot += cnt # tot = cnt + tot
cnt += 1 # cnt = cnt + 1
# print( cnt, tot )
print(f'\n\n 1+2+3...+100 의 합은? {tot}')
결과 ) 5050
#Quiz1 구구단 만들
'''
1) 단의 변수를 입력받아 저장한다. (int 자료형 변경)
2) 카운트변수의 초기값 지정
3) while 문을 이용해서
단*카운트변수 = 계산 결과 출력
num = int(input('출력할 구구단의 숫자를 입력하세요...?'))
cnt = 1
while (cnt<10) :
print(f' {num}X{cnt} = {num*cnt}')
cnt +=1
print('구구단 테스트 종료')
결과)
출력할 구구단의 숫자를 입력하세요...?5
5X1 = 5
5X2 = 10
5X3 = 15
5X4 = 20
5X5 = 25
5X6 = 30
5X7 = 35
5X8 = 40
5X9 = 45
'''
'''
#Quiz2
알파벳의 사선출력
'''
1) 알파벳으로 구성된 문자열 변수 지정
2) 카운트변수의 초기값 지정
3) while 문을 이용해서 결과 출력
여백은 늘어나고 알파벳 글자가 순서대로 출력된다. (문자열 인덱스 증가)
4) ' '*cnt , 문자열변수[]
5) 카운트변수 증가
풀이
txt = 'ABCDEFG'
cnt = 0
while cnt < len(txt) :
print(' '*cnt + txt[cnt])
cnt +=1
결과
A
B
C
D
E
F
G
cnt space character
0 0 A
1 1 B
2 2 C
;
6 6 G
'''
'''
#반복문안에 조건문 형태
cnt = 1
while cnt<=30 :
if (cnt%3 == 0) or (cnt%5 == 0) :
print(cnt, end=' ')
cnt +=1
결과 : 3 5 6 9 10 12 15 18 20 21 24 25 27 30
'''
'''
Quiz3) 1~30 사이의 숫자를 한줄에 5개씩 출력하여라
1) 1~30 사이의 숫자를 한줄에 출력한다. :print(?, end = ' ')
2) 조건문을 이용해서 5의 배수라면 줄바꿈.
3) f' {변수 : (>|>|^) 자릿수}
'''
'''
cnt = 1
while cnt <=30 :
print ( f'{cnt:>2} {cnt+1:>2} {cnt+2:>2} {cnt+3:>2} {cnt+4:>2}')
cnt+=5
cnt = 1
while cnt <=30 :
# 변수의 자릿수를 2자리 만들고 오른쪽 정렬
# 한 행으로 출력
print(f'{cnt:>2}', end = ' ')
if (cnt % 5 == 0) :
print()
cnt +=1
'''
'''
Quiz4 : 리스트에서 평균을 구한 후 평균보다 큰 값만 출력하여라.
sum(숫자리스트) => 리스트의 총합
max(숫자리스트) => 리스트안에서 최댓값
min(숫자리스트) => 리스트안에서 최솟값
리스트평균 = sum(숫자리스트명)/len(숫자리스트명)
1) 숫자로 구성된 리스트를 변수로 정의한다.
2) 리스트의 평균을 구한다.
3) while 문을 이용해서 리스트 데이터 각각 탐색.
조건문을 이용해서 리스트 데이터 값이 평균보다 크다면 출력한다.
풀이)
num_list = [100, 55, 50, 30, 25, 10, 67, 88, 45]
num_list_mean = sum(num_list)/len(num_list)
print(f'{num_list}의 평균은? {num_list_mean:.2f}')
cnt = 0
print('평균보다 큰 값은?', end = ' ')
while cnt<len(num_list) :
# 리스트의 현재 데이터 값이 리스트 전체 평균보다 크다면
if num_list[cnt]>num_list_mean :
print(num_list[cnt], end = ' ')
cnt +=1
# 100 55 67 88
print('\n\n 퀴즈 종료')
'''
2. 중첩 while 문
'''
다중 while 문(중첩 반복문)
cnt1 = 1
while cnt1<=4 :
print(cnt1, '='*10)
# 안쪽 while 문
cnt2 = 1
while cnt2 <=3 :
print(f'\t {cnt2} Hello World')
cnt2 +=1
cnt1 += 1
print('중첩 while 문 테스트 종료')
결과)
1 ==========
1 Hello World
2 Hello World
3 Hello World
2 ==========
1 Hello World
2 Hello World
3 Hello World
3 ==========
1 Hello World
2 Hello World
3 Hello World
4 ==========
1 Hello World
2 Hello World
3 Hello World
중첩 while 문 테스트 종료
'''
'''
Quiz5
다중 while 문을 이용하여 2~9단 출력하기
cnt1 = 2
while cnt1<=9 :
print(f'\t {cnt1} 단')
# 각 구구단의 계산식 출력
cnt2 = 1
while cnt2 <= 9 :
print(f'{cnt1}X{cnt2} = {cnt1*cnt2}')
cnt2 += 1
cnt1 +=1
항상 들여쓰기는 조심!
결과)
2 단
2X1 = 2
2X2 = 4
2X3 = 6
2X4 = 8
2X5 = 10
2X6 = 12
2X7 = 14
2X8 = 16
2X9 = 18
3 단
3X1 = 3
3X2 = 6
3X3 = 9
3X4 = 12
3X5 = 15
3X6 = 18
3X7 = 21
3X8 = 24
3X9 = 27
4 단
4X1 = 4
4X2 = 8
4X3 = 12
4X4 = 16
4X5 = 20
4X6 = 24
4X7 = 28
4X8 = 32
4X9 = 36
5 단
5X1 = 5
5X2 = 10
5X3 = 15
5X4 = 20
5X5 = 25
5X6 = 30
5X7 = 35
5X8 = 40
5X9 = 45
6 단
6X1 = 6
6X2 = 12
6X3 = 18
6X4 = 24
6X5 = 30
6X6 = 36
6X7 = 42
6X8 = 48
6X9 = 54
7 단
7X1 = 7
7X2 = 14
7X3 = 21
7X4 = 28
7X5 = 35
7X6 = 42
7X7 = 49
7X8 = 56
7X9 = 63
8 단
8X1 = 8
8X2 = 16
8X3 = 24
8X4 = 32
8X5 = 40
8X6 = 48
8X7 = 56
8X8 = 64
8X9 = 72
9 단
9X1 = 9
9X2 = 18
9X3 = 27
9X4 = 36
9X5 = 45
9X6 = 54
9X7 = 63
9X8 = 72
9X9 = 81
'''
3. 무한루프
'''
반복횟수가 정해지지 않은 경우
=> 무한 루프, while 조건식이 True|0이 아닌 숫자
=> 조건문과 break 필요
# 조건식을 만족하면 break => while 문 탈출
while True :
명령문1
if 조건식 :
break
명령문2
'''
Quiz6
#q 를 입력하면 입력이 종료된다.
while True :
ans = input('데이터를 입력하세요(입력 종료는 q)...').strip()
#탈출 조건
if ans == 'q' :
break
print(f'Hello World={ans}')
print('무한루프 테스트 종료')
결과)
데이터를 입력하세요(입력 종료는 q)...242323132
Hello World=242323132
데이터를 입력하세요(입력 종료는 q)...q
무한루프 테스트 종료
'''
문제)
coffee = 10
money = '무한대'
while money :
print("돈을 받았으니 커피를 줍니다.")
coffee = coffee -1
print("남은 커피의 양은 %d개 입니다." %coffee)
print()
if coffee == 0 :
print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
break
결과)
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 9개 입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 8개 입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 7개 입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 6개 입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 5개 입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 4개 입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 3개 입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 2개 입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 1개 입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 0개 입니다.
커피가 다 떨어졌습니다. 판매를 중지합니다.
'''
Quiz 7
# 입력 데이터를 리스트에 저장한다.
# 입력 데이터가 q 라면 입력은 종료되고 리스트를 출력한다.
data_list = [] # 빈리스트 정의
while True : # 무한루프
data = input('데이터 입력(q 입력시 종료)...').strip()
# 탈출 조건
if data == 'q' :
break
else:
data_list.append(data)
print('데이터가 리스트에 저장되었습니다.')
print(f'data_list = {data_list}')
결과)
데이터 입력(q 입력시 종료)...wew
데이터가 리스트에 저장되었습니다.
데이터 입력(q 입력시 종료)...q
data_list = ['wew']
'Python' 카테고리의 다른 글
11. 함수 (정의, 매개변수, for문에서의 이용) (1) | 2024.10.08 |
---|---|
10. 반복문 ( continue, pass, range , for ~, 리스트내포) (2) | 2024.10.07 |
8. 제어문 (중첩 if문, 유효성 검사, in 과 not in 연산자) (13) | 2024.10.04 |
7. 제어문 ( if, elif, else) (1) | 2024.10.02 |
6. 딕셔너리, 세트 (0) | 2024.10.02 |