이번 글에서는 for반복문과 if 조건문이 함께 사용되는 예제를 몇 가지 살펴보겠습니다.
목차
1. for 반복문을 사용하여 1부터 100까지 숫자 중 짝수 더하기
어떤 숫자가 짝수인지 홀수인지는 어떻게 판별할까요?
숫자를 i 라고 해보겠습니다.
i / 2를 했을 때 나머지가 0이면 i는 짝수입니다.
i / 2를 했을 때 나머지가 0이 아니면 i는 홀수입니다.
#합을 구하기 위해 sum이라는 변수를 만듦
sum = 0
#for반복문을 사용하여 1부터 100까지 중 짝수를 더함
for i in range(101):
if i % 2 == 0:
sum += i
#최종 결과 출력
print("1부터 100까지의 수 중 짝수를 더하면: {}".format(sum))
결과는 다음과 같습니다.
2. 4의 배수인 자연수의 개수 구하기
이번에는 사용자에게 숫자를 입력받겠습니다.
그런 다음 1부터 사용자가 입력한 숫자까지의 자연수 중에서
4의 배수인 자연수의 개수를 구해보겠습니다.
#사용자가 숫자 입력
num = int(input("숫자를 입력하세요: "))
#개수를 세기 위해 count변수를 만듦
count = 0
#1부터 사용자가 입력한 수 중 4의 배수의 개수 구함
for i in range(1, num + 1):
if i % 4 == 0:
count += 1
#최종 결과 출력
print("1부터 %d까지의 숫자 중 4의 배수는 총 %d개 입니다."%(num, count))
실행을 시켜 볼까요?
사용자가 70을 입력했다면
1부터 70까지의 숫자 중 4의 배수의 개수는 17개가 나오는 것을 알 수 있습니다.
이 내용을 엔트리 블록 코딩으로 만들어보았습니다.
텍스트 코딩보다 오히려 복잡한 느낌이 듭니다.
3. 파이썬으로 숫자 맞추기 놀이
이번에는 간단한 파이썬 게임을 만들어 보겠습니다.
바로 숫자 맞추기 게임입니다.
기회는 총 10번이고
1부터 100까지 중에 숫자를 하나 추측해서 입력해야 합니다.
컴퓨터가 이미 랜덤으로 뽑은 숫자와 내가 입력한 숫자를 비교해서
내가 입력한 숫자가 더 크다면 크다고 알려줍니다.
내가 입력한 숫자가 더 작다면 작다고 알려줍니다.
답을 맞추면 바로 게임이 종료되고
10번동안 답을 못맞춰도 게임이 종료됩니다.
import random
#정답은 무작위로 설정
answer = random.randint(1,100)
print("숫자 맞추기 게임을 시작합니다. 기회는 총 10번 있습니다.")
#총 10번의 기회를 제공
for i in range(10):
#10번 동안 물어봄
num = int(input("1부터 100까지중에서 숫자를 하나 추측해서 입력해 보세요: "))
#조건문으로 답이 맞았는지, 맞지 않았는지 판별
if num == answer:
print("정답입니다. 축하합니다.")
break
elif num > answer:
print("너무 큽니다. 조금 줄여보세요.")
else:
print("너무 작습니다. 조금 키워보세요.")
print("게임이 종료되었습니다.")
실행시켜 보겠습니다.
저는 5번 만에 답을 맞추었네요.
4. 파이썬 구구단 맞추기 놀이
이번에는 비슷하게 구구단을 외자 게임을 해보겠습니다.
문제를 연속으로 7개 맞히면 게임이 끝납니다.
6개까지 맞히다가 7번째 실수를 한다면? 맞힌 개수가 0으로 돌아갑니다.
아주 잔인한 게임이죠.
꼭 연속해서 7개의 답을 맞춰야 게임이 끝나게 됩니다.
import random
count = 0
print("지금부터 구구단 게임을 시작하겠습니다. \n문제를 연속으로 맞춰보세요. \n중간에 틀리면 맞힌 개수가 다시 0개로 돌아갑니다.\n")
#문제 10개 내는 for반복문
for i in range(10):
a = random.randint(1,9)
b = random.randint(1,9)
answer = a * b
user = int(input("{}와 {}의 곱은?".format(a, b)))
if answer == user:
count += 1
print("정답입니다. 지금까지 맞힌 개수는 %d개 입니다. 다음문제를 풀어주세요."%(count))
if count == 7:
print("연속으로 7문제를 맞히셨네요. 이제 그만 연습하세요.")
break
else:
count = 0
print("아쉽게도 답이 아닙니다. 맞힌 개수가 리셋되어 0개가 되었습니다.\n")
결과를 살펴보겠습니다.
저는 7개를 모두 못맞힌 상태에서의 화면을 캡쳐하였습니다.
5. 파이썬 홀짝 맞히기 게임
이번 게임은 독특한 게임입니다.
컴퓨터가 이미 랜덤으로 숫자를 하나 선택합니다.
그리고 사용자가 숫자를 1개 입력합니다.
만약 컴퓨터가 뽑은 숫자와 사용자가 뽑은 숫자가 모두 홀수이면 성공입니다.
만약 컴퓨터가 뽑은 숫자와 사용자가 뽑은 숫자가 모두 짝우여도 성공입니다.
그러나 두 숫자가 하나는 홀수고 다른 하나는 짝수라면 실패입니다.
성공이 나와야 게임이 끝납니다.
import random
answer = random.randint(1,100)
for i in range(5):
user = int(input("1부터 100까지의 수 중에 숫자 1개를 입력하세요: "))
print(answer)
if (user % 2 == 0) & (answer % 2 == 0):
print("도전 성공!")
break
elif (user % 2 != 0) & (answer % 2 != 0)\:
print("도전 성공!")
break
else:
print("다시 도전해보세요!")
print("홀짝 게임이 끝났습니다.")
결과는 다음과 같습니다.
6. 파이썬 마피아 게임
마지막 예제는 마피아 게임 만들기 입니다.
우선 사용자에게 게임 참가자들을 보여줍니다.
사용자는 이 중에 마피아일 것 같은 친구의 이름을 작성합니다.
만약 컴퓨터가 랜덤으로 뽑은 마피아와 같다면 축하한다고 알리고 게임이 끝납니다.
만약 다른 친구를 썼다면 다시 찾아보라고 합니다.
총 기회는 3번 이고, 기회가 끝날때까지 마피아를 찾지 못해도 게임이 종료됩니다.
게임 종료 후에는 마피아 친구의 이름을 알려줍니다.
import random
student = ['유재석', '박명수', '정준하', '하하', '노홍철', '정형돈']
#지정된 sequence(리스트 등) 내의 범주에서 무작위로 1개를 선택하여 추출해 주는 함수
mafia = random.choice(student)
chance = 3
print("마피아 게임 참여자\n {}".format(student))
for i in range(chance):
question = str(input("마피아는 누구일까요? 남은 기회는 {}번 입니다.".format(chance)))
if question == mafia:
print("마피아를 발견했네요. 축하합니다.")
break
elif (question != mafia) & (chance > 1):
chance -=1
print("그 친구는 마피아가 아닙니다. 다시 찾아보세요.")
else:
print("결국 찾아내지 못했군요.")
print("게임 종료. 마피아는 {}였습니다.".format(mafia))
실행시 이렇게 게임이 진행됩니다.
이번 글에서는 for반복문과 if 조건문을 사용하여
여러 예제를 실습해보았습니다.
다음 글에서는 리스트 예제를 살펴보겠습니다.
'프로그래밍 > 파이썬기초' 카테고리의 다른 글
파이썬 리스트(list) 항목 값 변경 예제 (0) | 2023.10.08 |
---|---|
파이썬 리스트 인덱싱(list indexing)과 슬라이싱(slicing) (0) | 2023.10.07 |
파이썬 기초 if-else 예제 (0) | 2023.10.05 |
파이썬 random 객체 예제(randint, randrange) (0) | 2023.09.26 |
파이썬 for반복문과 range()함수 예제 (0) | 2023.09.25 |