밍꽁✨
코딩하는 감자
밍꽁✨
전체 방문자
오늘
어제
  • 분류 전체보기 (27)
    • python (16)
      • 파이썬 머신러닝 완벽가이드 (6)
      • 코딩테스트 (4)
      • 머신러닝&딥러닝 (2)
      • 파이썬 기초 (4)
    • Qgis (1)
    • Tableau (6)
    • 빅데이터 분석 기사 (0)
    • 금융데이터 뚝딱이기 (4)
      • 신협 대학생 인턴십 (1)
      • 기사 스크랩 (3)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • Python기초
  • NLP
  • bisect_left
  • 역머니무브
  • 태블로
  • Tableau
  • 피처백터화
  • 기사스크랩
  • Light GBM
  • 머신러닝
  • 인프런
  • 파이썬기초
  • 웰컴투태블로월드
  • sys.stdin.readline()
  • bisect_right
  • LGBM
  • 신협인턴십
  • python
  • 파이썬
  • 코딩테스트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
밍꽁✨

코딩하는 감자

python/파이썬 기초

[python 쌩기초] 조건문 / 반복문

2021. 12. 17. 14:07
반응형

학교 수업에서 파이썬 기초만 지겹게 했던터라 스스로 기초를 다시 공부할 일은 없을 거라고 생각했는데..

어느 정도 파이썬과 친숙해지고 나니 기초만큼 중요한 게 없구나를 깨닫고 책을 펼쳤다..!

 

분석을 위한 코딩을 할 때는 for문을 많이 활용하는 것같은데,

늘 남의 코드를 보고 작성하다보니 헷갈리기도,, 답답하기도 해서 나만의 for문을 만들기 위해  초심잡고 공부 시작 !


조건문 

# 온도가 0도보다 높다면 '아이스 아메리카노'를 추천하자

today_temp = 30
if today_temp > 0 :
	print('아이스 아메리카노')

# 온도가 0도보다 높다면 '아이스 아메리카노'를, 반대로 낮다면 '따뜻한 아메리카노'를 추천하자

today_temp = 30
if today_temp > 0:
	print('아이스 아메리카노')
else:
	print('따뜻한 아메리카노')

# 온도가 0도보다 높다면 '아이스 아메리카노' / 온도가 0도라면 '미지근한 아메리카노' / 온도가 0도보다 낮다면 '따뜻한 아메리카노'를 추천하자 ( elif 활용 ) 

today_temp = 30
if today_temp > 0 :
	print('아이스 아메리카노')
elif today_temp = 0 :
	print('미지근한 아메리카노')
else:
	print('따뜻한 아메리카노')

# 온도에 날씨를 추가하여 중첩 if문 작성하기

# 날씨가 맑은 경우 : 온도가 0도보다 높다면 '아이스 아메리카노' / 온도가 0도라면 '미지근한 아메리카노' / 온도가 0도보다 낮다면 '따뜻한 아메리카노'를 추천하자

# 날씨가 흐린 경우 : '카푸치노'를 추천하자

weather = '비'
today_temp = 30

if weather == '맑음':
	if today_temp>0:
    	print('아이스 아메리카노')
    elif today_temp == 0:
    	print('미지근한 아메리카노')
    else:
    	print('따뜻한 아메리카노')
else:	
	print('카푸치노')

# 좀 더 나아가서 and와 or을 활용하기

# 영어,수학 점수가 90점 이상인 경우 '용돈인상' / 영어, 수학 점수가 80점 이하인 경우 '용돈삭감' / 기타 '동결'

## and활용

math_score = 80
eng_score = 100

if (math_score>=90 and eng_score>=90):
	print('용돈인상')
elif (math_score<=80 and eng_score<=80):
	print('용돈삭감')
else:
	print('동결')

# 영어 또는 수학 점수가 90점 이상인 경우 '용돈인상' / 영어 또는 수학 점수가 80점 이하인 경우 '용돈삭감' / 기타 '동결'

## or 활용

math_score = 80
eng_score = 100

if (math_score>= 90 or eng_score>=90) :
	print('용돈인상')
elif (math_score<=80 or eng_score<=80):
	print('용돈삭감')
else:
	print('동결')

 

반복문 ( for문 / while문 ) & 리스트 컨프리헨션

조건문도 마찬가지이지만, 반복문을 사용할 때 들여쓰기를 주의하자! 

 

1) for문

# 점수에 5씩 더한 값을 new_scores에 넣어주자

scores = [80,90,70,65,85,95,90,80,75,80]
new_scores = []

for s in socres:
	new = s+5
    new_scores.append(new)
print(new_scores)

# 앞서와 같이 점수에 5점씩을 더해주지만, 100점인 학생은 100점 그대로 출력되도록 하자

scores = [80,90,70,65,95,100,90,80,75,80]
new_scores = []

for s in scores:
	if s<100:
    	new = s+5
    else :
    	new = s
    new_scores.append(new)
print(new_scores)

 

2) 리스트 컨프리헨션 

※ 리스트 컨프리헨션 ?

: 코드를 한 줄로 표현하여 새로운 컨테이너 타입을 만드는 방법을 컨프리헨션이라고 한다. 컨프리헨션 중 리스트 컨프리헨션이 가장 대표적이다. 

단순히 for문만으로 구성할 수도 있고, 조건문과 함께 구성할 수도 있다!

 

※ 리스트 컨프리헨션의 문법

더보기
더보기

[ 수행문1 if 조건문 else 수행문2 for 변수 in list ] 

※ 수행문1 : if 조건을 만족하는 경우의 수행문

※ 수행문2 : else 조건을 만족하는 경우의 수행문 

단!! 조건문이 단순히 if문이냐, if else문이냐에 따라서 작성하는 순서가 달라진다!!

  • if문만 쓰는 경우 ( 오른쪽에 if문 작성 )  => [ i for i in range(5) if i%2==0 ]
  • if else문을 쓰는 경우 ( 왼쪽에 if문 작성 ) => [ i if i%2==0 else 'odd' for i in range(5) ]

# 앞서 for문에서 작성한 코드를 리스트 컨프리헨션을 통해 한줄로 작성해보자

new_score2 = [s+5 if s<100 else s for s in scores]
new_score2

for문에서 작성한 코드보다 확실히 간결하고 직관적이며, 실행속도도 더 빠르다는 장점이 있다!

 

3) while문

while 사용 시에는 무한루프에 걸리지 않는지 잘 확인해야한다

 

# 100점 이하인 점수에 5씩 더하여 new_score를 생성하자 ( 100점은 그대로 출력 )

scores = [80,90,70,65,95,100,90,80,75,80]
new_score = []
index = 0

while(index<len(scores)):
    if scores[index] < 100:
    	new = scores[index] + 5
    else :
    	new = scores[index]
    new_score.append(new)
    index = index+1
print(new_score)

# while의 break를 사용하여 수행을 중단하고 빠져나오기

time = 0 
while(True):
	print('현재 사용량 : {}'.format(time))
    if(time>=300):
    	print('[사용중단] 하루 사용 권장량에 도달 또는 초과하였습니다.')
    	break
    else:
    	time = time + 50

# 사용량이 150 미만인 경우에는 안전하다는 메세지를 보여주자

time = 0
while(True):
	print('현재 사용량:{}'.format(time))
    if (time < 150):
    	print('안전')
    if (time >= 300):
    	print('[사용중단] 하루 사용 권장량에 도달 또는 초과하였습니다.')
        break
    else:
    	time = time+50

# 앞선 코드에서 '안전'이라는 메세지가 보이지 않게 해주자 

사실은 그냥 코드를 지워버리면 되는데 굳이굳이 pass 사용..

time = 0
while(True):
	print('현재 사용량 : {}'.format(time))
    if (time<150):
    	pass
    if (time>=300):
    	print('[사용중단] 하루 사용 권장량에 도달 또는 초과하였습니다')
       	break
    else:
    	time = time + 50

# while문을 딕셔너리에 적용해보자

shopping_dict = {'주문번호 : 123, '주문자' : '김**', '주소': '서울 마포구 상암동', '주문항목' : ['김치','라면','물']
for item in shopping_dict:
	print(item)
주문번호
주문자
주소
주문항목

딕셔너리를 출력하면 기본적으로 key값만 나오게 된다

for item in shopping_dict.items():
	print(item)
('주문번호', 123)
('주문자', '김**')
('주소', '서울 마포구 상암동')
('주문항목', ['김치', '라면', '물'])

items() 를 사용하게 되면 key값과 value값이 함께 출력된다

 

3-1)  while문 추가 예제

# 500 칼로리 미만의 음식을 섭취하려고 하는데, 각 음식 칼로리에 대해 섭취 여부 표시

menu = {'고구마' : 200, '떡볶이' : 600, '라면':800}
for key, value in menu.items():
	if(value>500):
    	    print('{}:X'.format(key))
 	else:
    	    print('{}:O'.format(key))

 

# 산토끼 노래에서 '토'라는 단어가 몇 번 나오는지 count

lyric = "산토끼 토끼야. 어디를 가느냐. 깡총깡총 뛰면서. 어디를 가느냐. 산 고개 고개를. 나혼자 넘어서. 토실토실 알밤을. 주워올테야."

count=0
for l in lyric:
	if(l=='토'):
    	    count = count+1
print(count)

 

# ( 반복문 기초라면 무조건,, ) 구구단 만들기

for num in range(9):
	print('3 * {} = {}'.format(num+1, (num+1)*3))

for문 수행 전에 카운트를 위한 변수를 먼저 선언하고 for문 안에서 카운트를 증가시키는 형태의 코드가 자주 사용된다

반응형

'python > 파이썬 기초' 카테고리의 다른 글

[python] 공공 데이터 포털 API 불러오기  (1) 2022.01.24
[python 쌩기초] Numpy  (0) 2021.12.19
[python 쌩기초] 함수 / 람다  (0) 2021.12.17
    'python/파이썬 기초' 카테고리의 다른 글
    • [python] 공공 데이터 포털 API 불러오기
    • [python 쌩기초] Numpy
    • [python 쌩기초] 함수 / 람다
    밍꽁✨
    밍꽁✨
    감자의 데이터 분석 일지

    티스토리툴바