본문 바로가기
python/파이썬으로게임만들기

파이썬게임만들기-제7장숫자맞추기게임-1.조건루프

by 유봉삼 2023. 4. 29.
728x90
반응형


파이썬으로 게임만들기

제7장 1번 조건루프

책에 있는 예제 살짝 변경함

파이썬마스터하기 어렵넹 ㅠㅠ


07장 숫자 맞히기 게임 만들기
07-1 조건 루프란?
07-2 숫자 맞히기 게임 프로그래밍하기


 

기본익히기

 

#예제1 while = 조건루프기본

    #입력변수초기화하기
userinput = ""
    #사용자 입력받기 (\ = "이스케이프문자-줄바꿈(다음행과 이어질때)")
userinput = input("무언가를 입력하거나 입력을 멈추려면 STOP 하세요:")\
    .upper() .strip()
    #STOP을 입력할때까지 반복하기
while userinput != "STOP":
    userinput = input("무언가를 입력하거나 입력을 멈추려면 STOP 하세요:")\
    .upper() .strip()

 

animal 리스트 만들기

책에 있는 예제코드는 오류가 있으므로 약간 수정했음 

입력된 값이 문자가 아니면 다시 입력하게 코드를 수정했음

#예제2
    # 빈 animal 리스트 만들기
animal = []
    #입력변수초기화하기
userinput = ""
    #사용자에게 설명문 출력하기
print("animal리스트를 만들어보자")
print("한번에 하나씩 입력!")
print("입력이 끝나면 빈칸을 입력!")

    #빈문자열이 될 때까지 루프 
while True:
    userinput = input("동물종류를입력하세요 (끝낼려면 빈칸을 입력하세요):")\
        .upper() .strip()
    if userinput == "":
        break
    elif not userinput.isalpha():    # 문자열의 모든 문자가 알파벳 또는 문자(한글 포함)가 아니면
        print("잘못입력했음! 다시!!")
        continue # while문 돌아가기
    else: 
        if len(userinput)> 0:   # 입력한값이 있는지 확인 
            animal.append(userinput)


    # 입력데이터 정렬하기
animal.sort()

print()
print()
print()

    # 입력한 결과 
print("입력하신 동물의 종류는",len(animal),"종류 이며, 다음과 같습니다.")
print(animal)

 

 

문제 1 . 

위 코드에서 animal list가 한줄씩 출력되도록 코드를 수정하기

for index in range(0,len(animal)):
    print(animal[index])

마지막 print(animal)에서 for 문을 사용하여 animal리스트의 리스트 갯수를 0~ 입력한리스트 갯수까지의 인덱스값을 출력하도록 수정하면 아래와 같은 결과가 된다

animal리스트를 만들어보자
한번에 하나씩 입력!
입력이 끝나면 빈칸을 입력!
동물종류를입력하세요 (끝낼려면 빈칸을 입력하세요):a
동물종류를입력하세요 (끝낼려면 빈칸을 입력하세요):s
동물종류를입력하세요 (끝낼려면 빈칸을 입력하세요):jh
동물종류를입력하세요 (끝낼려면 빈칸을 입력하세요): 



입력하신 동물의 종류는 3 종류 이며, 다음과 같습니다.
A
JH
S

 

문제 2.

리스트에 있는 동물을 다시 입력하지 못하게 만들기 !!

anmial 이라는 리스트에 추가입력리스트인 animal2라는 리스트를 추가생성했고

animal2에 추가한 동물 리스트를  animal에 합쳤다. 

참고로 입력했을때 원하는 입력값을 제외한 다른입력값이 입력되었을때는 다시 입력되게 하였으며

추가 입력여부에서 N가 나오면 종료되도록 수정하였음. 

혹시 이코드를 간략하게 수정해주실수 있다면 댓글 부탁드려요

#기출문제2 - 리스트에 있는 동물을 다시 입력하지 못하게 만들기 
    # 빈 animal 리스트 만들기


animal = []
    #입력변수초기화하기
userinput = ""
    #사용자에게 설명문 출력하기
print("animal리스트를 만들어보자")
print("한번에 하나씩 입력!")
print("입력이 끝나면 빈칸을 입력!")

    #빈문자열이 될 때까지 루프 
while True:
    userinput = input("동물종류를입력하세요 (끝낼려면 빈칸을 입력하세요):")\
        .upper() .strip()
    if userinput == "":
        break
    elif not userinput.isalpha():    # 문자열의 모든 문자가 알파벳 또는 문자(한글 포함)가 아니면
        print("잘못입력했음! 다시!!")
        continue # while문 돌아가기
    else: 
        if len(userinput)> 0:   # 입력한값이 있는지 확인 
            animal.append(userinput)


# 입력데이터 정렬하기
animal.sort()

# 입력한 결과 
print("입력하신 동물의 종류는",len(animal),"종류 이며, 다음과 같습니다.")
for index in range(0,len(animal)):
    print(animal[index])

print()
print()
    
# 기출문제2
# 추가입력여부확인
animal2 = [] #추가입력동물 리스트

while True: 
    yninput = input("동물종류를 추가로 입력하시겠습니까? (Y/N)").upper() .strip()

    if yninput == "N":
        print("종료하겠습니다.")
        break

    elif  yninput =="Y":
        while True:
            Puserinput = input("동물종류 추가 입력하세요(끝낼려면 빈칸을 입력하세요):").upper() .strip()
            if Puserinput == "":
                break
            elif not Puserinput.isalpha():    # 문자열의 모든 문자가 알파벳 또는 문자(한글 포함)가 아니면
                print("잘못입력했음! 다시!!")
                continue # while문 돌아가기
            elif Puserinput in animal:
                print("이미 입력된 동물종류 입니다. 다시 입력하쇼:")
                continue # while문 돌아가기
            else: 
                len(Puserinput)> 0   # 입력한값이 있는지 확인
                animal2.append(Puserinput)
        
        animal2.sort()
        print("추가입력한 동물은",len(animal2),"종류이며, 아래와 같으며")
        print(animal2)
        animal.extend(animal2)
        print()
        animal.sort()
        print("입력하신 동물은 총",len(animal),"종류, 아래와 같습니다.")
        print(animal)
        print()
        
    elif not yninput.isalpha():   
        continue
    elif yninput == "":
        print("잘못입력했음! 다시!!")
        continue

>> 결과값

사용자 입력값에 따라 아래와 같이 출력된다.

animal리스트를 만들어보자
한번에 하나씩 입력!
입력이 끝나면 빈칸을 입력!
동물종류를입력하세요 (끝낼려면 빈칸을 입력하세요):a
동물종류를입력하세요 (끝낼려면 빈칸을 입력하세요):s
동물종류를입력하세요 (끝낼려면 빈칸을 입력하세요):fg
동물종류를입력하세요 (끝낼려면 빈칸을 입력하세요):gggge
동물종류를입력하세요 (끝낼려면 빈칸을 입력하세요):
입력하신 동물의 종류는 4 종류 이며, 다음과 같습니다.
A
FG
GGGGE
S


동물종류를 추가로 입력하시겠습니까? (Y/N)y
동물종류 추가 입력하세요(끝낼려면 빈칸을 입력하세요):12
잘못입력했음! 다시!!
동물종류 추가 입력하세요(끝낼려면 빈칸을 입력하세요):a
이미 입력된 동물종류 입니다. 다시 입력하쇼:
동물종류 추가 입력하세요(끝낼려면 빈칸을 입력하세요):l
동물종류 추가 입력하세요(끝낼려면 빈칸을 입력하세요):s
이미 입력된 동물종류 입니다. 다시 입력하쇼:
동물종류 추가 입력하세요(끝낼려면 빈칸을 입력하세요):ww
동물종류 추가 입력하세요(끝낼려면 빈칸을 입력하세요):uyyy
동물종류 추가 입력하세요(끝낼려면 빈칸을 입력하세요):s
이미 입력된 동물종류 입니다. 다시 입력하쇼:
동물종류 추가 입력하세요(끝낼려면 빈칸을 입력하세요):
추가입력한 동물은 3 종류이며, 아래와 같으며
['L', 'UYYY', 'WW']

입력하신 동물은 총 7 종류, 아래와 같습니다.
['A', 'FG', 'GGGGE', 'L', 'S', 'UYYY', 'WW']

동물종류를 추가로 입력하시겠습니까? (Y/N) ' ' #(빈칸입력함)
동물종류를 추가로 입력하시겠습니까? (Y/N)12
동물종류를 추가로 입력하시겠습니까? (Y/N)1
동물종류를 추가로 입력하시겠습니까? (Y/N)q
동물종류를 추가로 입력하시겠습니까? (Y/N)n
종료하겠습니다.

 

728x90
반응형