학교 수업에서 파이썬 기초만 지겹게 했던터라 스스로 기초를 다시 공부할 일은 없을 거라고 생각했는데..
어느 정도 파이썬과 친숙해지고 나니 기초만큼 중요한 게 없구나를 깨닫고 책을 펼쳤다..!
분석을 위한 코딩을 할 때는 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 불러오기 (0) | 2022.01.24 |
---|---|
[python 쌩기초] Numpy (0) | 2021.12.19 |
[python 쌩기초] 함수 / 람다 (0) | 2021.12.17 |