728x90
반응형
Dict를 활용한 응용예시
# #2 영화 예매 프로그램 (dict)활용
# #영화 종류를 나타내는 정수 1~3과 나이 입력, 영화와 가격은 다음과 같이 설정. 총 계산 출력
# #1: 액션영화 10,000원
# #2: 로맨틱 코미디 8,000원
# #3: 공포영화 9,000원
# #팝콘종류
# #1: 치즈팝콘 6,500원
# #2: 캬라멜 팝콘 5,000원
# #3: 일반 팝콘 5,000원

#[class]
cgv={
    'movie':{
        'movieList': ['1.액션영화','2.로맨틱코미디','3.공포영화'],
        'moviePrice':[10000,8000,9000]
    },
    'popcorn':{
        'popcornList': ['1.치즈팝콘','2.캬라멜팝콘','3.일반팝콘'],
        'popcornPrice':[6000,5000,5000]
    }
}

movie_choice=int(input(f"영화를 고르세요 [{cgv['movie']['movieList']}: "))-1
popcorn_choice=int(input(f"팝콘을 고르세요 [{cgv['popcorn']['popcornList']}: "))-1

print(f"고르신 영화는 {cgv['movie']['movieList'][movie_choice]}, 선택한 팝콘은 {cgv['popcorn']['popcornList'][popcorn_choice]}이며, "
      f"총 금액은 {cgv['movie']['moviePrice'][movie_choice]+cgv['popcorn']['popcornPrice'][popcorn_choice]}원 입니다")

 

Dict의 주요 기능
1. get (key, default=None)
 - 특정 키에 해당하는 값을 반환
 - 키가 사전에 없는 경우, default 값이 반환됨 (기본값은 None)
2. Keys()
 - 사전의 모든 키를 포함하는 뷰를 반환
3. values()
 - 사전의 모든 값을 포함하는 뷰를 반환
4. items()
 - 사전의 모든 키-값 쌍을 튜플로 포함하는 뷰를 반환
megastudy = {
    'python': [1,2,3],
    'java':[1,3,5],
    'c':[2,4,6]
}

#python의 날짜를 가져오는 방법
#1. megastudy['python']       <-연산자
#2. megastudy.get('python')   <-기능
#3. megastudy.get('javascript','수업 없음')  <- 없으면 '수업 없음' 으로 대체


print(megastudy.keys())    #dict_keys(['python', 'java', 'c'])
print(list(megastudy.keys()))    #['python', 'java', 'c']
print(list(megastudy.values()))  #[[1, 2, 3], [1, 3, 5], [2, 4, 6]]
print(list(megastudy.items()))   #[('python', [1, 2, 3]), ('java', [1, 3, 5]), ('c', [2, 4, 6])]

 

 

세트 (Set) : 중복을 허용하지 않는 순서가 없는 요소들의 컬렉션,
세트는 수학에서의 집합과 유사하며, 주로 데이터의 중복을 제거하거나 여러 세트 간의 관계 (교집합, 합집합 등)을 다룰 때 유용함 

 

세트의 기본 
 - 세트 생성: setA = {1,2,3,'hello'}
 - 빈세트 생성: emptysetA = set()    *{}는 빈 딕셔너리를 만듬
 - 리스트나 튜플 등에서 세트 생성: setA = set([1,2,3,3])   #결과: {1,2,3}

(set 예시)

#set (집합) 중복 안됨
a = {1,2,3,1,2,3,1,2,3}
print(a)    #{1,2,3}
b = set([1,2,3,1,2,3,4])   #set화 시키기
print(b)    #{1,2,3,4}

 

세트의 주요 메소드
1. 추가와 업데이트
  - add: 세트에 요소 추가
  - update: 다른 세트의 요소를 현재 세트에 추가
2. 제거
  - discard: 지정된 값을 가진 요소 제거
  - clear: 세트의 모든 요소를 제거
b = set([1,2,3,1,2,3,4])
b.add(1)
b.add(5)
b.discard(3)
print(b) #{1, 2, 4, 5}
b.clear()
print(b)  #set()
a = {5,6,7}
3. 세트의 기능 
- union (합집합)
예) my_set.union({7,8})
- intersection (교집합)
예) my_set.intersection({1,2,9})
- difference (차집합)
예) my_set.difference({1,2})
- symmetric_difference (대칭 차집합) (교집합을 뺀 애들)
예) my_set.symmetric_difference({1,2,7})

(if 예시)

num=int(input("정수 입력:"))
if num > 0 :
    print('양의 정수 입니다.')
elif num == 0:
    print('0입니다')
else:
    print('0 또는 음의 정수 입니다.')

(다중 elif 예시 1)

#유저에게 영어점수 입력 받고,
#100~90 A 입니다
#90~80 B 입니다
#80~70 C 입니다
#70 미만이면 재수강입니다

grade=int(input("영어점수는: "))
if grade > 90 :
    print ('A 입니다')
elif grade > 80 :
    print ('B 입니다')
elif grade > 70:
    print ('C 입니다')
else:
    print (' 재수강 입니다')

 

(파이썬 다중 if 예시 2)

#유저에게 비밀번호 설정 입력받고,
# 8글자보다 작으면 비밀번호가 8글자 이하입니다!
#만약에 비밀번호에 !없으면 특수문자가 없습니다.
# 다 통과 되면 비밀번호 완료!

pw=input("비밀번호 입력:")
print(pw.find("!"))

if len(pw) < 8:
    print ("비밀번호가 8글자 이하입니다!")
elif "!" not in pw:
    print ("특수문자가 없습니다")
else: print ('비밀번호 통과!')

 

(파이썬 다중 if 예시 3)

#유저에게 정수를 입력받고
#양의 홀수인지, 양의 짝수, 0, 음의 홀수, 음의 짝수 인지 알려주는 프로그램 만들기


if num > 0:
    if num % 2 != 0:
        print("양의 홀수")
    else:
        print("양의 짝수")
elif num == 0:
    print("0 입니다.")
else:
    if num % 2 != 0:
        print("음의 홀수")
    else:
        print("음의 짝수")
반응형

+ Recent posts