파이썬 기본 문법 강의 2일차 - 제어문으로 로또 게임 만들기

어제에 이어서 2일차 교육이 진행됩니다.

2021.09.01 - [Tip & Tech/Python] - 파이썬 기본 문법 강의 - 1일차
2021.09.03 - [Tip & Tech/Python] - 파이썬 기초 문법 3일차 - Numpy
2021.09.05 - [Tip & Tech/Python] - 파이썬 기초문법 4일차 - 판다스 알아보기
2021.09.07 - [Tip & Tech/Python] - 파이썬 기초 문법 5일차 - 판다스 2편

 

파이썬 교육

오늘 시간에는 파이썬의 제어문에 대해서 배워보았습니다.

제어문이란?

  • 순차
  • 반복
  • 선택

제어문은 위에 나타난 순차, 반복, 선택이라는 3가지 동작을 하는 문법을 뜻합니다.

주요한 제어문에는 IF문, For문, While문이 있는데요.

이중 가장 먼저 먼저 IF문에 대해서 배워봅니다.

IF문?

IF문은 어떠한 조건에 따라서 명령을 선택하여 실행할 수 있는 문법이구요.

파이썬에서는 아래와 같이 정말 간단하게 구현할 수 있습니다.

아래에 성적을 입력받아 처리하는 간단한 프로그램을 짜보았는데요.

주의할 점은 입력값(input)은 int로 타입을 변경해서 받아야지 숫자로 변환되서 에러가 나지 않습니다.

score = int(input('성적을 입력해주세요.'))


if score >= 90 :
    print('A')
elif score >= 80 :
    print('B')
elif score >= 70 :
    print('C')
else :
    print('D')

위 코드를 간단히 설명드리면 input명령어로 score라는 변수에 값을 입력받아서

해당 score 변수가 90점 이상이면 A, 80점 이상이면 b, 70점 이상이면 C,

그 외에(else)인 경우 D를 나타내는 프로그램입니다.

이 경우 순차적으로 조건을 썼기 때문에 에러가 없는데요.

혹시 A,B,C,D의 순서가 변경된다면 and 명령어를 활용해서

score < 90 and score >=80:

이렇게 양쪽에 조건을 주면 명확하게 90점 미만 80이상으로 코딩되어 에러가 나지 않습니다.

실행화면

For문?

if문에 이어서 데이터를 받아서 판단하는 for문도 알아보겠습니다.

기본적으로 파이썬과 같은 언어는 실습을 많이 해보셔야 실력이 빨리 느는데요.

저도 초보지만 같이 따라해보시면 좋을 것 같습니다.

이번에는 입력받은 성적(result)라는 데이터에서 for문을 통해 계속 데이터 안에 리스트를

하나씩 불러와서 60점보다 높으면 합격이라고 정리하는 프로그램을 제작해보겠습니다.

이번에는 새로운 문법도 배우는데요. 

f'를 활용하면 앞에서 사용한 score라는 변수 값을 출력을 담당하는 프린트문에서 표현할 수 있습니다.

합격 분류 프로그램

그리고 이러한 제어문의 마지막 단계는 제어문의 원리를 가장 간단하면서도 잘 이해할 수 있는

구구단 만들기를 통해서 주로 연습하는데요.

마치 초등학교 산수에서 구구단 외우기를 하는 것처럼 코딩에서도 기초는 구구단 만들기입니다.

구구단은 여러가지 방법으로도 만들 수 있는데요.

제가 오늘 다룰 것은 아래와 같이 간단하게 2중 For문을 통해서 range(1,10) 명령어로 1~9까지 순서대로 만들어서

구구단 프로그램을 제작해보겠습니다.

이 외에도 여러가지 방법이 있으니 연습하시면서 자기만의 구구단 프로그램을 한번 만들어보세요.

소스코드는 아주 간단하게 4줄로 작성해보았구요. 

for i in range(1,10):
    print(f'----{i}단------')
    for j in range(1,10):
        print(f'{i} X {j} = {i*j}')

실행하면 아래처럼 동작하게 됩니다.

구구단 만들기

While문

그리고 마지막으로 While문도 있는데요.

While문은 특정 조건을 만족하는 동안 실행되는 반복문입니다.

그래서 While문으로 코딩할 때에는 꼭 조건을 증가시키거나 감소시켜야지 무한 루프에 빠지지 않습니다.

아래는 간단한 While문을 이용한 코드를 통해서 1~100까지의 수중에서 짝수를 더하는 프로그램을 짜보았습니다.

초기 변수(a, sum1)를 설정하고, a%2 == 0을 통해서 짝수이면 더하도록 만들었습니다.

위의 뜻은 a를 2로나눈 나머지가 0이면 짝수라는 뜻입니다.

a = 1
sum1 = 0
    
while a <= 100:
    if a%2 == 0:
        sum1 = sum1 + a
        a = a +1
    else :
        a = a + 1
print(sum1)

그리고 이러한 반복문은 중간에 종료할 수 있는데요

  • break : 현재 속한 반복문 종료
  • Continue : 현재 반복에 대해서 나머지 코드 뛰어넘기
  • pass : 아무 작업도 하지 않음

파이썬 함수

그리고 파이썬에서는 코드의 반복을 피하기 위해서 특정 작업을 수행하는 명령문의 그룹인 함수를 정의할 수 있는데요.

더하기라는 함수를 정의한다고 하면 아래처럼 구현이 가능한데요.

def 함수명(입력 매개변수), 수행문장, return값으로 구성되어 있습니다.

def add(x,y):
    result = x+y
    return result

그리고 함수를 통해서 로또 게임을 생성할 수 있는데요.

파이썬 로또 생성기 만들기

오늘 배운 제어문을 총 정리하면서 간단한 게임을 만들 수 있는데요.

부자가 될 수 있는 로또 게임을 오늘 배운 것으로 만들 수 있습니다.

동작원리는 먼저 getLotto라는 함수를 정의합니다. 이 함수에는 game이라는 값을 입력 받게 됩니다.

random 함수를 import 한후에 빈 배열인 games를 만듭니다.

그리고 6개의 숫자가 중복이 없어야 하니 set으로 만들고, 길이가 6이 되기 전까지 돌리도록 만듭니다.

랜덤으로 만들어진 숫자는 append로 뒤에 붙입니다.

append는 리스트의 마지막에 값을 추가하는 명령어 입니다.

r이라는 변수에 random 함수를 통해서 변수를 만들어서 넣고

lotto.append(r)을 통해서 하나씩 추가됩니다.

말로 설명하니까 생각보다 길어지는데요. 아래 코드를 보면 오히려 쉽게 이해될 수 있습니다.

import random
def getLotto(game):
    for n in range(game):
        lotto = []
        while len(lotto) != 6:
            r = random.randint(1, 46)
            lotto.append(r)
            lotto = list(set(lotto))
        print(f'게임 {n+1} 번째 게임 {lotto}')
count = int(input('게임 수를 입력하세요.'))
getLotto(count)

한번 스스로 작성해보시면서 따라해보시면 좋을것 같습니다.

728x90

해당 블로그에서 발행되는 콘텐츠 중 일부 글에는 제휴 및 홍보 관련 링크가 포함될 수 있으며, 파트너스 활동의 일환으로 일정액의 수수료를 받을 수 있습니다.