이것저것 공부기록
3. 반복문 본문
반복문
- 프로그램에서 동일한 문장을 여러 번 반복하는 제어 구조
1. while: 조건 제어 반복 → 몇 번 반복할 지 모를 때 사용
2. for: 횟수 제어 반복 → 몇 번 반복할 지 알 때 사용
while 반복문
· 반복문을 끝내는 조건이 반드시 존재해야 함. → 그렇지 않으면 무한반복 오류 발생
· 조건식 뒤 콜론(:) 필수! (while과 : 사이를 조건식이라고 인식하기 때문)
· 들여쓰기 중요
for 반복문
· 반복한 문장을 시작값부터 증가값만큼씩 증가시키면서 끝값번만큼 반복한다.
· 끝 값만 필수, 시작값의 기본값은 0, 증가값의 기본값은 1
· for 변수 in range(): 콜론 필수!
· 들여쓰기 중요
for i in range(5): # range(5)는 range(0,5,1)과 같음
print(i)
# 0,1,2,3,4 한줄씩 띄어서 출력됨
끝값까지 출력되는 것이 아니라, 끝값번만큼 출력한다는 것 주의!
**그냥 내 생각이지만,
초기값과 증감값을 웬만하면 건들지 않고 조건식을 잘 만드는 것이 보기 편한 것 같다.
사실 for문은 항목을 모아놓은 시퀀스(sequence)에서 항목을 하나씩 가져와서 더 이상 가져올 항목이 없을 때까지 반복하는 것. (시퀀스: 리스트, 튜플, 딕셔너리, 문자열 등 데이터에 순서를 붙여 나열한 것)
for i in [0,1,2,3,4]:
print(i, end=' ')
# 0 1 2 3 4 출력
break문
· 반복문에서 반복문 밖으로 무조건 탈출하기 위해 사용
· while True: → 무한반복문
continue문
· 반복문에서 무조건 블록의 남은 부분을 건너뛰고 반복문의 처음으로 돌아가기 위해 사용
*위의 예제에서 주의할 점
q와 비교해야하기 때문에 처음에 입력받을 때 문자열로 입력받음
후에 짝수인지 홀수인지 비교해야 하기 때문에 int() 함수를 사용해 number라는 새로운 변수에 할당
숫자 맞추기 게임
1. 정답 변수를 1~100 사이의 임의의 수로 정한다.
2. "1부터 100 사이의 숫자를 맞춰보세요"라고 말하고 대답을 입력받는다.
3. 대답이 정답이라면 "정답!"을 출력한다.
4. 정답이 아니라면 정답과 비교하여 큰 지, 작은 지 알려준다.
5. 답을 맞출 때까지 계속 물어볼 수 있도록 계속 반복한다.
6. 정답을 맞춘 경우 반복을 중단한다.
import random # random 모듈 임포트
answer = random.randint(1,100) # (a,b) a~b 사이의 임의의 수 randint() 사용하여 구함
while True:
num = int(input("1부터 100 사이의 숫자를 맞춰보세요: "))
if num == answer:
print("정답!")
break
elif num > answer:
print("너무 커요")
else:
print("너무 작아요")
응용 - 대답을 입력 받을 때마다 '대답횟수' 변수에 1씩 추가하여 정답을 맞춘 경우 몇 번만에 맞추었는지 출력하도록 수정
import random
answer = random.randint(1,100)
cnt = 0
while True:
num = int(input("1부터 100 사이의 숫자를 맞춰보세요: "))
if num == answer:
cnt += 1
print("정답!",cnt,"번 만에 맞추셨습니다.")
break
elif num > answer:
print("너무 커요")
cnt += 1
else:
print("너무 작아요")
cnt += 1
끝말잇기 게임
1. 문자열의 관련 명령과 조건문, 반복문 이용하기
2. 문자열의 글자 수 알아내는 함수: len(변수)
3. 시작단어를 담을 수 있는 변수 var 만들기
4. 사용자 입력은 ans 변수로 받기
5. var 변수의 마지막 글자와 ans 변수의 첫 번째 글자가 같은 지 확인하기
6. 같다면 ans 변수의 내용을 var 변수로 덮어쓰기
7. 다르다면 "땡" 출력하고 위 과정 반복하기
print("끝말잇기 게임")
print("시작")
var = "가나다"
print(var)
while True:
ans = input("단어: ")
if var[len(var)-1] == ans[0]:
var = ans
else:
print("땡!")
i부터 n까지 값을 합산하는 프로그램
1. 변수 i, n, result를 만들고 초기화
2. "연산할 수를 입력하세요"를 묻고 대답을 변수 i에 저장
3. "연산할 끝 수를 입력하세요"를 묻고 대답을 변수 n에 저장
4. i부터 n값이 될 때까지 다음을 반복 → 시작 수(i)에서 끝 수(n)가 될 때까지 덧셈을 하여 결과값(result)에 저장
5. 결과값 출력
i, n, result = 0, 0, 0
print("i부터 n까지의 합을 계산하면 얼마일까요?")
i = int(input("연산할 시작 수를 입력하세요: "))
n = int(input("연산할 끝 수를 입력하세요: "))
for k in range (i, n+1, 1):
result += k
print("합은 %d입니다" %result)
구구단 출력 프로그램
print("while문을 이용한 구구단 출력")
i = 2
k = 1
while i < 10:
while k < 10:
print("%d X %d = %2d" %(i, k, i*k)) # 2d -> 오른쪽 정렬
k += 1
k = 1
i += 1
print("for문을 이용한 구구단 출력")
for i in range (2, 10, 1):
for k in range (1, 10, 1):
print("%d X %d = %d" %(i, k, i*k))
* 서식문자
'언어 > Python' 카테고리의 다른 글
[소창] 10주차 응용 실습 복습 (0) | 2020.05.31 |
---|---|
5. 함수, 파일, 모듈, 패키지 (0) | 2020.05.20 |
4. 리스트, 튜플, 딕셔너리 (0) | 2020.05.19 |
2. 조건문 (0) | 2020.05.19 |
1. 변수, 숫자, 문자열 (0) | 2020.05.18 |