관리 메뉴

bright jazz music

복합자료형과 반복문 파이썬 과제 본문

카테고리 없음

복합자료형과 반복문 파이썬 과제

bright jazz music 2022. 5. 13. 09:11
#(1)날짜 반환 함수
# 사용자로부터 연/월/일로 구성되는 특정 날짜를 입력받아
#반환하는 함수 get_date() 정의
#손쉬운 날짜 계산을 위해 개별 정수로 입력받아 유지
# 튜플로 묶어 반환

# 이 함수를 이용해 광복절 80주년을 계산


#함수 선언부
def get_date(year, month, day):
    eighty_th_anniv = year + 80
   
    return (eighty_th_anniv, month, day) #튜플 반환






#주프로그램부
print('우리나라가 해방된 것을 기념하는 날인 광복절은 언제인가')
year = int(input('연도?'))
month = int(input('월?'))
day = int(input('일?'))

eightyth = get_date(year, month, day)

print(f'{eightyth[0]}년 {eightyth[1]}월 {eightyth[2]}일은 광복 80주년이다.')

 

 

 

#최대값 구하기

#사용자로부터 입력받은 수 중 가장 큰 수를 찾아 반환하는 함수 find_max()정의
#입력된 다섯 개의 정수 중 가장 큰 값을 찾아 출력
#리스트 인덱싱과 반복문을 이용해 직접 구현




#함수선언부

def input_values(size):
    value_list = []
    for i in range(0, size, 1):
       value_list.append(int(input('정수 입력: ')))
        
        
    return value_list




def find_max(lst):
    
    max = lst[0]

    for e in lst:
        if e > max:
            max = e
    return max






#주프로그램부


list_size = int(input('리스트 크기 입력: '))

value_list = input_values(list_size)

max = find_max(value_list)

print(f'리스트는 {value_list}')
print(f'가장 큰 정수는 {max}입니다')

 

 

#세 학생의 점수를 리스트에 입력 받고,
#각 점수와 평균을 소수점 첫째 자리까지 출력

#리스트 scores에 세 학생의 점수를 입력받기
#avg = scores의 저장된 점수의 평균을 구하기
#scores의 각 학생 점수와 평균 avg을 출력하기

#input_scores()
#음수가 입력되기 전까지 반복입력 받아 리스트에 저장

#get_average()
# 전달된 리스트의 평균 반환

#show_scores()
# 전달된 리스트의 각 점수 출력



def input_scores(lst):
    i = 1
    while True:
        score = int(input(f'#{i}?: '))
        if score < 0:
            break;
        lst.append(score)
        i += 1
    print()

def get_average(lst):
    sum = 0
    for e in lst:
        sum += e

    avg = sum / len(lst)
    return avg


def show_scores(lst):
    print('개인 점수:', end =' ')
    for e in lst:
        print(e, end=' ')
    print()
        


#4번 문제 
def find_by_score(lst):
    score = int(input('찾고자 하는 점수는? '))
    count = 0

    for i in range(0, len(lst), 1):       
        if score == lst[i] : #1부터 시작하면 index range 벗어나는 오류 발생
            count += 1
            
            print(f'{score}점은 {i+1}번 학생의 점수입니다.')
            
    if count == 0:
        print(f'{score}점을 받은 학생은 없습니다.')
    


#주프로그램부

score_list = []


input_scores(score_list)

avg = get_average(score_list)


print('[점수출력]')
show_scores(score_list)

print('평균: ', avg)
print()


print('[검색]')
find_by_score(score_list)

 

 

#리스트를 이용한 쇼핑몰 장바구니
#사용자로부터 입력받은 상품명을 리스트에 추가
#buy() 함수 정의

#리스트에 들어 있는 상품명을 출력하라
#show() 함수 정의






#함수 선언부

def buy(lst):
    product = input('상품명? ')
    lst.append(product)
    print(f'장바구니에 {product}가(이) 담겼습니다.')
    print()


def show(lst):
    print('장바구니 보기: ', end = '')
    
    for i in range(0, len(lst), 1) :
        print(lst[i], end='')

        if i != len(lst)-1: #마지막 물품 뒤에는 콤마 찍지 않기
            print(', ', end='')
        
        


#주프로그램부
shopping_bag = [] #리스트 선언

buy(shopping_bag) #구매
buy(shopping_bag) #구매

show(shopping_bag) #목록보기

 

 

 

#리스트를 이용한 쇼핑몰 장바구니
#사용자로부터 입력받은 상품명을 리스트에 추가
#buy() 함수 정의

#리스트에 들어 있는 상품명을 출력하라
#show() 함수 정의

#각 상품에 대해 상품명과 수량을 함께 저장
#상품명을 키 , 수량을 값으로

#장바구니 내 상품을 검색하여 존재하는 경우 담긴 수량을 출력





#함수 선언부

def buy(dic):
    prod_name = input('상품명? ')
    prod_amount = input('수량? ')
    dic[prod_name] = prod_amount
    
    print(f'장바구니에 {prod_name}가(이) {prod_amount}개 담겼습니다.')
    #print(dic)
    print()


def show(dic):
    print('>>> 장바구니 보기: ', end = '')
    for e in dic.items() :
        print(e, end=' ')
    print()
    
def find_product(dic):
    key = input('검색할 상품명? ')
    if key in dic:
        print(f'{key}는(은) 장바구니에 {dic[key]}개 존재합니다.')
    else:
        print(f'{key}가(이) 장바구니에 존재하지 않습니다.')


#주프로그램부
shopping_bag = {}

buy(shopping_bag)

buy(shopping_bag)

show(shopping_bag)

find_product(shopping_bag)
Comments