Q1. 구구단, 홀수번째 출력, 값이 50이하인 것만 출력.

def checkInput(number) : #check validity
    while True:
        try :
            inumber = int(number)
            break
        except :
            print("Invaild input! Please check it (1~9)")
            number = input("Which order do you want to calculate the multiplication table? ")
            return checkInput(number)

    if inumber > 9 or inumber < 1:
        print("Invaild Input! Please check it (1~9)")
        number = input("Which order do you want to calculate the multiplication table? ")
        return checkInput(number)
    else:
        return inumber #return int

def calMult(number) :
    print("Order : "+str(number))
    a = 1 #increase order
    i = 1 #index for odd n
    result = number * 1 #initialization
    while result<=50 and a <= 9: #print the results below the 50
        print(f"{number}X{a}={result}") #print
        a = 2*i + 1 # odd number
        result = number * a
        i=i+1

#---main---
number = input("Which order do you want to calculate the multiplication table? ")
calMult(checkInput(number))

Q2. 가위바위보 업그레이드 버전.(함수 버전, 게임을 몇판 진행할지 입력, 다르 입력 시 재입력, 게임종료 후 총 전적 출력)

import random  # import to use random function

def checkInput():
    while True:
        print("------Please enter the input as 0(rock), 1(scissors), 2(paper)------")
        human = input("Rock Scissors Paper! : ")
        try:  # check that input can be convert to int type
            ihuman = int(human)
            if ihuman >= 3:
                print("Invalid Input!! Please check it")
                print("You should insert 0(rock), 1(scissors), 2(paper) only. Try again")
                continue
        except:  # if input can not be convert to int type, convert the input manually.
            if (human == "rock"):
                ihuman = 0
            elif (human == "scissors"):
                ihuman = 1
            elif (human == "paper"):
                ihuman = 2
            else:
                print("Invalid Input!! Please check it")
                print("You should insert 0(rock), 1(scissors), 2(paper) only. Try again")
                continue
        break
    return ihuman  # return the input that type of int


# play the game
def doGame(human):
    computer = random.randint(0, 2)
    if (human == computer):  # case : draw
        printStatus(human, computer)  # print the status
        print('Round',i,'result: Draw!')
        result = 'draw'
        return result
    # Calculate the levicivita since the game is based on the permutation
    # Rock(0) -> Scissors(1) -> Papaer(2) -> Rock(0) ->....
    levicivita = lambda i, j, k: (i - j) * (j - k) * (k - i) / 2
    other = [0, 1, 2]  # remain component of levicivita calcaulation
    other.remove(int(human))
    other.remove(int(computer))
    levi = levicivita(human, computer, other[0])

    if (levi == 1):  # case : win
        printStatus(human, computer)  # print the status
        print('Round',i,'result: You win!')
        result = 'win'
        return result

    elif (levi == -1):  # case : loose
        printStatus(human, computer)  # print the status
        print('Round',i,'result: You lose!')
        result = 'lose'
        return result


# print the status
def printStatus(human, com):
    a = 0  # for Indexing
    for tmpinput in [str(human), str(com)]:
        if (tmpinput == "0"):
            soutput = "rock"
        elif (tmpinput == "1"):
            soutput = "scissors"
        else:
            soutput = "paper"
        if (a == 0):
            print(f"You : {soutput}")
            a = a + 1  # for indexing
        else:
            print(f"Computer : {soutput}")


# -----------------------------------main--------------------------------------
print("------------------------ROCK SCISSORS PAPER ------------------------")

#input numbers for turns of game
while True:
    try:
        games = int(input("How many times do you want play?:"))
    except:
        print("Only numbers are allowed. Please try again.")
        continue
    break
if games == 0:
    print("Oh, you don't want to play game? Ok, bye")
    quit()
#execute the games
w=0
d=0
l=0
for i in range(1,games+1):
    print('-----Round',i, '!-----')
    score = doGame(checkInput())
    if score == 'draw':
        d = d + 1
    elif score == 'win':
        w = w + 1
    else:
        l = l + 1
# total score after game ends
print("-----------------------------Total score----------------------------")
print('My record:',w,'win',d,'draw',l,'lose')
print("Com's record:",l,'win',d,'draw',w,'lose')

Q3. 2개의 숫자를 입력받아, 그 사이 짝수만 출력. (중앙값이 짝수가 아닐 시는 출력 X)

print('짝수의 개수를 확인하고픈 범위를 알려주세요!')
n=int(input('확인하고 싶은 범위의 첫 번재 수 입력해주세요: '))
m=int(input('확인하고 싶은 범위의 마지막 수 입력해주세요: '))
b=0
numbers=[h for h in range(n,m+1)]
count = len(numbers)
if count % 2 == 0: # 짝수인 경우,
    mid = ( numbers[int(count/2-1)] + numbers[int(count/2)] ) / 2
else: # 홀수인 경우.
    mid = numbers[int(count/2)]
for h in numbers:
    if h%2==0:
        if h == mid:
            print('알려주신 범위 내에는',h,'라는 짝수이자 중앙값이 있네요')
        else:
            print('알려주신 범위 내에는',h,'라는 짝수가 있네요')
        b=b+1
print('Done!')
print('총',b,'개의 짝수가 있습니다')

Q4. 2개의 숫자를 입력받아, 그 사이 소수가 몇개인지 출력하는 함수.

def count_prime_number(n, m):
    prime_count = 0;

    # n보다 m이 크거나 같도록 switching.
    if n > m:
        temp = n
        n = m
        m = temp

    while n <= m:
        prime_case_variable = 0 # 밑에 while문을 돌고 나왔을 때, 이 값이 2라면, 소수인 것!
        currentValue = 1

        while currentValue <= n:
            if prime_case_variable == 2: # while문을 돌고 있는데, 이 값이 2라는 건, 이미 소수가 아니라는 것 임.
                break
            if n % currentValue == 0: # 나누어 진다는 소리임.
                prime_case_variable = prime_case_variable + 1

            currentValue = currentValue + 1 # 다음 반복문을 위한, variable setting.

        if currentValue > n: # break를 안타고, while문을 다 돌았으면(소수라면), currentValue 값이 n보다 무조건 크다.
            if prime_case_variable == 2: # while문을 돌고 나왔는데, 이 값이 2라면, 소수인 걸로 n을 소수로 count 해줘도 됨!
                prime_count = prime_count + 1

        n = n + 1 # 다음 반복문을 돌기 위한, variable setting.

    return prime_count

if __name__ == "__main__":
    while True:
        try:
            # 입력
            n = int(input("첫 번째 수 입력 : "))
            m = int(input("두 번째 수 입력 : "))
            break
        except:
            print("아마 int형이 아닌 값을 입력하셨을 겁니다.\n다시 입력해주세요.")

    count = count_prime_number(n, m)

    # 출력
    print("소수개수 :", count)