본문 바로가기
인터페이스 개발/Python

Python - 함수[예제] - 함수 만들기 연습, Number guessing game

by cooluk 2020. 7. 25.

Chap.7 함수[예제] - 함수 만들기 연습, Number guessing game

 

함수[예제]

함수 만들기 연습, Number guessing game

 

함수 만들기 연습

import random

start = 1
rng = 6

number = int(random.random()*(rng)) + start

자주 쓰는 동작 함수로 만들기

import random

start = 1
rng = 6

def rand(start, rng):
    number = int(random.random()*(rng)) + start
    return number

number = rand(start,rng)
print(number)

Python에서는 이미 만들어진 함수를 변수로 쓸 수 있다.
다만 다시 함수를 이용할 수 없다.
ex) range=10 이후 range(10) X

 

rand(start, end) 만들기

def rand(start, end):
    return int(random.random()*(end-start)) + start  # 위에서 number는 필요없는 변수

 

앞으로 시작 함수를 만들자.

def main():
    start = 1
    end =6
    number = rand(start, end)
    print(number)

main()

전역변수를 다 지역변수로 옮긴 것 (전역변수의 사용을 최대한 자제)

 

랜덤한 숫자 5개 뽑아보기(main함수 내에서)

def main():
    start = 1
    end =6
    for i in range(5):
        number = rand(start, end)
        print(number)

main()

entry point : 다른 언어의 main 함수와 같음

 

 

내 풀이

Number guessing game

import random

def main():
    com=rand(1, 100)
    print(com)

    for i in range(5):
        print(i+1,'번째 추측값: ', end='')
        me = int(input())
        if i == 4:
            print("실패했습니다.\n정답은",com)
        else:
            if com == me:
                print("정답입니다.")
                break
            elif com < me:
                print(me, "보다는 작습니다.")
            else:
                print(me, "보다는 큽니다.")

main()

 

 

강사님

Number guessing game

import random

def rand(start, end):
    return int(random.random()*(end-start)) + start

def main():
    number = rand(1, 100)
    print(number)
    for i in range(1, 6):
        num = int(input(str(i)+ "번째 추측값: "))
        result = number - num
        if result == 0: # 정답
            print("정답입니다.")
            break
        elif result > 0:
            print(num, "보다는 큽니다.")
        else:
            print(num, "보다는 작습니다.")

    if result != 0:
        print('실패했습니다.\n정답은 ', number)

main()

result 변수가 사용되어 가독성이 높아졌다. (반성)

정렬이 되어있다면 위 경우는 7번으로 답을 찾을 수 있다.
∵log_2 100 = 6.xxx
40억개 데이터면 32번

댓글