728x90
반응형

Day 9 리뷰 문제

# REVIEW 1) 1~20 숫자 중 짝수만 포함하는 리스트 컴프리헨션 만들기

#방법1
[i for i in range (1,21) if i % 2 ==0]
#방법2
[i for i in range (2,21,2)]

# REVIEW 2) 주어진 리스트 [1,2,3,4,5,6,7,8,9,10]에서 5보다 큰 숫자만을 포함하는 새로운 리스트를 리스트 컴프리헨션을 사용해 만들기

numList = [1,2,3,4,5,6,7,8,9,10]
overFiveList = [i for i in numList if i > 5]
print(overFiveList)      #[6,7,8,9,10]

# REVIEW 3) 문자열 리스트 ['apple','banana','cherry','date']에서 각 단어의 첫 글자만을 추출하여 새로운 리스트 만들기
# 예상 답안 ['a','b','c','d']

fruits = ['apple','banana','cherry','date']
firstLetterList = [i[0] for i in fruits]
print (firstLetterList)  # ['a','b','c','d']

# REVIEW 4) 위의 FRUITS를 대문자화 하기

fruitsUpper= [i.upper() for i in fruits]
print(fruitsUpper)      # ['APPLE','BANANA','CHERRY','DATE']
Day 10
딕셔너리 컴프리헨션 (Dictionary Comprehension)
딕셔너리 컴프리헨션은 Key 값과 Value 쌍을 생성하여 Dictionary를 만드는데 사용됨.

구조:
{키 : 값 for 변수 in 리스트 or 문자열}
zip 함수의 기본 사용법
#1. zip 함수를 이해하기 쉬운 비유로 설명하자면, 'zipper' 처럼 서로 다른 두 줄의 요소들을 하나씩 짝지어 올리는 것임
#2. zip 함수는 두 개 이상의 리스트를 받아서, 첫 번재 리스트의 첫 번째 요소와 두 번째 리스트의 첫 번째 요소를 묶고, 다음으로 두 번째 요소들을 묶는 식으로 진행 

(#Dict 리뷰)

#dict_comp
normalPopcorn = {
        'name':'일반',
        'price':'2500',
    }   #이렇게 생긴게 Dict 였다.

(# Dict_comp 활용)

# #dict_comp을 활용하려면 zip를 해주어야 한다
# #zipper
# zipped = zip(coffee,price)
# print(list(zipped))  #[('아메리카노', 2500), ('라떼', 3000), ('바닐라', 3500)]

coffee = ['아메리카노','라떼','바닐라']
price = [2500,3000,3500]

result = [{'이름':name,'가격':price} for name,price in zip(coffee,price)]

print(result)
#[{'이름': '아메리카노', '가격': 2500}, {'이름': '라떼', '가격': 3000}, {'이름': '바닐라', '가격': 3500}]

coffee = ['아메리카노','라떼','바닐라']
price = [2500,3000,3500]
caffeine=[120,150,50]

resultC = [{'이름':name,'카페인':caffeine} for name,caffeine in zip(coffee,caffeine)]
print(resultC)

(#Enumerate 리뷰)

#enumerate 순서랑 값 나타내기
for index,item in enumerate(coffee):      #enumerate 순서랑 값 나타냄
    print(f"{index}.{item}")
    #결과 0. 아메리카노
    #결과 1. 라떼
    #결과 2. 바닐라

(#Dict comp, Enumerate, Zip 활용)

#아래 popcorn = 의 dict를 {index ~~ for ~ in enumerate(zip()) 을 활용하여 표현 가능하다
coffee = ['아메리카노','라떼','바닐라']
price = [2500,3000,3500]

a= {index: {'이름':coffee, '가격':price} for index,(coffee,price) in enumerate(zip (coffee,price))}

popcorn = {
    1: {
        'name':'일반',
        'price':2500
    }
}
print(a)
# {0: {'이름': '아메리카노', '가격': 2500}, 1: {'이름': '라떼', '가격': 3000}, 2: {'이름': '바닐라', '가격': 3500}}

#1 for coffee,price in zip (coffee,price)
#2 for index,(coffee,price) in enumerate(zip (coffee,price))
#3 딕셔너리화 {for index,(coffee,price) in enumerate(zip (coffee,price))}
#4 딕셔너리 값에 인덱스넣기 {index:{'name':coffee,'price':price} for index,(coffee,price) in enumerate(zip (coffee,price))}

 

Day 10
Function

1. 프로그래밍과 함수의 관계
 특징: 함수는 프로그램에서 중요한 역할을 하며, 코드를 조직화하고 재사용할 수 있게 해줌.
이는 유지 보수를 쉽게 하고, 이는 유지 보수를 쉽게 하고 프로그램의 복잡성을 줄이는 데 기여함
2. 함수 정의 방법: def 키워드
설명: 함수를 호출하려면 함수 이름과 괄호를 사용함. 괄호 안에는 함수가 정의될 때 지정된 매개변수에 해당하는 인자를 넣어 줌. 함수가 호출되면, 파이썬은 함수의 본문을 실행.

3. 키워드 매개변수 (Keyword Arguments)
설명: 키워드 매개변수를 사용하면 인수를 전달할 때 매개변수의 이름을 명시적으로 지정할 수 있음. 이렇게 하면, 인수의 순서가 바뀌어도 올바르게 전달 됨. 

(예시: pet_name과 animal_type의 순서가 바뀌어도 함수가 올바르게 작동)

(예시 2)

def add(x,y):
    result = x+y
def minus(x,y):
    result = x-y
def multiply(x,y):
    result = x*y
def oddEven(x):
    if x%2 ==0 :
        return "짝수입니다"
    else:
        return "홀수입니다"
a = oddEven(5)
print(a)
4. 기본 매개변수 값 설정
설명: 함수 정의 시 매개변수에 기본값을 설정할 수 있음. 호출 시 해당 매개변수에 값을 제공하지 않으면, 기본값이 사용됨.

(예시: animal_type에 기본값 'dog'가 설정되어 있으므로, pet_name_만 전달해도 함수가 작동함)

(응용예시)

def makeListDict(xList,yList,xKey,yKey):
    return [{xKey: x, yKey: y} for x,y in zip(xList,yList)]

breads = ['소금빵','보름달','단팥빵','앙버터','마카롱']
prices = [2500,1000,2400,4500,3000]
result= makeListDict(breads,prices,'빵','가격')
print(result)
    #[{'빵': '소금빵', '가격': 2500}, {'빵': '보름달', '가격': 1000}, {'빵': '단팥빵', '가격': 2400}, {'빵': '앙버터', '가격': 4500}, {'빵': '마카롱', '가격': 3000}]

 

반응형
728x90
반응형
지난 시간 리뷰문제

# (REVIEW 1) 1개의 각도를 입력받아, 예각 (0-90), 직각 (90), 평각 (180), 둔각 (90 초과 ~ 180 미만) 으로 분류

angle= int(input("각도 입력하세요: "))
if  0 < angle <90:
    print("예각입니다")
elif   angle == 90:
    print ("직각입니다")
elif    angle == 180:
    print ("평각입니다")
elif 90 < angle < 180:
    print ("둔각입니다")
else: print ("180도 초과입니다")

# (REVIEW 2) 
# # 테마파크 입장권과 놀이기구 이용 패키지
# # 입장권 종류 1~3과 나이를 입력 받고, 패키치에 따라 가격 계산
# # 1. 일반 입장권 50000
# # 2. 프리미엄 입장권 75000
# # 3. VIP 입장권 100000
# # 나이에 따른 할인율
# # 12세 미만 50% 할인
# # 65세 이상 30% 할인

park = {
    1: {
        'name': '일반 입장권',
        'price': 50000
    },
    2: {
        'name': '프리미엄 입장권',
        'price':75000
    },
    3: {
        'name':'VIP 입장권',
        'price':100000
    }
}
name_choice = int(input("파크 고르세요! (1 일반 2 프리미엄 3 VIP) :  "))
age = int(input("나이 :"))
if age <= 12:
    print(f"총 이용 요금은 {park[name_choice]['price']*.5} 입니다")
elif age >= 65:
    print(f"총 이용 요금은 {park[name_choice]['price']*.3} 입니다")
else:
    print(f"총 이용 요금은 {park[name_choice]['price'] * 1} 입니다")

# (REVIEW 3) 0~10,000까지의 랜덤을 숫자를 담고 있는 6개의 정수를 담고 있는 리스트 출력

import random

num= []
for x in range (6):                          #6개 추출
    number=random.randint(0,10001)     #0~10000까지를 랜덤 추출
    num.append(number)
    num.sort()                           #오름차순 정렬
    print(num)

 

본 수업

 # (for 기본) for x in "단어" 입력시 알파벳별 나열된다

for x in "icecream":
    print(x)           # i c e c r e a m

# (for 활용) 텍스트를 입력하고, 소문자를 대문자로, 대문자를 소문자로 만들기

# 유저에게 InpUT 받고 -> iNPut 출력
user = input("단어 입력: ")
word = ''
for x in user:
    if x.isupper():
        word = word + x.lower()   # ''+'i' => i
    else:
        word = word + x.upper()   # i + N => iN
print(word)

# (for 활용) 단어 내에 'a' 'e' 가 포함되어 있으면, 없애기 

user = input ("단어 입력: ")
output = ''
#apple
for x in user:
    if x == 'a' or x == 'e':
        output = output
    else:
        output = output + x
        print(output)
#

# (for 활용) 단어 내에 'a' 'e' 'i' 'o' 'u' 가 포함되어 있으면, 없애기 ( pass )

user = input ("단어 입력: ")
output = ''
#apple
for x in user:
    if x in 'aeiou':
        pass
    else:
        output += x
        print(output)         #ppl

# (for 활용) 리스트 내에 있는 단어 수를 가져다가 리스트로 만들기

list=[]
for x in ['사과', '바나나','파인애플']:
    print(len(x))                  #  2   3   4
    list.append(len(x))
print(list)                        # [2,3,4]

 

# (for 활용) 짝수 리스트, 홀수 리스트 만들기

even=[]
odd=[]
evenSum=0
for x in [1,2,3,4,5,6,7,8,9,10]:
    if x % 2 == 0:
        even.append(x)       
    else: odd.append(x)
print(even)         # [2,4,6,8,10]
print(odd)          # [1,3,5,7,9]

# (for 활용) 0 ~ 10,000 까지의 범위에서 100개의 정수 리스트를 받고, 리스트에서 홀수면 'odd' 짝수면 'even'으로 변경하기

import random
List=[]

for x in range (100):
    List.append(random.randint(0,10001))
    print(List)
List.sort()
print(List)

evenoddList= []
for x in List:
    if x % 2 ==1:
        evenoddList.append('odd')
    else:
        evenoddList.append('even')
print(List)             # [30, 450, 523, 534, 627, 735, 971...
print(evenoddList)      # ['even', 'even', 'odd', 'even', 'odd'..

 

for 변수 in (리스트, 문자열 ... ) [ 반복 가능한 객체 ]

for 변수 in enumerate ( )
enumerate( ) 함수는 리스트, 문자열 등을 순회하면서, 각 요소의 인덱스와 값을 동시에 얻을 수 있게 해줌

(enumerate 함수 예시)

device=['아이폰','갤럭시','맥북']
for x,y in enumerate(device):   #enumerate는 요소와 순서를 둘다 알려줌
    print(f"{x}.{y}")  #0.아이폰  #1. 갤럭시 #2. 맥북

 

반응형

+ Recent posts