728x90
반응형
지난 시간 리뷰 문제
# REVIEW 1 1부터 100까지의 사이 출력한 뒤 정수 N의 배수만 출력하도록 만들기
num = int(input("정수 입력하기: "))
for x in range (101):
if x % num == 0:
print(x)
# REVIEW 2 정수를 받고, 구구단 (x1 ~ x9) 출력하기
num1= int(input("정수 입력:"))
for i in range (1,10):
print(f"{num1} * {i} = {num1 * i}") # 5*1=5 5*2=10
DAY 9
BREAK: FOR, WHILE 에 반복을 끊는 역할
CONTINUE: JUMP 같은 역할
(break 예시)
for i in range (100):
if i==50:
break
else:
print(i) # 0 1 2 3... 49
(continue 예시)
for i in range (100):
if i==50:
continue
else:
print(i) # 0 1 2 3 ... 49 51 .. 99
Day 9
While 문 : 파이썬에서 while 문은 조건이 True인 동안 반복해서 코드 블록을 실행하는 데 사용 됨. while 루프는 주어진 조건이 False가 될 때까지 계속 실행되며, 조건이 처음부터 False이면 루프 내부의 코드는 한 번도 실행되지 않음.
While 은 유저가 끝을 결정 짓는 상황,
For 는 프로그래머가 끝을 결정 짓는 상황으로 이해할 수 있음!
(while문 기본 구조 1)
a=1
while a < 10:
print ('아메리카노')
a=a+1 # a += 1
#결과: 아메리카노 9번 써짐
(while문 기본 구조 2)
while True:
print("너가 숫자 1을 넣어야 탈출 가능")
num=int(input("숫자 입력:"))
if num == 1 :
break
(while문의 응용 - 커피 프로그램 개발-)
coffeeList=[]
while True:
print("-메가커피 프로그램-")
print("1. 커피 등록하기")
print("2. 커피 메뉴보기")
print("3. 시스템 종료")
codeNumber = int(input("번호 입력: "))
if codeNumber==1:
print("커피 등록 시스템")
coffeeName=input("커피 이름 입력")
coffeeList.append(coffeeName)
print("등록 완료!")
elif codeNumber ==2:
if len(coffeeList) == 0:
print("커피 메뉴가 없어요ㅠ.ㅠ")
else: print(coffeeList)
elif codeNumber ==3:
print("이용해 주셔서 감사합니다.")
break
else:
print("숫자를 다시 입력하세요")
Day 9
For 문 컴프리헨젼
파이썬에서의 리스트 컴프리헨션 (List Comprehension)은 for 문을 사용하여 리스트를 생성하는
간결하고 효율적인 방법임.
기본적인 for 문 대신에 리스트 컴프리헨션을 사용하면 코드를 더 짧고 읽기 쉽게 만들 수 있음
(기존 FOR문)
a = []
for i in range (1001):
a.append(i)
print(a)
(FOR_COMPREHENSION 예시)
a = [i for i in range (1001)]
print(a) #[1, 2, 3.... , 1000]
b = [i for i in range (101)]
print(b) #[1,2,3...,100]
c = [i for i in range (1,501)]
print(c) #[1,2,3...,500]
d = [i for i in "megastudy"]
print(d) # ['m','e','g','a',..'y']
e = [i*2 for i in range (1,101)]
print(d) # [2,4,6,8...200]
#1. 1~10을 각각 제곱한 수의 리스트
f = [i**2 for in range (1,11)]
print(f)
#[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
#2. 1~10에 각각 5를 더한 수의 리스트
g= [i+5 for i in range (1,11)]
print(g)
#[6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
조건부 컴프리헨션 (Conditional Comprehension)
컴프리헨션 내에 if-else 조건문을 사용하여 특정 조건에 따라 다른 값들을 생성
구조: [값1 if 조건 else 값2 for 변수 in 반복가능객체]
(예시 1) IF가 뒤에 있을 때에는, FILTER 역할 수행!)
fruits =['apple','strawberry','mango','orange','melon']
for i in fruits :
print(i) # apple strawberry mango ...
#예시) alphabet a 가 있는 애들만 찾기
a = [i for i in fruits if i.count('a')>0]
print(a) #['apple', 'strawberry', 'mango', 'orange']
#예시) alphabet r 이 하나만 있는 애들만 찾기
b = [i for i in fruits if i.count('r')==1]
print(b) #['orange']
#글자 개수가 6글자 이상만 찾기
c = [i for i in fruits if len(i) >= 6]
print(c) #['strawberry', 'orange']
(예시 2) IF - ELSE 가 있을때는 MAP 변환/치환 역할 수행!
d = [':>' if i%2 ==0 else i for i in range (1,101)]
print(d) #[1, ':>', 3, ':>', 5, ':>', 7, ':>', 9, ':>',...:>(100)]
(활용 1) 유저에게 n을 입력 받고, 1~100까지의 리스트 출력을 하는데
n 의 배수만 @를 표현해주고 나머지는 숫자로 표현
n=int(input("정수 입력: "))
e = ['@' if i%n==0 else i for i in range (1,101)]
print (e)
# 5 넣으면 [1, 2, 3, 4, '@', 6, 7, 8, 9, '@' ... '@]
(활용 2) fruits = ['apple','strawberry','mango','orange','melon']
fruits 에서 5글자 이하이면 대문자로 바꿔서 출력하고
아니면 #로 출력하는 리스트 만들기
f = [i.upper() if len(i)<=5 else '#' for i in fruits]
print (f) #['APPLE', '#', 'MANGO', '#', 'MELON']
중첩 루프 컴프리헨션 (Nested Loop Comprehension)
컴프리헨션 내에 두 개 이상의 반복문을 중첩하여 사용 가능. 이는 여러 개의 리스트나 다른 반복 가능한 객체들 간의 조합을 생성하는 데 유용
구조: [값 for 변수1 in 반복가능객체1 for 변수2 in 반복가능객체2]
h=[i*j for i in range (1,4) for j in range (1,4)]
#i:1일때 j: 1,2,3
#i=2일때 j: 1,2,3
#i=3일때 j: 1,2,3
print(h)
#결과: [1, 2, 3, 2, 4, 6, 3, 6, 9]
g=[i+j for i in ["apple","banana"] for j in ["pie","tanghuru"]]
print(g)
# 결과: ['applepie', 'appletanghuru', 'bananapie', 'bananatanghuru']
반응형
'데이터분석 > Python 파이썬 1달만에 마스터하기' 카테고리의 다른 글
Day12 가변 매개변수, 람다함수, 콜백함수, 내장함수 [파이썬 1달만에 마스터하기] (0) | 2024.01.19 |
---|---|
Day10 Dict Comp, Enumerate, Zip, function 활용하기 [파이썬 1달만에 마스터하기] (1) | 2024.01.16 |
Day8 for x in range 함수 응용, 리스트, 텍스트, enumerate [파이썬 1달만에 마스터하기] (0) | 2024.01.12 |
Day7 Random, randint, choice, shuffle, 반복문 for x in range [파이썬 1달만에 마스터하기] (1) | 2024.01.11 |
Day6 파이썬 set, if, elif, else, 다중 if문 [파이썬 1달만에 마스터하기] (1) | 2024.01.10 |