파이썬 미니 프로젝트(1)
랜덤 가위, 바위, 보 프로그램
import random #random 라이브러리 호출
def asc_code(select):
# Rock Paper Scissors ASCII Art
if select == "바위" :
print("""
_______
---' ____)
(_____)
(_____)
(____)
---.__(___)
""")
return "바위"
if select == "보" :
print("""
_______
---' ____)____
______)
_______)
_______)
---.__________)
""")
return "보"
if select == "가위" :
print("""
_______
---' ____)____
______)
__________)
(____)
---.__(___)
""")
return "가위"
def get_choices():
player_choice = input("당신의 선택은 (가위, 바위, 보): ")
options = ["가위", "바위", "보"]
computer_choice = random.choice(options) #random 라이브러리로 options을 무작위 선택
choices = {"player" : player_choice, "computer": computer_choice} #선태 결과를 딕셔너리 자료형으로 입력
return choices #딕셔너리 결과를 반환
def check_win(player, computer): #선택된 인수값을 비교하여 결과에 알맞은 문자열 출력
print(choices)
if player == computer:
return "비겼습니다."
elif player == "바위":
if computer == "가위":
return "당신이 이겼습니다."
else:
return "당신이 졌습니다."
elif player == "가위":
if computer == "보":
return "당신이 이겼습니다."
else:
return "당신이 졌습니다."
elif player == "보":
if computer == "바위":
return "당신이 이겼습니다."
else:
return "당신이 졌습니다."
choices = get_choices() #사용자와 컴퓨터의 가위, 바위, 보를 선택하는 함수 호출
print("당신 : " + choices["player"])
player_draw = asc_code(choices["player"])
print(player_draw)
print("컴퓨터: " + choices["computer"])
computer_draw = asc_code(choices["computer"])
print(computer_draw)
result = check_win(choices["player"], choices["computer"]) # chocies 딕셔너리에 입력된 값을 check_win()함수의 인수로 입력
print(result) #출력 결과물을 print()으로 출력
당신 : 바위
_______
---' ____)
(_____)
(_____)
(____)
---.__(___)
바위
컴퓨터: 바위
_______
---' ____)
(_____)
(_____)
(____)
---.__(___)
바위
{'player': '바위', 'computer': '바위'}
비겼습니다.
생일을 이용해 인생 시계 및 그래프 만들기
생일 입력 받고 마침표를 기준으로 문자열 분리하기
yy, mm, dd = input("당신의 생년, 월, 일을 입력해 주세요 ((예) 80.1.30) : ").split('.')
print(yy, mm, dd)
78 2 1
생일을 이용해 인생 시계 및 그래프 만들기
#오늘 날짜 불러오기
from datetime import datetime #현재 날짜 라이브러리
today_year = datetime.today().year
today_month = datetime.today().month
today_day = datetime.today().day
#자신의 생일 및 목표 나이 입력 받기
user_year, user_month, user_day = input("당신의 생년, 월, 일을 입력해 주세요 ((예) 1980.1.30) : ").split('.')
user_year, user_month, user_day = int(user_year), int(user_month), int(user_day)
goal_age = int(input("당신의 목표 나이를 입력해주세요.(예) 80 : "))
#현재 날짜와 오늘 날짜 차이 계산하기
today_month_count = today_year * 12 + today_month #오늘 날짜를 개월 수로 표현
user_month_count = user_year * 12 + user_month #유저 생일을 개월 수로 표현
today_week_count = today_year * 52 + today_month * 4 #오늘 날짜를 주 수로 표현
user_week_count = user_year * 52 + user_month * 4 #유저 생일을 주 수로 표현
#살아온 월 계산
month_count = today_month_count - user_month_count #현재 날짜에서 유저 생일의 개월 수 차이 계산
remain1 = goal_age * 12 - month_count #목표 나이 기준으로 남은 개월 계산
#살아온 주 계산
week_count = today_week_count - user_week_count #현재 날짜에서 유저 생일의 주 차이 계산
remain2 = goal_age * 52 - week_count #목표 나이 기준으로 남은 주 계산
#결과 출력
print(f"당신의 생년월일은 {user_year}.{user_month}.{user_day} 입니다.")
print(f"오늘 날짜는 {today_year}.{today_month}.{today_day}입니다.")
print(f"당신의 현재까지 {month_count}개월을 살아오셨군요 또한 {week_count}주를 살아오셨어요.")
print(f"앞으로 {goal_age}년을 기준으로 {remain1}개월이 남았습니다. 또한 {remain2}주가 남았구요")
print("앞으로도 멋진 인생을 살아봐요!!")
print()
print(f"🔴 당신의 {goal_age}년 인생 그래프(백분율) 🔵")
print("🔴 : 살아 온 시간")
print("🔵 : 살아 갈 시간")
print()
#살아온 시간 백분율 환산
a, b = divmod(int(round((month_count / (goal_age * 12)) * 100, 0)), 10) #divmod 나눗셈의 몫과 나머지 구하기,
#a는 100분율로 환산환 십의 자리 값을 몫으로 받고, b는 100분율로 환산한 나머지 값을 받음
#인생 그래프 출력(살아온 시간)
# j = 1
# l = 1
# # 살아 갈 시간 십의 자리 출력
# while j <= 10-a:
# k = 1
# while k <= 10:
# print("🔵", end=" ")
# k += 1
# print()
# j += 1
# # 살아 갈 시간 일의 자리 출력
# while l <= 10-b:
# print("🔵", end=" ") #⭕️
# l += 1
# # 살아 온 시간 일의 자리 이어서 출력
# j = 1
# l = 1
# while l <= b:
# print("🔴", end=" ")
# l += 1
# print()
# # 살아 온 시간 십의 자리 출력
# while j <= a:
# k = 1
# while k <= 10:
# print("🔴", end=" ")
# k += 1
# print()
# j += 1
for i in range(0, 10-a): # 살아 갈 시간 십의 자리 출력
print("🔵 "*10, end="")
print()
print("🔵 "*(10-b)+"🔴 " * b, end="") #⭕️, # 살아 갈 시간 일의 자리 출력
print()
for i in range(0, a-1): # 살아 온 시간 십의 자리 출력
print("🔴 "*10, end="")
print()
당신의 생년월일은 2000.1.1 입니다.
오늘 날짜는 2022.12.4입니다.
당신의 현재까지 275개월을 살아오셨군요 또한 1188주를 살아오셨어요.
앞으로 80년을 기준으로 685개월이 남았습니다. 또한 2972주가 남았구요
앞으로도 멋진 인생을 살아봐요!!
🔴 당신의 80년 인생 그래프(백분율) 🔵
🔴 : 살아 온 시간
🔵 : 살아 갈 시간
🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵
🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵
🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵
🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵
🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵
🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵
🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵
🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵 🔵
🔵 🔴 🔴 🔴 🔴 🔴 🔴 🔴 🔴 🔴
🔴 🔴 🔴 🔴 🔴 🔴 🔴 🔴 🔴 🔴
BMI 건강지킴이
#키와 무게를 입력받음
weight = input("당신의 몸무게를 kg단위로 입력해주세요. 예시 - 60 : ")
height = input("당신의 키를 m단위로 입력해 주세요. 예시 - 1.80 : ")
bmi = round(int(weight) / float(height)**2, 2) #round를 이용하여 소수 둘째자리 구함.
print(f"당신의 체질량지수는 {bmi} kg/m2입니다.")
if bmi < 18.5 :
print("당신은 저체중입니다. 체중을 늘려보세요.")
elif bmi < 25:
print("당신은 정상체중입니다. 건강을 계속 유지해 보세요.")
elif bmi < 30 :
print("당신은 과체중입니다. 식사를 조절해 보세요.")
elif bmi < 35 :
print("당신은 비만입니다. 식사 조절과 적절한 운동을 해주세요.")
else :
print("당신은 고도비만입니다. 반드시 식사 조절과 운동을 꼭 실천하셔야 합니다.")
당신의 체질량지수는 0.04 kg/m2입니다.
당신은 저체중입니다. 체중을 늘려보세요.