배운개념: if문 개념(4/17-18일)
if문
if문은 특정 조건을 판단하여 해당 조건에 맞는 상황을 수행하는데 쓰는 것
if문의 기본구조
if 조건문:
이걸 수행해라
저걸 수행해라
else:
이걸 수행해라_a
저걸 수행해라_b
if문장 조건이 참이면 그 블록들의 수행문장들을 수행하고, 그렇지 않으면 else블록의 문장들을 실행한다.
들여쓰기
if문을 만들 때는 if조건문: 바로 아래 문장부터 if문에 속하는 모든 문장에 들여쓰기를 해줘야 한다.
들여쓰기를 사용하지 않으면 오류가 발생한다. 그리고 들여쓰기는 언제나 같은 너비로 해야 한다.
사진 설명을 입력하세요.
아주 친절하게 설명해주시는 우리의 파이참씨.. 아주 든든 그 자체
이것이 바로 에디터를 사용하는 이유이다.
들여쓰기에 대한 논란이 많지만 난 tab이 좋다.
실생활에 쓰이는 if문 써보기
# 날씨에 따른 옷차림
degree = 27
if degree < 4:
print("날씨가 매우 추우니 패딩을 꼭 챙기세요.")
print("추천 옷차림: 패딩, 두꺼운코트, 목도리, 기모제품")
if 4 <= degree < 9:
print("밖이 추우니 겹겹이 껴입기 바랍니다.")
print("추천 옷차림: 코트, 가죽자켓, 히트텍, 니트, 레깅스")
if 9 <= degree < 12:
print("바람이 불 수 있으니 주의하세요.")
elif 12 <= degree < 17:
print("날씨가 조금 쌀쌀하므로 옷차림에 유의한다.")
print("추천옷차림: 자켓, 트렌치코트, 야상, 니트, 청바지")
elif 17 <= degree < 20:
print("일교차가 심할 것 같으므로 외투를 챙긴다.")
print("추천옷차림: 얇은 니트, 맨투맨, 가디건, 청바지")
elif 20 <= degree < 22:
print("날씨가 따뜻하므로 옷을 가볍게 입는다.")
print("추천 옷차림: 얇은 가디건, 긴팔, 청바지")
elif 22 <= degree < 27:
print("날씨가 조금 더우므로 옷을 얇게 입는다.")
print("추천 옷차림: 반필, 얇은 셔츠, 반바지")
elif degree >= 27:
print("날씨가 매우 더우므로 썬크림을 바르세요!")
print("추천 옷차림: 반팔, 반바지, 원피스, 민소매")
if문 연습해보기
교수님의 실생활에 대해 만들어보라고 하셨는데
나 - 개발원 = 0 인 삶을 살고 있기 때문에 개발원 탐방 코드를 if문으로 짜 봤다.
print("개발원을 탐방해보겠습니다.... 어디로 갈까요?")
choice = input("1. 공학1관, 2. 공학2관, 3. 생활관, 4. 매점, 5. 후생관: ")
if choice == '1':
print("공학 1관에 오신것을 환영합니다... 여기는 수많은 컴퓨터가 존재합니다.")
choice_1 = input("몇 층으로 갈까요?(1층, 2층)")
if choice_1 == '1층':
print("어두운 곳이었습니다... 당신이 관여할 곳이 아닙니다!")
else:
print("즐거운 컴퓨터 세상에 오신것을 환영합니다! 당신은 이제 AIOT과정에 함께할 것입니다.")
chocie_1_1 = input("저기 어떤 교수님이 보입니다.. 누구에게 말을 걸까요?(이동녘/조동현): ")
if chocie_1_1 =='조동현':
print("당신은 C언어의 늪에 빠져 헤어나오질 못합니다...탐방 종료!")
elif chocie_1_1 == '이동녘':
print("당신은 파이썬의 늪에 빠져 헤어나오질 못합니다...탐방 종료!")
elif choice == '2':
print("공학 2관에 오신것을 환영합니다... 여기는 수많은 기계들이 존재합니다. 몇 층으로 갈까요?")
choice_2 = input("1층, 2층, 3층: ")
print("제작자가 공학 2관을 몰라서 건너뜁니다... 당신은 잘못된 선택을 했습니다. 탐방 종료!")
elif choice == '3':
print("여기는 생활관입니다. 생활관은 2층부터 4층까지 있습니다. 몇 층으로 갈지 생각해 보세요.")
gender = input("그 전에 성별을 먼저 묻겠습니다... 당신의 성별은?(여/남): ")
floor = input("몇 층에 갈지 선택하세요: ")
if gender == "여" and floor in [3, 4]:
print("당신은... 무단침입죄로 잡혀갑니다!");print("탐방 종료!")
elif gender == "여" and floor == '1':
print("여자 기숙사에 오신것을 환영합니다.. 별볼일 없습니다.")
print("당신은 흥미를 가지지 못합니다. 탐방 종료!")
elif gender == "남" and floor in [3, 4]:
print("남자 기숙사에 오신것을 환영합니다.. 별볼일 없습니다.")
else:
print("당신은...무단침입죄로 잡혀갑니다.. 탐방 종료!")
if choice == '4':
print("매점에 오신것을 환영합니다.. 여기는 오바를 조금 보태 수많은 과자와 아이스크림.. 그리고 컵라면이 있습니다.")
print("당신은 무언갈 살지 고민합니다... 무언갈 사기로 결정햇습니다!")
snack = input("무엇을 사시겠습니까?(컵라면, 과자, 아이스크림, 핫식스): ")
if snack == '컵라면':
print("컵라면 물이 부족합니다. 당신은 생라면을 먹어야 합니다.. 탐방 종료!")
elif snack == '과자':
print("와삭와삭 과자를 씹던 중 당신은 한 무리에 마주칩니다....")
give_snack = input("한입만 주라고 합니다. 줄까요?(준다, 안준다): ")
if give_snack == '준다':
print("당신은 한입만의 늪에 빠졌습니다. 정신을 차려보니 손에 남은건 과자가루 뿐..탐방종료!")
else:
print("당신은 욕심쟁이 우후후")
elif snack == '아이스크림':
print("아이스크림이 너무 달아서 기절하고 말았습니다. 탐방 종료")
elif snack == '핫식스':
print("너무나도 열정적으로 밤샌 당신.. 핫식스를 먹고는 살아났습니다. 하지만..그뿐이었습니다.")
print("당신의 체력 종료! 그리고 탐방도 종료합니다.")
# if choice == 5:
또한 이런것도 만들어 봤다..
print("자연스럽게 깍지를 꼈을 때, 어떤 손의 엄지손가락이 밑에 있습니까?")
first = input("왼쪽, 오른쪽: ")
print("팔짱을 꼈을 때, 어느쪽 팔이 밑에 위치하는가?")
second = input("왼쪽, 오른쪽: ")
if first == '왼쪽' and second == '왼쪽':
print("당신은 #좌좌뇌형 -> 꼼꼼하고 착실한 타입입니다.")
elif first == '왼쪽' and second == '오른쪽':
print("당신은 #좌우뇌형 -> 자상한 형, 누나 타입입니다..")
elif first == '오른쪽' and second == '왼쪽':
print("당신은 #우좌뇌형 -> 감성적이나 승부욕에 강한 타입입니다..")
elif first == '오른쪽' and second == '오른쪽':
print("당신은 #우우뇌형 -> 낙천적이 마이페이스 타입입니다..")
if문 활용해 팀별 문제내고 풀기
풀어보던가 조
1. 지금은 일요일 아침이다. 밤까지 무엇을 먹을지 정하시오. *(메뉴는 알아서 정하고 현재상태에 따라 결식가능 (아침,점심,저녁,야식) ) *완성은 자율
# 풀어보던가 조
# 1번
print("지금은 일요일 아침입니다. 무엇을 먹을지 정하세요. ")
조식 = {
'조식1': ['백미밥', '얼갈이된장국', '오징어호박볶음', '깻잎순나물', '배추김치'],
'조식2': ['백미밥', '백미밥', '비엔나야채볶음', '엄지새송이볶음', '깎두기'],
'조식3': ['누룽지', '코코볼', '흰우유', '삶은계란', '섞박지'],
'조식4': ['백미밥', '수제비', '소불고기', '오이무침', '배추김치', ],
}
print(조식)
breakfast = input("조식 몇번을 먹을지 선택하세요. 안먹고 싶으면 pass를 누르세요.")
if breakfast == 'pass':
print("건너뜁니다.. 그래도 식사는 거르지마,,,")
else:
print(f"아침 맛나게 드세요: {조식[breakfast]}")
print("지금은 점심 시간입입니다. 무엇을 먹을지 정하세요. ")
중식 = {
'중식1': ['흑미밥', '황태국', '돼지갈비찜', '부추멸치무침', '배추김치'],
'중식2': ['나물비빔밥', '얼갈이된장국', '돈육메란장조림', '요그르트', '열무김치'],
'중식3': ['보리쌀밥', '꽃게알탕', '치킨까스/소스', '미나리무생채', '배추김치'],
'중식4': ['백미밥', '바지락미역국', '묵은지닭조림', '참치야채볶음', '섞박지', ],
}
print(중식)
lunch = input("중식 몇번을 먹을지 선택하세요. 안먹고 싶으면 pass를 누르세요.")
if lunch == 'pass':
print("건너뜁니다.. 그래도 식사는 거르지마,,,")
else:
print(f"점심 맛나게 드세요: {중식[lunch]}")
print("지금은 저녁 시간입입니다. 무엇을 먹을지 정하세요. ")
석식 = {
'석식1': ['백미밥', '부대찌개', '새우가스/칠리소스', '브로콜리토마토샐러드', '배추김치'],
'석식2': ['백미밥', '건새우미역국', '찜닭', '쑥갓두부버무리', '배추김치'],
'석식3': ['백미밥', '순두부백탕', '순대야채볶음', '숙주나물무침', '깎두기'],
'석식4': ['백미밥', '열무된장국', '돈육고추장불고기', '콩나물무침', '배추김치', ],
}
print(석식)
dinner = input("석식 몇번을 먹을지 선택하세요. 안먹고 싶으면 pass를 누르세요.")
if dinner == 'pass':
print("건너뜁니다.. 그래도 식사는 거르지마,,,")
else:
print(f"저녁 맛나게 드세요: {석식[dinner]}")
special = ['컵라면', '짜장면', '치킨', '돈까스', '쌀국수', '피자', '과자']
print(special)
dinner_special = int(input("지금은 야식 시간입니다... 무엇을 먹을지 선택하세요. 숫자로 선택해 주세요."))
print(f"먹고싶은 야식 메뉴 {special[dinner_special-1]} 나왔습니다. 맛나게 드세요!!^^")
너무 대충 만들어서 오늘 오후에 다시 만들 예정....
2. 오늘 할 일을 체크 리스로 출력 할일을 했으면 v 하지 않았으면 ㅁ로 출력 잘못된 번호를 입력시 3번의 다시입력 기회 이후 잘못된 번호 입력시 프로그램 강제 종료 (리스트를 활용해서 할수있으면 해보도록하자)
#2번
print("오늘 할 일")
print("1. 개발일지 ㅁ ");print("2. 파이썬 공부 ㅁ ");print("3. 물 많이 마시기 ㅁ")
Q_1 = input("Q1. 개발일지를 작성하셨습니까?(yes/no): ")
if Q_1 == 'yes':
Q_1 = 'v'
else:
Q_1 = 'ㅁ'
Q_2 = input("Q1. 파이썬 공부를 다 하셨습니까?(yes/no): ")
if Q_2 == 'yes':
Q_2 = 'v'
else:
Q_2 = 'ㅁ'
Q_3 = input("Q1. 물을 1.5리터 이상 마셨습니까?(yes/no): ")
if Q_3 == 'yes':
Q_3 = 'v'
else:
Q_3 = 'ㅁ'
print("오늘 할 일")
print(f"1. 개발일지 {Q_1}");print(f"2. 파이썬 공부 {Q_2}");print(f"3. 물 많이 마시기 {Q_3}")
3. 당신은 식품 역학 조사관입니다. 지난주 토요일에 있던 파티 이후 식중독 환자가 많이 나왔습니다. 다음 자료는 감염 여부와 각각의 사람이 먹은 음식의 리스트입니다. 자료를 분석해서, 식중독의 원인을 찾으세요. (조합, if 함수 사용해서)
#3번
person1 = {'is_sick': True,
'eaten_food': ['chicken', 'olive', 'egg scrambles', 'cheese']}
person2 = {'is_sick': False,
'eaten_food': ['meatball', 'salmon sandwich', 'potato', 'tuna salad']}
person3 = {'is_sick': False,
'eaten_food': ['ham', 'brocolli', 'kimchi', 'bread', 'chicken']}
person4 = {'is_sick': False,
'eaten_food': ['pizza', 'brocolli', 'kimchi', 'bread', 'shrimp pasta']}
person5 = {'is_sick': True,
'eaten_food': ['corn salad', 'yogurt', 'almond milk', 'sunny side egg']}
person6 = {'is_sick': True,
'eaten_food': ['egg_mayo sandwich', 'yogurt', 'kimchi']}
person7 = {'is_sick': False,
'eaten_food': ['avocado noodle', 'baked beans', 'cake', 'almond milk']}
person8 = {'is_sick': False,
'eaten_food': ['beer', 'buritto', 'fried fish', 'cheese']}
person9 = {'is_sick': False,
'eaten_food': ['hot dogs', 'jelly sandwich', 'orange juice']}
person10 = {'is_sick': False,
'eaten_food': ['chocolate cake', 'cheese pizza', 'coffee', 'Milkshake']}
person11 = {'is_sick': False,
'eaten_food': ['Ostrich', 'yogurt', 'curry', 'kiwi salad']}
person12 = {'is_sick': True,
'eaten_food': ['Milkshake', 'shrimp pasta', 'eggroll']}
person13 = {'is_sick': False,
'eaten_food': ['meatball', 'fried fish', 'coke', 'corn salad']}
person14 = {'is_sick': False,
'eaten_food': ['avocado noodle', 'coffee', 'olive']}
food =[]
if person1['is_sick']:
print(person1['eaten_food'])
food.extend(person1['eaten_food'])
if person2['is_sick']:
print(person2['eaten_food'])
food.extend(person2['eaten_food'])
if person3['is_sick']:
print(person3['eaten_food'])
food.extend(person3['eaten_food'])
if person4['is_sick']:
print(person4['eaten_food'])
food.extend(person4['eaten_food'])
if person5['is_sick']:
print(person5['eaten_food'])
food.extend(person5['eaten_food'])
if person6['is_sick']:
print(person6['eaten_food'])
food.extend(person6['eaten_food'])
if person7['is_sick']:
print(person7['eaten_food'])
food.extend(person7['eaten_food'])
if person8['is_sick']:
print(person8['eaten_food'])
food.extend(person8['eaten_food'])
if person9['is_sick']:
print(person9['eaten_food'])
food.extend(person9['eaten_food'])
if person10['is_sick']:
print(person10['eaten_food'])
food.extend(person10['eaten_food'])
if person11['is_sick']:
print(person11['eaten_food'])
food.extend(person11['eaten_food'])
if person12['is_sick']:
print(person12['eaten_food'])
food.extend(person12['eaten_food'])
if person13['is_sick']:
print(person13['eaten_food'])
food.extend(person13['eaten_food'])
if person14['is_sick']:
print(person14['eaten_food'])
food.extend(person14['eaten_food'])
food.sort()
print(f"환자들이 먹은 음식: {food}")
print(f"요거트 수: {food.count('yogurt')}")
egg_count = []
#for i in food:
# if 'egg' in i:
# egg_count.append(i) --> 이부분은 추가하면 좋을텐데,,
print(f"계란이 들어간 음식들: {' ,'.join(egg_count)}")
print("유제품을 먹은 환자들이 아픈 걸 봐서 계란과 발효제품의 음식을 줄이는게 좋지 않을까...")
(팀명: 동녘짱과 아이들)
문제1 사용자가 입력한 월(정수형)이 28일까지 있는지, 30일까지 있는지, 31일까지 있는지 조건문으로 확인하라
1. 입력한 값이 2월이면 28일까지 있음을 전하는 메시지 출력
2. 입력한 값이 4, 6, 9, 11월이면 30일까지 있음을 전하는 메시지 출력
3. 입력한 값이 1, 3, 5, 7, 8, 10, 12월이면 31일까지 있음을 전하는 메시지 출력
문제 2 (팀명: 동녘짱과 아이들)
1. 당신의 국어/영어/수학/과학 점수를 입력하고
2. 국어/영어/수학/과학의 평균 점수를 구한 후
3. 그 평균 점수로 A+부터 F까지 당신이 임의로 구간을 정해서
4. 학점을 출력하라
문제 3 (팀명: 동녘짱과 아이들)
menu = [ '고봉민김밥', '라면', '돈까스']
price = [ 3000, 4000, 9000 ]
1. 위의 리스트를 선언
2. 위의 리스트를 다시 하나의 딕셔너리로 합친 후, 이를 이용해서 아래의 내용을 구현하시오.
3. 사용자가 구매할 메뉴를 입력 받음
4. 사용자의 지불 금액을 입력 받음
5. 결제금액보다 사용자의 지불금액이 높으면 잔액 및 구매 메세지 출력
6. 결제금액보다 사용자의 지불금액이 낮으면 잔액 부족과 돈을 돌려주는 메시지 출력
# 1번
month = int(input("궁금한 달을 입력하세요: "))
if month in [4, 6, 9, 11]:
print(f"{month}월은 30일까지 있습니다.")
elif month in [1, 3, 5, 7, 8, 10, 12]:
print(f"{month}월은 31일까지 있습니다.")
else:
print(f"{month}월은 28일까지 있습니다.")
# 2번
kor = int(input("국어점수를 입력하세요: "))
eng = int(input("영어점수를 입력하세요: "))
math = int(input("수학점수를 입력하세요: "))
sci = int(input("과학점수를 입력하세요: "))
average = (kor + eng + math + sci) / 4
print(f"당신의 평균은 {average}점 입니다.")
if average >= 90:
print('A+')
elif average >= 85:
print('A')
elif average >= 75:
print('B+')
elif average >= 70:
print('B')
elif average >= 65:
print('C+')
elif average >= 60:
print('C')
else:
print('F')
# 3번
menu = [ '고봉민김밥', '라면', '돈까스']
price = [ 3000, 4000, 9000 ]
김밥천국 = dict(zip(menu, price))
print(김밥천국)
food = input("구매할 메뉴를 선택하세요: ")
money = int(input("돈을 입력하세요: "))
if money > 김밥천국[food] :
print(f"주문하신 {food}나왔습니다.")
print(f"잔액은 {money - 김밥천국[food]}원 입니다.")
elif money == 김밥천국[food]:
print(f"주문하신 {food} 나왔습니다.")
else:
print(f"잔액이 부족합니다! 반환금액: {money - 김밥천국[food]}")
팀 : 똘똘이
Q1.
2023년을 기준으로 월, 일을 입력 받아서 공휴일인 아닌지 알려준다. 공휴일이면 "공휴일 입니다." 라고 출력 공휴일이 아니면 "공휴일이 아닙니다. " 라고 출력한다. 좀 더 귀찮은걸 좋아하는 분은 무슨 날인지까지 출력 ex)어린이 날입니다.
# 1. 똘똘이 팀
year = {
'1': {'1': '양력설',
'21': '설연휴',
'22': '설연휴',
'23': '설연휴',
},
'3': {'1': '3/1절',
},
'5': {'5': '어린이날',
'27': '석가탄신일',
},
'6': {'8': '광복절',
},
'9': {'28': '추석 연휴',
'29': '추석 연휴',
'30': '추석 연휴',
},
'10': {'3': '개천절',
'9': '한글날',
},
'12': {'25': '성탄절',
},
}
month = input("월을 입력하세요: ")
date = input("날짜를 입력하세요: ")
if not year[month][date]:
print("공휴일이 아닙니다.")
else:
print(f"공휴일입니다. {month}월 {date}일은 {year[month][date]} 입니다.")
4월을 입력하면 오류가 뜨는 상황이 있어 코드를 수정하였다.
아래는 수정한 부분
if month not in year.keys() or (month in year.keys() and date not in year[month][date]):
print("공휴일이 아닙니다.")
else:
print(f"공휴일입니다. {month}월 {date}일은 {year[month][date]} 입니다.")
잘 출력된다.
2. 1부터 100까지 정수 중 하나를 입력받아
소수(prime number)인지 아닌지 판별해보기
소수면 입력한 값 x는 소수입니다 아니면 소수가 아닙니다 라고 출력하기
# 2번
num = int(input("숫자를 입력하세요: "))
if num in [2, 3, 5, 7]:
print(f"입력한 값 {num}는 소수입니다.")
elif num % 2 == 0:
print(f"입력한 값 {num}은 소수가 아닙니다.")
elif num % 3 == 0:
print(f"입력한 값 {num}은 소수가 아닙니다.")
elif num % 5 == 0:
print(f"입력한 값 {num}은 소수가 아닙니다.")
elif num % 7 == 0:
print(f"입력한 값 {num}은 소수가 아닙니다.")
else:
print(f"입력한 값 {num}은 소수 입니다.")
3. 일반승용차 기준
배기량 1000cc 이하 104원/cc
배기량 1600cc 이하 182원/cc
배기량 2000cc 이하 260원/cc
배기량 2500cc 이하 260원/cc
배기량 2500cc 초과 260원/cc
전기 자동차 13만원
차령이 만 3년이 되면 5%가 할인이 되고 매년 5%씩 추가할인이 돼서
만 12년이 되면 최고 50%까지 할인이 됩니다.
1월에 일시납을 하면 6.4%가 추가 할인됩니다.(1월에 결제한다고 생각)
일반승용차/전기자동차인지 구분하고 일반승용차일 경우
배기량과 차령(차의 연령)을 입력받고 일시납 여부를 묻고 자동차세를 계산해주세요!
원 단위 아래는 절삭합니다.
cc_ = 0
car = input("자동차 유형을 입력하세요(일반/전기): ")
if car == '전기':
print("자동차세: 13만원")
else:
cc = int(input("배기량을 입력하세요: "))
year = int(input("차의 연령을 입력하세요: "))
if cc <= 1000:
cc_ = cc * 104
elif cc <= 1600:
cc_ = cc * 182
elif cc <= 2000:
cc_ = cc * 260
elif cc <= 2500:
cc_ = cc * 260
else:
cc_ = cc * 260
if year >= 12:
year = 12
money = cc_ * (1 - year*0.05 + 0.064)
print(f"자동차세: {round(money)}원")
이 문제도 다시 풀 예정. 5프로씩 늘어난다는것에 대한 이해가 부족했던것 같다.
팀명 : 김주김
놀이기구 추천 당신은 놀이기구를 추천해주는 로봇을 만들어야 합니다. 입장객의 상태를 입력받아 주어진 조건을 만족하는 코드를 짜세요. 조건
롤러코스터는 속도가 가장 빠른 놀이기구 입니다. 키 130cm이하는 탑승할 수 없습니다.
공중그네는 높고 빠르지만 키와 나이 제한이 없습니다.
자이로드롭은 가장 높이 올라가는 놀이기구 입니다. 키 130cm이하 및 만6세 미만은 탑승할 수 없습니다.
귀신의 집은 어린 아이들 정서에 좋지 않습니다.
회전목마는 누구나 즐길 수 있습니다.
# 놀이기구 = {
# '롤러코스터': {
# '제한': {
# '키': '130',
# },
# '속도': '빠름'
# },
# '공중그네': {
# '속도': '빠름'
# },
# '자이로드롭': {
# '제한': {
# '키': '130',
# '나이': '6', },
# '높이': '가장 높음'
# },
# '귀신의 집': {
# '제한': {
# '나이': '12'
# },
# },
# '회전목마': {
# }
# }
play = ['롤러코스터', '공중그네', '자이로드롭', '귀신의집', '회전목마']
wants_ride = input(f"어떤 놀이기구를 타시겠습니까?\n{','.join(play)}\n입력하세요: ")
if wants_ride == '롤러코스터':
print("이 롤러코스터는 속도가 가장 빠른 놀이기구 입니다.")
print("키 130 이하는 탑승할 수 없습니다.")
height = int(input("키를 입력하세요.: "))
if height < 130:
print("죄송합니다. 다음에 다시 이용해 주세요!")
else:
print(f"{wants_ride}를 이용할 준비가 되었습니다. 탑승해주세요!")
elif wants_ride == '공중그네':
print(f"{wants_ride}를 이용할 준비가 되었습니다. 탑승해주세요!")
elif wants_ride == '자이로드롭':
print("자이로드롭은 가장 높이 올라가는 놀이기구 입니다.")
print("키 130cm이하 및 만6세 미만은 탑승할 수 없습니다.")
height = int(input("키를 입력하세요.: "))
age = int(input("만 나이를 입력하세요: "))
if height < 130 and age < 6:
print("죄송합니다. 다음에 다시 이용해 주세요!")
else:
print(f"{wants_ride}를 이용할 준비가 되었습니다. 탑승해주세요!")
elif wants_ride == '귀신의집':
print("귀신의집은 어린 아이들 정서에 좋지 않습니다.")
print("중학생 미만의 아이들은 권장하지 않습니다.")
age = int(input("만 나이를 입력하세요: "))
if age < 13:
print("다음에 만나는 것을 권장드립니다.")
else:
print(f"{wants_ride}를 이용할 준비가 되었습니다. 입장해주세요!")
elif wants_ride == '회전목마':
print(f"{wants_ride}를 이용할 준비가 되었습니다. 탑승해주세요!")
2. 간식 구매
입장권의 종류는 입장권(기구 탑승 불가), 일반 탑승권, 슈퍼패스권(3장)이 있습니다.
입장권의 종류에 따라 구매 가능한 간식의 수량이 다릅니다.
간식의 종류는 츄러스, 솜사탕, 와플, 구슬아이스크림가 있습니다.
슈퍼패스권 입장객은 간식 구매시 무료 에이드 한잔 혹은 총 구매액의 5%할인 중 선택 할 수 있습니다.
일반 탑승권 입장객은 한 번 구매시 최대 3개까지 가능합니다.
입장권만 가진 입장객은 한번에 한 메뉴만 구매 가능합니다.
각 간식의 가격은 임의로 설정하며 구매한 내역과 결제금액을 마지막에 출력합니다.
snack = {
'츄러스': 3000,
'솜사탕': 2000,
'와플': 4000,
'구슬아이스크림': 5000,
}
snack_ = []
sum_ = 0
ticket = ['입장권(기구탑승불가)', '일반탑승권', '슈퍼패스권']
print("티켓 종류:", ', '.join(ticket))
ticket_buy = int(input("어떤 티켓을 구매하시겠습니까? (숫자로 입력): "))
print("간식의 종류:", ','.join(snack))
if ticket_buy == 1:
snack_buy = input("어떤 간식을 구매하시겠습니까?: ")
snack_.append(snack_buy)
sum_ += snack[snack_buy]
elif ticket_buy == 2:
snack_buy = input("어떤 간식을 구매하시겠습니까?: ")
snack_.append(snack_buy)
sum_ += snack[snack_buy]
snack_buy = input("어떤 간식을 구매하시겠습니까?: ")
snack_.append(snack_buy)
sum_ += snack[snack_buy]
snack_buy = input("어떤 간식을 구매하시겠습니까?: ")
snack_.append(snack_buy)
sum_ += snack[snack_buy]
elif ticket_buy == 3:
special = input("무료 에이드 한잔 혹은 총 구매액의 5%할인 중 선택(에이드/할인): ")
if special == '에이드':
snack_buy = input("어떤 간식을 구매하시겠습니까?: ")
snack_.append(snack_buy)
snack_.append('에이드')
sum_ += snack[snack_buy]
else:
snack_buy = input("어떤 간식을 구매하시겠습니까?: ")
snack_.append(snack_buy)
sum_ += snack[snack_buy]
sum_ *= 0.95
print(f"구매하실 간식은 {','.join(snack_)}이며 결제 가격은 {float(sum_)}원 입니다.")
3. 편의점 뒷풀이
편의점에서 판매하고 있는 상품은 다음과 같습니다. 마른오징어, 초코우유, 삼각김밥, 감자칩, 버터쿠키, 감동란 처음처럼, 진로, 카스, 기네스, 서머스비
무조건 5개의 상품을 구매합니다.
구매 목록에 주류가 있는 경우, 성인 확인을 진행합니다.
미성년자인 경우 주류를 제외한 상품만 구매 가능합니다.
결제 결과를 출력하세요.
convenience = {
'snack': {'마른오징어': 1500,
'초코우유': 1200,
'삼각김밥': 1000,
'감자칩': 1800,
'버터쿠키': 3200,
'감동란': 2200},
'drinks': {'처음처럼': 1800,
'진로': 2000,
'카스': 1900,
'기네스': 3000,
'서머스비': 3200,
}
}
print(f"판매메뉴: {convenience}")
buy_things = []
sum_ = 0
buy = input("구매하실 상품을 입력하세요: ")
buy_things.append(buy)
buy = input("구매하실 상품을 입력하세요: ")
buy_things.append(buy)
buy = input("구매하실 상품을 입력하세요: ")
buy_things.append(buy)
buy = input("구매하실 상품을 입력하세요: ")
buy_things.append(buy)
buy = input("구매하실 상품을 입력하세요: ")
buy_things.append(buy)
if buy_things[0] in list(convenience['drinks'].keys()) or buy_things[1] in list(convenience['drinks'].keys()) or \
buy_things[2] in list(convenience['drinks'].keys()) or buy_things[3] in list(convenience['drinks'].keys()) or \
buy_things[4] in list(convenience['drinks'].keys()):
print("성인인증이 필요합니다. 19세 미만은 구입하실 수 없습니다.")
card = input("신분증을 제시해 주세요(yes/no): ")
if card == 'yes':
print(','.join(buy_things))
sum_ += convenience['snack'].get(buy_things[0], convenience['drinks'][buy_things][0])
sum_ += convenience['snack'].get(buy_things[1], convenience['drinks'][buy_things][1])
sum_ += convenience['snack'].get(buy_things[2], convenience['drinks'][buy_things][2])
sum_ += convenience['snack'].get(buy_things[3], convenience['drinks'][buy_things][3])
sum_ += convenience['snack'].get(buy_things[4], convenience['drinks'][buy_things][4])
print(f"구매하실 제품: {','.join(buy_things)}, 총 가격: {sum_}")
else:
new_buy_things = []
if buy_things[0] in list(convenience['snack'].keys()):
new_buy_things.append(buy_things[0])
sum_ += convenience['snack'][buy_things[0]]
if buy_things[1] in list(convenience['snack'].keys()):
new_buy_things.append(buy_things[1])
sum_ += convenience['snack'][buy_things[1]]
if buy_things[2] in list(convenience['snack'].keys()):
new_buy_things.append(buy_things[2])
sum_ += convenience['snack'][buy_things[2]]
if buy_things[3] in list(convenience['snack'].keys()):
new_buy_things.append(buy_things[3])
sum_ += convenience['snack'][buy_things[3]]
if buy_things[4] in list(convenience['snack'].keys()):
new_buy_things.append(buy_things[4])
sum_ += convenience['snack'][buy_things[4]]
print(f"구매하실 제품: {','.join(new_buy_things)} 총 가격: {sum_}원")
else:
sum_ += convenience['snack'].get(buy_things[0], 0)
sum_ += convenience['snack'].get(buy_things[1], 0)
sum_ += convenience['snack'].get(buy_things[2], 0)
sum_ += convenience['snack'].get(buy_things[3], 0)
sum_ += convenience['snack'].get(buy_things[4], 0)
print(f"구매하실 제품: {','.join(buy_things)} 총 가격: {sum_}원")
이것도 다시 풀어봐야 한다.
TypeError: unhashable type: 'list' 오류가 뜬다.
+++
해결완
주류가 섞여있는 부분에서 신분증 제시하면 가격 세는 부분을 다시 수정했다.
if card == 'yes':
sum_ += convenience['snack'].get(buy_things[0], 0) + convenience['drinks'].get(buy_things[0], 0)
sum_ += convenience['snack'].get(buy_things[1], 0) + convenience['drinks'].get(buy_things[1], 0)
sum_ += convenience['snack'].get(buy_things[2], 0) + convenience['drinks'].get(buy_things[2], 0)
sum_ += convenience['snack'].get(buy_things[3], 0) + convenience['drinks'].get(buy_things[3], 0)
sum_ += convenience['snack'].get(buy_things[4], 0) + convenience['drinks'].get(buy_things[4], 0)
print(f"구매하실 제품: {','.join(buy_things)}, 총 가격: {sum_}원")
요렇게
그러니 잘 출력된다.
'개발공부 > Python' 카테고리의 다른 글
[파이썬] 행맨 게임 만들기( while, random, if, isalpha(), random 활용) (0) | 2023.04.21 |
---|---|
[파이썬] UP & DOWN 게임 만들기(while, for, if, random, isdigit 사용) (0) | 2023.04.21 |
[파이썬] 가위바위보 게임 만들기(for, while, if, random활용) (0) | 2023.04.21 |
[파이썬] while문으로 구구단 찍기, 별찍기 (0) | 2023.04.21 |
파이썬으로 커피 자판기 만들기 (1) | 2023.04.16 |