if문
들여쓰기 주의!
age = 27
if age < 20:
print("청소년입니다.")
elif age < 65:
print("성인입니다.")
else:
print("무료로 이용하세요!")
elif 다양한조건 판단 / else 조건만족하지 않으면
enumerate , break 활용
fruits = ['사과', '배', '감', '귤','귤','수박','참외','감자','배','홍시','참외','오렌지']
for i, fruit in enumerate(fruits):
print(i, fruit)
if i == 4:
break
enumerate 순서 표시 / break 순서이용해서 멈춤
함수는 반복적으로 사용하는 코드들에 이름을 붙여놓은 것입니다.
def check_gender(pin):
first_num = int(pin[:1])
if first_num % 2 == 0 :
print('Women')
else:
print('Man')
my_pin = '200101-3012345'
check_gender(my_pin)
튜플
리스트와 비슷하지만 불변인 자료형
a = (1,2,3)
a[0] = 99 #에러
튜플의 요소 바꿀수 없다(불변)
집합(set)
집합을 구현하는 방법, 중복제거된다
a = [1,2,3,4,5,3,4,2,1,2,4,2,3,1,4,1,5,1]
a_set = set(a)
print(a_set)
{1, 2, 3, 4, 5}
교집합 , 합집합
a = ['사과','감','수박','참외','딸기']
b = ['사과','멜론','청포도','토마토','참외']
print(a & b) # 교집합
print(a | b) # 합집합
차집합 문제
a가들은 수업중 b가듣지않은 수업
student_a = ['물리2','국어','수학1','음악','화학1','화학2','체육']
student_b = ['물리1','수학1','미술','화학2','체육']
set_a = set(student_a)
set_b = set(student_b)
set_a_only = set_a - set_b
print(set_a_only)
{'화학1', '국어', '물리2', '음악'}
/ f-string
scores = [
{'name':'영수','score':70},
{'name':'영희','score':65},
{'name':'기찬','score':75},
{'name':'희수','score':23},
{'name':'서경','score':99},
{'name':'미주','score':100},
{'name':'병태','score':32}
]
for s in scores:
name = s['name']
score = s['score']
print(name+'의점수는 '+str(score)+'점입니다') ## 정수형 -> 문자열로 바꿈
영수의점수는 70점입니다
영희의점수는 65점입니다
기찬의점수는 75점입니다
희수의점수는 23점입니다
서경의점수는 99점입니다
미주의점수는 100점입니다
병태의점수는 32점입니다
/ try - except 문
에러가 있어도 건너뛰게 할 수 있는 방법
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby'},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
for person in people:
try: ## try아래 구문을 실행해서 에러가 발생하면
if person['age'] > 20:
print (person['name'])
except: ## expet 이하 실행하라
name = person['name']
print(f'{name} - 에러입니다')
carry
ben
bobby - 에러입니다
red
queen
파일 여러개로 분리했을때
from main_func import *
say_hi()
def say_hi():
print('안녕!')
from 파일이름 import * 사용해서 불러올수 있다
*모든거 다불러옴 / say_hi 쓰면 이것만 불러옴
if
num = 3
if num%2 == 0:
result = "짝수"
else:
result = "홀수"
print(f"{num}은 {result}입니다.")
num = 3
result = ("짝수" if num%2 == 0 else "홀수")
print(f"{num}은 {result}입니다.")
(참일 때 값) if (조건) else (거짓일 때 값)으로 항이 3개라 삼항 연산자입니다
for
a_list = [1, 3, 2, 5, 1, 2]
b_list = []
for a in a_list:
b_list.append(a*2)
print(b_list)
a_list = [1, 3, 2, 5, 1, 2]
b_list = [a*2 for a in a_list]
print(b_list)
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}
]
1차 조작 : 변수(person) 의 age가 20보다 크면 '성인' 아니면 '청소년' /
map으로 리턴값(리스트 요소 함수로 처리) 새 리스트 생성
def check_adult(person):
if person['age'] > 20:
return '성인'
else:
return '청소년'
result = map(check_adult, people)
print(list(result))
['청소년', '성인', '청소년', '청소년', '성인', '성인', '성인', '성인'] ## 결과는 모두 같다
2차 조작 : if 문을 삼항연산자로 바꿈 ( 리턴해라 '성인'을 person['age'] > 20이면, 그렇지 않다면 '청소년을')
def check_adult(person):
return '성인' if person['age'] > 20 else '청소년'
result = map(check_adult, people)
print(list(result))
3차 조작 : 람다이용 변수(위의 person -> x) 관용적으로 x 쓰임
결과 = people리스트를 돌면서 x에 값을 넣는데, x를 if x['age'] > 20 else '청소년' 로 리턴해서 넣어라 -> 이값(리턴값)을 map에 값저장
프린트하라 새 리스트로 결과값을(map에 저장된 값)
result = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people)
print(list(result))
filter - 리스트의 모든 원소 중 특별한 것만 뽑기
결과 = people리스트를 돌면서 x에 값을 넣는데, x['age'] > 20인 리턴값들만 넣어라
프린트하라 새 리스트로 결과값을
result = filter(lambda x: x['age'] > 20, people)
print(list(result))
알고리즘 특강