AR삽질러

Python 반복문(Iteratior) - 고급연습문제 본문

Python

Python 반복문(Iteratior) - 고급연습문제

아랑팡팡 2023. 9. 30. 15:20
728x90

 

 

Python 반복문(Iteration) - 연습문제

 

0. ToDoList

# To-Do List
# 1. 사용자로부터 할 일을 입력받아 리스트에 추가한다.
# To-Do List는 할일 목록, 등록, 삭제 가 있어야한다.

todos = []

while True:
    print("\n-----오늘 할일 목록-----")
    for index, task in enumerate(todos):
        print(f"{index + 1}. {task}")
    print("1 : 할일 추가")
    print("2 : 할일 목록")
    print("3 : 할일 삭제")
    print("4 : 나가기")

    choice = input("선택하기 : ")

    if choice == "1":
        task = input("할일을 입력해주세요 : ")
        todos.append(task)
    elif choice == "2":
        if todos:
            print("\n-----할일목록----")
            for index, task in enumerate(todos, start=1):
                print(f"{index}. {task}")
        else:
            print("\n할일이 등록되어 있지 않습니다..")
    elif choice == "3":
        if todos:
            print("----할일목록----")
            for index, task in enumerate(todos, start=1):
                print(f"{index}. {task}")
            
            taskNumber = int(input("삭제할일의 번호를 입력해주세요 : "))
            if 0 < taskNumber <= len(todos):
                removeTask = todos.pop(taskNumber - 1)
                print(f"할일 : ", removeTask, "가 삭제되었습니다.")
            else:
                print("유효하지 않은 번호입니다.")
        else:
            print("할일이 없습니다..")

    elif choice == "4":
        print("\n안녕히 가십시오..")
        break
    else:
        print("\n잘못입력하셨습니다..")
enumerate()  enumerate함수는 iterable의 각 요소와 그 요소의 인덱스를 튜플로 반환한다.
enumerate(todos, start=1)   todos, start=1 옵션은 인덱스의 시작 값을 1로 설정하고 사용자에게 1부터 제공한다.
if < 0 taskNumber <= len(todos) taskNumber가 유효한 범위인지 확인하는 조건으로 
taskNumber변수는 0 보다 커야하고 리스트의 길이보다 작거나 같아야한다.
removeTask = todos.pop(taskNumber - 1) 사용자에게 입력받은 번호를 todos 리스트에서 삭제하고 삭제된 할일을 removeTask에 할당한다.
pop 메서드는 리스트에서 주어진 인덱스의 요소를 삭제하고 그 요소를 반환한다.
taskNumber - 1 는 사용자가 1부터 번호를 선택하기 때문에 1을 빼준다.

 

 

 

1. 숫자맞추기게임(고급)

# while문 문제
# 업다운 숫자 맞추기
# 1 ~ 100까지 랜덤한 숫자를 생성한다.
# 사용자는 컴퓨터의 랜덤한 숫자를 맞춰야한다.
# 사용자가 틀렸을 경우 : 숫자가 낮은지 큰지 알려준다.
# 정답일 경우 틀린횟수를 알려준다.

# 몇번만에 맞췄는지 확인
# 난이도 추가 1) EASY 2) NORMAL 3) HARD
# 계속하시겠습니까?

import random

# 게임 종료 여부
while True:

    # 난이도 선택
    while True:
        print("="*30)
        print("1. EASY(1~9)")
        print("2. NORM(1~100)")
        print("3. HARD(1~500)")
        print("="*30)
        level = int(input("난이도를 선택해주세요 : "))

        if level == 1:
            comNumber = random.randint(1,9)
        elif level == 2:
            comNumber = random.randint(1,100)
        elif level == 3:
            comNumber = random.randint(1,500)
        else:
            print("잘못입력하셨습니다.. 난이도는 1 ~ 3까지만 입력해주세요!!")
            continue
        break

    count = 0

    # 게임하기
    while True:
        human = int(input("입력 : "))
        count += 1

        if human < comNumber:
            print("UP!!!")
        elif human > comNumber:
            print("DOUN!!")
        else:
            print("정답입니다!!🙌🙌", count, "번만에 맞추셨습니다~!");
            break

    while True:
        again = input("계속하시겠습니까? y or n : ")
        if again == "n":
            print("업다운 게임을 종료합니다..")
            break
        elif again == "y":
            break
        else:
            print("잘못입력하셨습니다. y or n")
        
    if again == "n":
        break

 

 

 

 

728x90
반응형
LIST

'Python' 카테고리의 다른 글

Python 함수(Function)  (0) 2023.10.08
Python List 로또번호생성기  (0) 2023.10.08
Python 반복문(Iterator) 쉬운연습문제  (2) 2023.09.28
Python 반복문(Iteration)  (0) 2023.09.28
Python 연산자(Operator) - 연습문제  (0) 2023.09.28