if문 활용elif 는 여러 개 사용 가능하다.# else문 들여쓰기 O
money = 5000
if money > 3800:
print('택시를 타자!')
elif money > 1350:
print ('버스를 타자!')
else:
print ('걸어서 가자!')
print ('걷기 싫다.') #출력: '택시를 타자!'
# else문 들여쓰기 오류
money = 5000
if money > 3800:
print('택시를 타자!')
elif money > 1350:
print ('버스를 타자!')
else:
print ('걸어서 가자!')
print ('걷기 싫다.') #출력: '택시를 타자!' '걷기 싫다.'
for문 활용for 변수명 in 리스트명 : 리스트 안의 요소를 하나씩 변수에 적용fruits = ['사과','배','감','수박','딸기']
# 리스트 안의 요소들을 하나씩 변수에 담기
for fruit in fruits:
print(fruit)
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
for person in people:
name = person['name']
age = person['age']
if age>20:
print(name,age)
enumerate 활용하여 요소의 순서 작성하기break 를 활용하여 특정 구간에서 출력을 멈출 수 있음people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
for i, person in enumerate(people):
name = person['name']
age = person['age']
print(i,name,age)
# i가 5 이상이 되면 출력 중단
if i >= 5:
break
Q1. 리스트에서 짝수만 출력하는 함수 만들기
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
for num in num_list:
if num % 2 == 0:
print(num)
Q2. 리스트에서 짝수의 개수를 출력하기
# 첫번째 풀이
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
count = 0
for num in num_list:
if num % 2 == 0:
count += 1
print(count)
# 두번째 풀이
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
temp_list=[]
for num in num_list:
if num % 2 == 0:
temp_list.append(num)
print(len(temp_list))
Q3. 리스트 안에 있는 모든 숫자 더하기
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
sum = 0
for num in num_list:
sum += num
print (sum)
Q4. 리스트 안에 있는 자연수 중 가장 큰 숫자 구하기
# 첫번째 풀이
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
num_list.sort(reverse=True)
print(num_list[0])
# 두번째 풀이
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
max = 0
for num in num_list:
if max < num :
max = num
print (max)
def hello ():
print ('안녕!')
hello() #출력: 안녕!
def sum(a,b):
return a+b
result = sum(1,2)
print(result) #출력: 3
def bus_rate(age):
if age > 65:
print('무료입니다')
elif age > 20:
print('성인입니다')
else:
print('청소년입니다')
bus_rate(35) #출력: 성인입니다
Q. 주민등록 번호를 입력받아 성별을 출력하는 함수 만들기
def check_gender(my_pin):
num = my_pin.split('-')[1][:1]
if int(num) % 2 == 0:
print('여성입니다.')
else:
print('남성입니다.')
check_gender('200101-3012345') #출력: 남성입니다.
check_gender('200101-2012345') #출력: 여성입니다.
return과 print의 차이점1)
- 단순히 화면에 결과를 출력하는 역할
- 함수가 끝난 후, 출력된 값은 프로그램 내에서 다시 사용 불가
- 즉, 결과를 데이터로 저장하거나 조작할 수 없음
def check_gender(my_pin): num = my_pin.split('-')[1][:1] if int(num) % 2 == 0: print('여성입니다.') else: print('남성입니다.') result = check_gender('200101-3012345') # print만 사용 print(result) # 출력: None→ 여기서 result에는 아무 값도 저장되지 않음
→ check_gender 함수는 단순히 결과를 화면에 출력했을 뿐, 반환(return)하지 않았기 때문
2)
return의 특징
- 함수를 호출한 쪽에 결과값을 반환
- 반환된 값을 저장하거나, 다른 연산에 사용하거나, 다른 함수에 전달할 수 있음
- 데이터를 더 유연하게 활용할 수 있음
def check_gender(my_pin): num = my_pin.split('-')[1][0] num_int = int(num) if num_int % 2 == 0: return '여성입니다.' else: return '남성입니다.' result = check_gender('200101-3012345') # return 사용 print(result) # 출력: 남성입니다.→ 여기서 result에 '남성입니다.'라는 값이 저장
→ 이제 이 값을 다른 곳에서 사용할 수 있음
2. my_pin.split('-')[1][:1] vsmy_pin.split('-')[1][0]
[0] 대신 [:1]을 사용했을까?1)
[0]vs.[:1]
[0]는 문자열의 첫 번째 문자를 직접 접근
예:'2012345'[0]→'2'(문자열)
[:1]는 문자열 슬라이싱으로 첫 번째 문자만 포함하는 새 문자열을 생성
예:'2012345'[:1]→'2'(문자열)
2) 안전성 차이
[0]를 사용할 경우, 문자열이 비어 있으면 IndexError가 발생
예:''[0]→ IndexError
[:1]를 사용할 경우, 비어 있는 문자열에 대해 빈 문자열을 반환
예:''[:1]→''(안전하게 작동)