[최초 작성 : 24.11.05]
[추가 수정 : 24.11.06]
1. 책 소개
- 파이썬 입문자용
- 핵심 개념으로 적용할 수 있는 미니 프로젝트 포함
2. 배운 내용
- 주요 키워드
- 자주 실수하는 부분
3. 미니 프로젝트
- 알고리즘 도식화(순서도, 의사코드) → 필요한 변수의 개수 정하기 → #작성자#작성일#한줄설명 → 코드 작성
- 1. 크레이지 토크 (Mad Libs)
더보기
# WJL
# 24.11.05
# 단어를 사용해서 장난 문장을 만드는 프로그램
import random
# 프로그램의 기능을 출력합니다.
def instructions():
print("오늘의 헬스에 오신 것을 환영합니다. \
\n여러분의 이야기를 쓰는 것을 돕는 게임입니다. \
\n저는 당신에게 명사나 동사와 같은 단어들을 물어볼 것입니다.")
print("만들어지는 문장은 한국어입니다. \
\n오늘 운동할 부위를 단어로 알려주세요!! \n")
# 변수 선언 및 초기화
noun1 = ""
startSent = ["원준이의", "도훈이의", "성우의", "호윤이의"]
firstSent = ["잘 훈련된", "광이 나는", "울끈불끈", "괴력의", "근 손실의", "지방이 낀"]
secondSent = ["은/는"]
thirdSent = ["오늘도", "아쉽지만", "미약하나마", "언제나", "항상", "가끔씩", "40살까지", "50살까지"]
forthSent = ["빛을 발한다", "열일한다", "강해진다", "근골격량의 증가가 일어난다", "아쉽다옹"]
fifthSent = ["!", "?", "!!"]
print("게임을 시작하시겠습니까?")
play = input("'y' 또는 'n'을 입력하세요.: ")
while (play == "y") :
instructions()
noun1 = input("오늘 운동할 부위를 입력하세요: ")
print(startSent[random.randint(0, len(startSent)-1)], firstSent[random.randint(0, len(firstSent)-1)], noun1, secondSent[0],
thirdSent[random.randint(0, len(thirdSent)-1)], forthSent[random.randint(0, len(forthSent)-1)], fifthSent[random.randint(0, len(fifthSent)-1)])
print("게임을 다시 하시겠습니까?")
play = input("'y' 또는 'n'을 입력하세요. :")
print("오늘도 알찬 헬스 되세요!")
- 2. 가위바위보 ▶ f-string, 대소문자 구분X, 잘못된 입력 처리, 메인 게임 로직을 함수화, 관용구
더보기
#WJL
#24.11.06
#가위바위보 게임 : 플레이어 vs 컴퓨터
import random
def convert(computer_choice):
if computer_choice == 1:
return 'r'
elif computer_choice == 2:
return 'p'
else:
return 's'
def score(user_wins, computer_wins):
print("\nScore: 플레이어 - ", user_wins, "컴퓨터 - ", computer_wins)
if computer_wins == user_wins and computer_wins > 0:
print("\n동점입니다! 한 번 더 해서 컴퓨터를 이겨 주세요!")
elif computer_wins > user_wins:
print("\n컴퓨터가 이기고 있어요. 컴퓨터를 이길 때까지 도전!")
elif computer_wins < user_wins:
print("\n당신이 이기고 있어요! 더 큰 점수차로 이겨 볼까요!")
def play_game():
computer_wins = 0
user_wins = 0
print("가위바위보 게임에 오신 것을 환영합니다!")
print("컴퓨터와 게임을 하려면 다음 규칙을 따라야 합니다.:")
print("\n 's'을 입력하면 가위\n 'r'를 입력하면 바위\n 'p'를 입력하면 보\n")
print("게임 종료를 원하시면 'e'를 선택해주세요: ")
while True:
# 1. 사용자 입력 받기
user = input().lower() # 사용자 입력을 소문자로 변환
# 2. 종료 조건 검사
if user == "e":
print("게임이 종료되었습니다. 나중에 다시 게임해 주세요!")
break
# 3. 입력 유효성 검사
if user not in ['r', 'p', 's']:
print("\n잘못된 입력입니다. 'r', 'p', 's', 'e' 중 하나로 선택해 주세요.")
continue
# 4. 컴퓨터의 선택
computer = convert(random.randint(1, 3))
print(f"\n컴퓨터의 선택: {'가위' if computer == 's' else '바위' if computer == 'r' else '보'}")
print(f"당신의 선택: {'가위' if user == 's' else '바위' if user == 'r' else '보'}")
# 5. 승자 결정 (게임 로직)
if computer == user:
print("\n동점입니다!")
elif (computer == "r" and user == "s") or \
(computer == "p" and user == "r") or \
(computer == "s" and user == "p"):
computer_wins += 1
print(f"\n컴퓨터가 이겼습니다!")
else:
user_wins += 1
print(f"\n당신이 이겼습니다!")
# 6. 점수 출력
score(user_wins, computer_wins)
print("\n--------------------------------------------\n\n다음 라운드를 시작합니다.")
print("\n 's'를 입력하면 가위\n 'r'을 입력하면 바위\n 'p'를 입력하면 보")
print("\n게임 종료를 원하시면 'e'를 선택해 주세요: ")
# 직접 실행할 때만 게임 시작 (코드의 모듈화)
if __name__ == "__main__":
play_game()