Backend/Python

첫코딩 : 배스킨라빈스31 게임

surge_95 2022. 3. 17. 00:32
from random import *

print('game start')
cnt = 1
while True:
    while True: # 에러 처리 
        try:
            N = int(input('[Player1] How many do you count(1~3):'))
            if N >= 1 and N <= 3:
                break
            else:
                print('You can count only 1 or 2 or 3')
        except:
            print("Error. Try again")
    for i in range(N):
        print('{}'.format(cnt+i), end=" ")  # 줄바꿈없이 출력 
    print() 
    cnt = cnt + N
    if cnt >= 31:
        break

    N = randint(1, 3)   # 컴퓨터 참가자 추가 
    print('[computer]How many do you count?:{}'.format(N))
    for i in range(N):
        print('{}'.format(cnt+i), end=" ")
    print()
    cnt = cnt + N
    if cnt >= 31:
        break

print('game over')

# 예외처리부분 함수처리로 코드 단순화

from random import *
import time

def rightInput(Q):
    while True:
        try:
            N = int(input(Q))
            if N >= 1 and N <= 3:
                break
            else:
                print('You can count only 1 or 2 or 3')
        except:
            print("Error. Try again")
    return N

print('game start')
cnt = 1
while True:

    N = rightInput('[Player1] How many do you count(1~3):')
    for i in range(N):
        print('{}'.format(cnt+i), end=" ")
    print()
    cnt = cnt + N
    if cnt >= 31:
        break
	
    time.sleep(2)  # slee함수(time패키지):컴퓨터 반응속도 늦추기
    	
    N = randint(1, 3)
    print('[computer]How many do you count?:{}'.format(N))
    for i in range(N):
        print('{}'.format(cnt+i), end=" ")
    print()
    cnt = cnt + N
    if cnt >= 31:
        break

print('game over')

 

* TypeError: 'NoneType' : 함수에서 return되는 값이 없을때! → return의 줄정렬을 다시 확인하여 해결함.