#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목2019-2 중간고사 답 예시2019-10-21 15:03
작성자

못 푸신분들은 참고하시면 좋을 거 같네요


1번 문제는 간단하게 풀 수 있었네요




# Start of Answer

def CalcFactorial(number):

    

    factorial = 1

    

    #number의 타입이 정수가 아니면 -1을 return한다

    if (type(number) != int):

        return -1

    else :

        #number의 값이 0보다 작거나 같으면 -2를 return한다

        if (number <= 0) :

            return -2

        else :

            #number가 1보다 작아질 때까지 number의 값을 factorial에 곱해주고 number의 값을 1씩 빼준다

            while (number >= 1):

                factorial *= number

                number -= 1

    

    return factorial

                

# End of Answer


# Below is Execution Example


print(CalcFactorial(5))




2번 문제도 문제에 해야할거를 다 주셔서 간단하게 풀 수 있었네요. random 모듈쓰는 법만 알면 간단히 풀 수 있는 문제였습니다




caseTypes = ["scissor", "rock", "paper"]


# Start of Answer


#난수를 생성하기 위해 random 모듈을 import한다

import random


def GenerateRandomCaseForComputer():

    

    #random_number은 0,1,2중 하나의 값을 가진다

    random_number = random.randrange(0,3)

    

    #caseTypes[0] = "scissor", caseTypes[1] = "rock", caseTypes[2] = "paper" 셋 중 하나를 return한다

    return caseTypes[random_number]


def MakeDecision(valueUser, valueComputer):

    

    #valueUser와 valueComputer의 값이 "rock", "scissor", "paper" 중 하나가 아닐 때 -1을 return한다

    if ((valueUser != "scissor") and (valueUser != "rock") and (valueUser != "paper")) or ((valueComputer != "scissor") and (valueComputer != "rock") and (valueComputer != "paper")):

        return -1

    

    else:

        

        # User가 낸 것과 Computer가 낸 것이 같으면 무승부처리한다

        if(valueUser == valueComputer):

            return "Tie"

        

        # User가 낸 것과 Computer가 낸 것이 다르면 각각의 경우에 따라 승패를 정한다

        else:

            if(valueUser == "rock"):

                if(valueComputer == "scissor"):

                    return "User"

                else:

                    return "Computer"

            elif(valueUser == "paper"):

                if(valueComputer == "rock"):

                    return "User"

                else:

                    return "Computer"

            else:

                if(valueComputer == "paper"):

                    return "User"

                else:

                    return "Computer"

        

    

# End of Answer


# Below is Execution Example


userInput = 0

while True:

    userInput = int(input("nMenu: n[0] scissor, n[1] rock, n[2] paper, n[3] quit nnSelect: "))

    if(userInput != 3):

        valueUser = caseTypes[userInput]

        valueComputer = GenerateRandomCaseForComputer()

        valueDecision = MakeDecision(valueUser, valueComputer)

        print("nResult: User [{0}] vs Computer [{1}] -> Winner is {2}".format(valueUser, valueComputer, valueDecision))

    else:

        break


댓글