지난 수업 시간에서 응용 1, 2를 정확하게 따라하지 못했던 조건문, 반복문을 복습하기로 했다.
Q 숫자를 입력받아 음수와 양수 여부를 출력
x = int(input("숫자를 입력하세요: "))
if x > 0 :
print("양수")
elif x == 0 :
print("영")
else :
print("음수")
<결과값>
숫자를 입력하세요: -2
음수
Q "월화수목금토일"을 리스트 형태로 변경합니다.
weekday = []
for 요일 in "월화수목금토일" :
weekday.append(요일)
print (요일)
print("for문 종료")
weekday
<결과값>
월
화
수
목
금
토
일
for문 종료
['월', '화', '수', '목', '금', '토', '일']
Q 리스트 안에 있는 값을 순회하며 반복문으로 출력해 보세요.
weekday = ['월', '화', '수', '목', '금', '토', '일']
for 요일 in weekday:
print(요일)
<결과값>
월
화
수
목
금
토
일
for i in range(len(weekday)):
print(i, weekday[i])
<결과값>
0 월
1 화
2 수
3 목
4 금
5 토
6 일
for i, w in enumerate(weekday):
print(i, w)
<결과값>
0 월
1 화
2 수
3 목
4 금
5 토
6 일
Q range로 값을 순회하며 짝수일 때는 "짝수"를 홀수일 때는 "홀수"를 출력하게 해보자
for i in range(1,11):
if i % 2==0:
print(i, "짝수")
else:
print(i, "홀수")
<결과값>
1 홀수
2 짝수
3 홀수
4 짝수
5 홀수
6 짝수
7 홀수
8 짝수
9 홀수
10 짝수
i = 0
while True:
i += 1
print(i)
if i > 5:
break
<결과값>
1
2
3
4
5
6
age_code = """
10대 : AGE_001
20대 : AGE_002
30대 : AGE_003
40대 : AGE_004
50대 : AGE_005
60대 : AGE_006
70대 : AGE_007
기타 : AGE_008
( 비회원, 외국인, 그 이상 등 )"""
age_code
<결과값>
\n10대 : AGE_001\n20대 : AGE_002\n30대 : AGE_003\n40대 : AGE_004\n50대 : AGE_005\n60대 : AGE_006\n70대 : AGE_007\n기타 : AGE_008\n( 비회원, 외국인, 그 이상 등 )
for age in age_code.split("\n"):
age_split = age.split(":")
print(age_split)
위 age_code에서 '\n' 기준으로 나눠준(.split) 값을 age에 할당시키고
그것을 다시 ':' 기준으로 나눠 age_split 이라는 변수에 저장해준다
age_dict = dict()
for age in age_code.split("\n"):
age_split = age.split(":")
if len(age_split) > 1:
key = age_split[1].strip()
val = age_split[0].strip()
age_dict[key] = val
age_dict
<결과값>
{'AGE_001': '10대',
'AGE_002': '20대',
'AGE_003': '30대',
'AGE_004': '40대',
'AGE_005': '50대',
'AGE_006': '60대',
'AGE_007': '70대',
'AGE_008': '기타'}
변수의 길이가 1이 넘을 경우 두 번째 값([1])을 key 값으로,
첫 번째 값([0])을 val로 넣어준다
그리고 딕셔너리 age_dict에 각 key와 valure 값으로 저장해준다
Q 딕셔너리의 결과가 아래와 같이 나오도록 아래의 문자열을 변경해 보세요.
{'경기': '031',
'강원': '033',
'충남': '041',
'충북': '043',
'경북': '054',
'경남': '055',
'전남': '061',
'전북': '063'}
# 아래의 문자를 딕셔너리 형태로 변경하기
phone = ">경기 031 >강원 033 >충남 041 >충북 043 >경북 054 >경남 055 >전남 061 >전북 063"
# ">" 문자를 기준으로 문자열을 나눕니다. => split() 으로 리스트로 변환
# for문으로 리스트를 반복해서 phone_dict 에 채웁니다.
phone_dict = dict()
for ps_split in phone.split(">"):
if len(ps_split) > 0:
key = ps_split[:2].strip()
val = ps_split[-4:].strip()
phone_dict[key] = val
phone_dict
<결과값>
{'경기': '031',
'강원': '033',
'충남': '041',
'충북': '043',
'경북': '054',
'경남': '055',
'전남': '061',
'전북': '063'}
** 또 다른 방법 (한줄로 표현하기)
{ ps.split()[0] : ps.split()[1] for ps in phone.split(">")[1:]}
<결과값>
{'경기': '031',
'강원': '033',
'충남': '041',
'충북': '043',
'경북': '054',
'경남': '055',
'전남': '061',
'전북': '063'}