ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Study Of Landvibe
Python
If, Loop, Function
Outline
1. If
2. Loop
3. range()
4. break, continue, pass
5. Comprehensions
6. Function
ì¡°ê±´ë¬¸ì˜ ë
블ë¡ë¬¸ì˜ 시작
조건문
If
1. if ~ elif ~ else
color = input(“색ìƒì„ ì˜ë¬¸ìœ¼ë¡œ 입력하세요 : “)
if color == ‘blue’:
print(â€œíŒŒëž€ìƒ‰ì„ ìž…ë ¥í•˜ì…¨ë„¤ìš”â€)
elif color ==‘red’:
print(â€œë¹¨ê°„ìƒ‰ì„ ìž…ë ¥í•˜ì…¨ë„¤ìš”â€)
else :
print(color + â€œìƒ‰ì„ ìž…ë ¥í•˜ì…¨ë„¤ìš”â€)
특정 ì¡°ê±´ì— ë”°ë¼ ë¶„ê¸°ë¥¼ 하기 위해 제공ë˜ëŠ” 제어문
else if => elif ( else if는 syntax error!)
파ì´ì¬ì—는 Swich-caseë¬¸ì´ ì—†ìŠµë‹ˆë‹¤
제어문 키워드
들여쓰기로 블ë¡ë¬¸ 대체
들여쓰기로 블ë¡ë¬¸ 대체
조건문
Loop
1. While
color =‘’
while color != ‘blue’ and color != ‘red’ :
color = input(“색ìƒì„ ì˜ë¬¸ìœ¼ë¡œ 입력하세요 : “)
if color == ‘blue’:
print(â€œíŒŒëž€ìƒ‰ì„ ìž…ë ¥í•˜ì…¨ë„¤ìš”â€)
elif color ==‘red’:
print(â€œë¹¨ê°„ìƒ‰ì„ ìž…ë ¥í•˜ì…¨ë„¤ìš”â€)
else :
print(color + â€œìƒ‰ì„ ìž…ë ¥í•˜ì…¨ë„¤ìš”â€)
print (â€œí”„ë¡œê·¸ëž¨ì„ ì¢…ë£Œ 합니다â€)
특정 ì¡°ê±´ì— ë§Œì¡±í•  때까지 루프를 ëŒë¦´ë•Œ 주로 사용
무한 루프를 ëŒë¦´ ë•Œ 주로 사용
ì¡°ê±´ë¬¸ì˜ ë
블ë¡ë¬¸ì˜ 시작
반복문 키워드
열거형 변수가 하나씩 대입ë˜
는 변수
반복문 키워드
Loop
2. for
landvibe = ‘재승’, ‘민승’, 지선’
for member in landvibe:
print(member)
특정 ë²”ìœ„ë§Œí¼ ë£¨í”„ë¥¼ ëŒë¦´ë•Œ 주로 사용
열거형 변수
(tuple, list, …)
for문과 range() 함수
1. range()
>>> for x in range(5) :
… print(x, end=‘ ‘)
0 1 2 3 4 # 5는 출력ë˜ì§€ 않습니다
>>> type(range(5))
<class ‘range’>
>>> range(5)
range(0, 5) # 그냥 쓰면 range 타입입니다
>>> list(range(5))
[0, 1 ,2, 3 ,4 ] # list() ë¡œ í˜•ë³€í™˜ì„ í•´ì£¼ë©´ 해당 범위ì˜ëª¨ë“ ê°’ì´
# 출력ë©ë‹ˆë‹¤
순차ì ì¸ 숫ìžë¡œ ì´ë£¨ì–´ì§„ 리스트를 쉽게 만드는 방법
파ì´ì¬ 기본 내장 함수
range(start, stop [, step])
기본 예제
>>> list(range(5, 10))
>>> list(range(0, 10, 2))
>>> list(range(5, 0, -1))
>>> tuple(range(5, 0, -1))
>>> list(range(0, 10, -1))
퀴즈!
for문과 range() 함수
>>> list(range(5, 10))
[5, 6, 7 ,8 ,9] # 5부터 10까지 1씩ì¦ê°€í•˜ëŠ” 리스트
>>> list(range(0, 10, 2))
[0, 2, 4, 6, 8] # 0부터 10까지 2씩ì¦ê°€í•˜ëŠ” 리스트
>>> list(range(5, 0, -1))
[5, 4, 3, 2, 1] # 5부터 0까지 -1씩 ì¦ê°€í•˜ëŠ” 리스트
>>> tuple(range(5, 0, -1))
(5, 4, 3, 2, 1) # 5부터 0까지 -1씩 ì¦ê°€í•˜ëŠ” 튜플
>>> list(range(0, 10, -1))
[] # 0부터 10까지 -1씩ì¦ê°€í•˜ë©´ 무한루프
# ì´ëŸ´ë• 빈리스트가 반환!
# ì—러가 나지 ì•ŠìŒ!!
정답
for문과 range() 함수
break, continue, pass
1. break
특정한 ì¡°ê±´ì— ì˜í•´, 수행하고 있는 루프를 중단한다
for i in range(10) :
if i == 5:
break;
print( i, end=‘ ‘)
2. continue
수행하고 있는 루프문만 중단하고 ë‹¤ìŒ ë£¨í”„ë¡œ 넘어간다
for i in range(10) :
if i == 5:
continue;
print( i, end=‘ ‘)
ê²°ê³¼ : 0 1 2 3 4
ê²°ê³¼ : 0 1 2 3 4 6 7 8 9
break, continue, pass
3. pass
아무 ì¼ë„ 하지 않는다
for i in range(10) :
if i == 5:
pass
print( i, end=‘ ‘)
ê²°ê³¼ : 0 1 2 3 4 5 6 7 8 9
í—¤ì—!?
아무ì¼ë„
안한다고요?
break, continue, pass
def prev_funcion():
pass
class pre_class():
pass
def prev_control():
if x == 3:
pass
코드 설계 ì‹œ 제어문, 함수, í´ëž˜ìŠ¤ë¥¼ 미리 만들어 놓
ì„ ë•Œ 사용합니다
3. pass
Comprehensions
짧고 ê°„ê²°í•œ 코드로 List, Set, Dict와 ê°™ì€ ìžë£Œêµ¬ì¡°ë¥¼ ìƒ
성할 수 있는 문법
square_list = []
for x in range(11):
square_list.append(x*x)
print(square_list)
1. List
for 문으로 [0, 1, 4 , 9, 16, 25, 36, 49, 64, 81,100] ì˜
ë°ì´í„°ë¥¼ ìƒì„±í•´ë³´ìž
square_list = [x*x for x in range(10)]
Comprehensions를 사용하면?
Comprehensions
>>> pairs = []
>>> old_boys = [‘재승’, ‘민승’, ‘ìƒí™”’]
>>> young_boys = [‘성현’, ‘양욱’, ‘재형’]
ì‘ìš©
[‘재승’, ‘민승’, ‘ìƒí™”’], [‘성현’, ’양욱’, ’재형’] ë‘ê°œì˜ ë¦¬ìŠ¤
트를 tupleë¡œ ì§ì§€ì–´ 봅시다.
중첩 for 문 사용
>>> for ob in old_boys :
for yb in young_boys:
pairs.append( (ob,yb) )
>>> pairs
[(‘재승’, ‘성현’), (‘재승’, ‘양욱’), (‘재승’, ‘재형’),
(‘민승’, ‘성현’), (‘민승’, ‘양욱’), (‘민승’, ‘재형’),
(‘ìƒí™”’, ‘성현’), (‘ìƒí™”’, ‘양욱’), (‘ìƒí™”’, ‘재형’)]
Comprehensions
>>> pairs = []
>>> old_boys = [‘재승’, ‘민승’, ‘ìƒí™”’]
>>> young_boys = [‘성현’, ‘양욱’, ‘재형’]
ì‘ìš©
[‘재승’, ‘민승’, ‘ìƒí™”’], [‘성현’, ’양욱’, ’재형’] ë‘ê°œì˜ ë¦¬ìŠ¤
트를 tupleë¡œ ì§ì§€ì–´ 봅시다.
Comprehension 사용
>>> pairs = [ (x,y) for x in old_boys for y in young_boys]
>>> pairs
[(‘재승’, ‘성현’), (‘재승’, ‘양욱’), (‘재승’, ‘재형’),
(‘민승’, ‘성현’), (‘민승’, ‘양욱’), (‘민승’, ‘재형’),
(‘ìƒí™”’, ‘성현’), (‘ìƒí™”’, ‘양욱’), (‘ìƒí™”’, ‘재형’)]
Comprehensions
>>> pairs = []
>>> old_boys = [‘재승’, ‘민승’, ‘ìƒí™”’]
>>> young_boys = [‘성현’, ‘민승’, ‘재형’]
ì‘ìš©
[‘재승’, ‘민승’, ‘ìƒí™”’], [‘성현’, ’민승’, ’재형’] ë‘ê°œì˜ ë¦¬ìŠ¤
트를 tupleë¡œ ì§ì§€ì–´ 봅시다.
중첩 for 문 사용
>>> for ob in old_boys :
for yb in young_boys:
if ob != yb:
pairs.append( (ob,yb) )
>>> pairs
[(‘재승’, ‘성현’), (‘재승’, ‘민승’), (‘재승’, ‘재형’),
(‘민승’, ‘성현’), (‘민승’, ‘재형’),
(‘ìƒí™”’, ‘성현’), (‘ìƒí™”’, ‘민승’), (‘ìƒí™”’, ‘재형’)]
Comprehensions
>>> pairs = []
>>> old_boys = [‘재승’, ‘민승’, ‘ìƒí™”’]
>>> young_boys = [‘성현’, ‘민승’, ‘재형’]
ì‘ìš©
[‘재승’, ‘민승’, ‘ìƒí™”’], [‘성현’, ’민승’, ’재형’] ë‘ê°œì˜ ë¦¬ìŠ¤
트를 tupleë¡œ ì§ì§€ì–´ 봅시다.
Comprehension 사용
>>> pairs = [ (x,y) for x in old_boys for y in young_boys if x != y]
>>> pairs
[(‘재승’, ‘성현’), (‘재승’, ‘민승’), (‘재승’, ‘재형’),
(‘민승’, ‘성현’), (‘민승’, ‘재형’),
(‘ìƒí™”’, ‘성현’), (‘ìƒí™”’, ‘민승’), (‘ìƒí™”’, ‘재형’)]
Comprehensions
>>> a = {x for x in ‘abrdabrdabrd’ if x not in ‘abc’}
>>> a
2. Set
예제
{‘r’, ‘d’}
>>> a = { x : x*x for x in (2, 4, 6)}
>>> a
3. Dict
예제
{ 2:4, 4:16, 6:36 }
function
함수 : 특정 í–‰ìœ„ì— ëŒ€í•´ 기술한 소스 코드
í´ëž˜ìŠ¤ : 특정 행위와 ìƒíƒœë¥¼ ë‹´ì„ ìˆ˜ 있는 ê°ì²´ë¥¼ ìƒì„±í•˜ê¸° 위한 명세서
모듈 : 함수, í´ëž˜ìŠ¤ ë“±ì„ í¬í•¨í•˜ì—¬ ë…립ì ì¸ 파ì¼(.py)ë¡œ 저장하여 언제든지
호출하여 재사할 수 있는 공통 소스 ì½”ë“œë“¤ì˜ ì§‘í•©
Don’t Repeat Yourself!
>>> â€œê°™ì€ ì†ŒìŠ¤ë¥¼ 반복해서 작성하지 ë§ë¼â€
소스 재사용!?
function
함수 : 특정 í–‰ìœ„ì— ëŒ€í•´ 기술한 소스 코드
í´ëž˜ìŠ¤ : 특정 행위와 ìƒíƒœë¥¼ ë‹´ì„ ìˆ˜ 있는 ê°ì²´ë¥¼ ìƒì„±í•˜ê¸° 위한 명세서
모듈 : 함수, í´ëž˜ìŠ¤ ë“±ì„ í¬í•¨í•˜ì—¬ ë…립ì ì¸ 파ì¼(.py)ë¡œ 저장하여 언제든지
호출하여 재사할 수 있는 공통 소스 ì½”ë“œë“¤ì˜ ì§‘í•©
Don’t Repeat Yourself!
>>> â€œê°™ì€ ì†ŒìŠ¤ë¥¼ 반복해서 작성하지 ë§ë¼â€
소스 재사용!?
반환값
ì¸ìžê°’
함수명
함수 ì •ì˜ í‚¤ì›Œë“œ
function
>>> def drink_water(name):
print(name + “(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤â€)
return name
>>> drink_person = drink_water(“양욱â€)
ì–‘ìš±(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤
>> > drink_person
ì–‘ìš±
>>> type(drink_water(“양욱â€))
ì–‘ìš±(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤
<class ‘string’>
>>> type(drink_water)
<class ‘function’>
í•¨ìˆ˜ì˜ 3요소 : 함수명, ì¸ìžê°’, 반환값
1. 함수 ì •ì˜
function
>>> def drink_water(name):
print(name + “(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤â€)
>>> drink_water(“양욱â€)
ì–‘ìš±(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤
>>> type(drink_water(“양욱â€))
ì–‘ìš±(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤
<class ‘NoneType’>
>>> print(drink_water(“양욱â€))
ì–‘ìš±(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤
None
ë°˜í™˜ê°’ì´ ì—†ì„ë•Œ : None
1. 함수 ì •ì˜
=> Object!!!!
function
>>> def drink_water(name=“양욱â€):
print(name + “(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤â€)
>>> drink_water()
ì–‘ìš±(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤
>>> dring_water(‘민승’)
민숭(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤
def func_name(arg=value)
2. Default Argument Value
function
drink_water 함수를 ì •ì˜í•´ 봅시다!
>>> drink_water(3)
문ìžì—´ì„ 입력해주세요!
>>> drink_water()
ì¸ìžê°’ì„ ìž…ë ¥í•´ì£¼ì„¸ìš”!
>>> drink_water(‘건í¬â€™)
ê±´í¬(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤!
간단한 예외처리를 해봅시다!
2. Default Argument Value
정답!!!
>>> def drink_water(name=None):
if name == None:
print(“ì¸ìžê°’ì„ ìž…ë ¥í•´ì£¼ì„¸ìš”!â€)
elif type(name) != str :
print(“문ìžì—´ì„ 입력해주세요!â€)
else :
print(name + “(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤â€)
function
>>> def my_car( manufacturer, seats=4, type=‘세단’):
pirnt(‘내 차는’, manufacturer, ‘ì—ì„œ 제작ëœâ€™, str(seats), ‘ì¸ìŠ¹â€™, type, ‘ì´ë‹¤â€™)
>>> my_car(‘현대’)
ë‚´ 차는 현대 ì—ì„œ ì œìž‘ëœ 4 ì¸ìŠ¹ 세단 ì´ë‹¤.
>>> my_car(manufacturer=‘현대’)
ë‚´ 차는 현대 ì—ì„œ ì œìž‘ëœ 4 ì¸ìŠ¹ 세단 ì´ë‹¤.
>>> my_car(manufacturer=‘기아’, type=‘SUV’)
ë‚´ 차는 기아 ì—ì„œ ì œìž‘ëœ 4 ì¸ìŠ¹ SUVì´ë‹¤.
>>> my_car(type=‘SUV’, manufacturer=‘기아’)
ë‚´ 차는 기아 ì—ì„œ ì œìž‘ëœ 4 ì¸ìŠ¹ SUVì´ë‹¤.
• positional : 위치 ì¸ìžê°’
• keyword : default value를 가지는 ì¸ìžê°’
3. Keyword Argument
function
>>> def my_car( manufacturer, seats=4, type=‘세단’):
pirnt(‘내 차는’, manufacturer, ‘ì—ì„œ 제작ëœâ€™, str(seats), ‘ì¸ìŠ¹â€™, type, ‘ì´ë‹¤â€™)
>>> my_car(‘아우디’, 2 , ‘스í¬ì¸ ì¹´â€™)
ë‚´ 차는 ì•„ìš°ë”” ì—ì„œ ì œìž‘ëœ 2 ì¸ìŠ¹ 스í¬ì¸ ì¹´ ì´ë‹¤
>>> my_car(‘아우디’, seats=2)
ë‚´ 차는 ì•„ìš°ë”” ì—ì„œ ì œìž‘ëœ 2 ì¸ìŠ¹ 세단 ì´ë‹¤
>>> my_car(‘아우디’, type=스í¬ì¸ ì¹´)
ë‚´ 차는 ì•„ìš°ë”” ì—ì„œ ì œìž‘ëœ 4 ì¸ìŠ¹ 스í¬ì¸ ì¹´ ì´ë‹¤
>>> my_car()
TypeError
>>> my_car(manufacturer=‘아우디’, 2)
SyntaxError
>>> my_car(“현대â€, manufacturer=‘아우디’)
TypeError
>>> my_car(“현대â€, color=“í°ìƒ‰â€)
TypeError
3. Keyword Argument
function
>>> def landvibe_member(name , *members, **landvibe_info):
print(“땅울림 회장 ì´ë¦„ :â€, name)
print(“회ì›ë“¤ 목ë¡ì€ 아래와 같습니다.â€)
for member in members:
print(member, end=“ “)
print(‘-’ * 40)
for key in landvibe_info.keys():
print(key, “:â€, landvibe_info[key])
*args : 튜플형 ë°ì´í„° (리스트x)
**args : 사전형 ë°ì´í„°
4. Arbitrary Argument Lists (가변 ì¸ìž 리스트)
function
>>> landvibe_member(“양민승â€)
4. Arbitrary Argument Lists (가변 ì¸ìž 리스트)
땅울림 회장 ì´ë¦„ : 양민승
회ì›ë“¤ 목ë¡ì€ 아래와 같습니다.
----------------------------------------
>>> members = “규정â€, “건í¬â€, “ë„완â€
>>> landvibe_member(“양민승â€, memebers)
땅울림 회장 ì´ë¦„ : 양민승
회ì›ë“¤ 목ë¡ì€ 아래와 같습니다.
규정 ê±´í¬ ë„완
----------------------------------------
function
4. Arbitrary Argument Lists (가변 ì¸ìž 리스트)
>>> members = “규정â€, “건í¬â€, “ë„완â€
>>> landvibe_member(“양민승â€, memebers, ì˜ë¬¸ì´ë¦„=‘landvibe’, 우승횟수=“5번â€)
땅울림 회장 ì´ë¦„ : 양민승
회ì›ë“¤ 목ë¡ì€ 아래와 같습니다.
규정 ê±´í¬ ë„완
----------------------------------------
ì˜ë¬¸ì´ë¦„ : landvibe
우승횟수 : 5번
function
4. Arbitrary Argument Lists (가변 ì¸ìž 리스트)
>>> def landvibe_member(*members):
print(members)
>>> tuple_members = “규정â€, “건í¬â€, “ë„완â€
>>> list_members = [“규정â€, “건í¬â€, “ë„완â€]
>>> landvibe_member(tuple_members)
([“규정â€, “건í¬â€, “ë„완â€], )
*args : 튜플형 ë°ì´í„° (리스트x)
(“규정â€, “건í¬â€, “ë„완â€)
>>> landvibe_member(list_members)
과제!!!
9ì›” 23ì¼ (금) 까지 제출해주세요~
kimkh6554@gmail.com
BeakJoon Online Judge
https://www.acmicpc.net/

More Related Content

Python if loop-function

  • 2. Outline 1. If 2. Loop 3. range() 4. break, continue, pass 5. Comprehensions 6. Function
  • 3. ì¡°ê±´ë¬¸ì˜ ë 블ë¡ë¬¸ì˜ 시작 조건문 If 1. if ~ elif ~ else color = input(“색ìƒì„ ì˜ë¬¸ìœ¼ë¡œ 입력하세요 : “) if color == ‘blue’: print(â€œíŒŒëž€ìƒ‰ì„ ìž…ë ¥í•˜ì…¨ë„¤ìš”â€) elif color ==‘red’: print(â€œë¹¨ê°„ìƒ‰ì„ ìž…ë ¥í•˜ì…¨ë„¤ìš”â€) else : print(color + â€œìƒ‰ì„ ìž…ë ¥í•˜ì…¨ë„¤ìš”â€) 특정 ì¡°ê±´ì— ë”°ë¼ ë¶„ê¸°ë¥¼ 하기 위해 제공ë˜ëŠ” 제어문 else if => elif ( else if는 syntax error!) 파ì´ì¬ì—는 Swich-caseë¬¸ì´ ì—†ìŠµë‹ˆë‹¤ 제어문 키워드 들여쓰기로 블ë¡ë¬¸ 대체
  • 4. 들여쓰기로 블ë¡ë¬¸ 대체 조건문 Loop 1. While color =‘’ while color != ‘blue’ and color != ‘red’ : color = input(“색ìƒì„ ì˜ë¬¸ìœ¼ë¡œ 입력하세요 : “) if color == ‘blue’: print(â€œíŒŒëž€ìƒ‰ì„ ìž…ë ¥í•˜ì…¨ë„¤ìš”â€) elif color ==‘red’: print(â€œë¹¨ê°„ìƒ‰ì„ ìž…ë ¥í•˜ì…¨ë„¤ìš”â€) else : print(color + â€œìƒ‰ì„ ìž…ë ¥í•˜ì…¨ë„¤ìš”â€) print (â€œí”„ë¡œê·¸ëž¨ì„ ì¢…ë£Œ 합니다â€) 특정 ì¡°ê±´ì— ë§Œì¡±í•  때까지 루프를 ëŒë¦´ë•Œ 주로 사용 무한 루프를 ëŒë¦´ ë•Œ 주로 사용 ì¡°ê±´ë¬¸ì˜ ë 블ë¡ë¬¸ì˜ 시작 반복문 키워드
  • 5. 열거형 변수가 하나씩 ëŒ€ìž…ë˜ ëŠ” 변수 반복문 키워드 Loop 2. for landvibe = ‘재승’, ‘민승’, 지선’ for member in landvibe: print(member) 특정 ë²”ìœ„ë§Œí¼ ë£¨í”„ë¥¼ ëŒë¦´ë•Œ 주로 사용 열거형 변수 (tuple, list, …)
  • 6. for문과 range() 함수 1. range() >>> for x in range(5) : … print(x, end=‘ ‘) 0 1 2 3 4 # 5는 출력ë˜ì§€ 않습니다 >>> type(range(5)) <class ‘range’> >>> range(5) range(0, 5) # 그냥 ì“°ë©´ range 타입입니다 >>> list(range(5)) [0, 1 ,2, 3 ,4 ] # list() ë¡œ í˜•ë³€í™˜ì„ í•´ì£¼ë©´ 해당 범위ì˜ëª¨ë“ ê°’ì´ # 출력ë©ë‹ˆë‹¤ 순차ì ì¸ 숫ìžë¡œ ì´ë£¨ì–´ì§„ 리스트를 쉽게 만드는 방법 파ì´ì¬ 기본 내장 함수 range(start, stop [, step]) 기본 예제
  • 7. >>> list(range(5, 10)) >>> list(range(0, 10, 2)) >>> list(range(5, 0, -1)) >>> tuple(range(5, 0, -1)) >>> list(range(0, 10, -1)) 퀴즈! for문과 range() 함수
  • 8. >>> list(range(5, 10)) [5, 6, 7 ,8 ,9] # 5부터 10까지 1씩ì¦ê°€í•˜ëŠ” 리스트 >>> list(range(0, 10, 2)) [0, 2, 4, 6, 8] # 0부터 10까지 2씩ì¦ê°€í•˜ëŠ” 리스트 >>> list(range(5, 0, -1)) [5, 4, 3, 2, 1] # 5부터 0까지 -1씩 ì¦ê°€í•˜ëŠ” 리스트 >>> tuple(range(5, 0, -1)) (5, 4, 3, 2, 1) # 5부터 0까지 -1씩 ì¦ê°€í•˜ëŠ” 튜플 >>> list(range(0, 10, -1)) [] # 0부터 10까지 -1씩ì¦ê°€í•˜ë©´ 무한루프 # ì´ëŸ´ë• 빈리스트가 반환! # ì—러가 나지 ì•ŠìŒ!! 정답 for문과 range() 함수
  • 9. break, continue, pass 1. break 특정한 ì¡°ê±´ì— ì˜í•´, 수행하고 있는 루프를 중단한다 for i in range(10) : if i == 5: break; print( i, end=‘ ‘) 2. continue 수행하고 있는 루프문만 중단하고 ë‹¤ìŒ ë£¨í”„ë¡œ 넘어간다 for i in range(10) : if i == 5: continue; print( i, end=‘ ‘) ê²°ê³¼ : 0 1 2 3 4 ê²°ê³¼ : 0 1 2 3 4 6 7 8 9
  • 10. break, continue, pass 3. pass 아무 ì¼ë„ 하지 않는다 for i in range(10) : if i == 5: pass print( i, end=‘ ‘) ê²°ê³¼ : 0 1 2 3 4 5 6 7 8 9 í—¤ì—!? 아무ì¼ë„ 안한다고요?
  • 11. break, continue, pass def prev_funcion(): pass class pre_class(): pass def prev_control(): if x == 3: pass 코드 설계 ì‹œ 제어문, 함수, í´ëž˜ìŠ¤ë¥¼ 미리 만들어 놓 ì„ ë•Œ 사용합니다 3. pass
  • 12. Comprehensions 짧고 ê°„ê²°í•œ 코드로 List, Set, Dict와 ê°™ì€ ìžë£Œêµ¬ì¡°ë¥¼ ìƒ ì„±í•  수 있는 문법 square_list = [] for x in range(11): square_list.append(x*x) print(square_list) 1. List for 문으로 [0, 1, 4 , 9, 16, 25, 36, 49, 64, 81,100] ì˜ ë°ì´í„°ë¥¼ ìƒì„±í•´ë³´ìž square_list = [x*x for x in range(10)] Comprehensions를 사용하면?
  • 13. Comprehensions >>> pairs = [] >>> old_boys = [‘재승’, ‘민승’, ‘ìƒí™”’] >>> young_boys = [‘성현’, ‘양욱’, ‘재형’] ì‘ìš© [‘재승’, ‘민승’, ‘ìƒí™”’], [‘성현’, ’양욱’, ’재형’] ë‘ê°œì˜ ë¦¬ìŠ¤ 트를 tupleë¡œ ì§ì§€ì–´ 봅시다. 중첩 for 문 사용 >>> for ob in old_boys : for yb in young_boys: pairs.append( (ob,yb) ) >>> pairs [(‘재승’, ‘성현’), (‘재승’, ‘양욱’), (‘재승’, ‘재형’), (‘민승’, ‘성현’), (‘민승’, ‘양욱’), (‘민승’, ‘재형’), (‘ìƒí™”’, ‘성현’), (‘ìƒí™”’, ‘양욱’), (‘ìƒí™”’, ‘재형’)]
  • 14. Comprehensions >>> pairs = [] >>> old_boys = [‘재승’, ‘민승’, ‘ìƒí™”’] >>> young_boys = [‘성현’, ‘양욱’, ‘재형’] ì‘ìš© [‘재승’, ‘민승’, ‘ìƒí™”’], [‘성현’, ’양욱’, ’재형’] ë‘ê°œì˜ ë¦¬ìŠ¤ 트를 tupleë¡œ ì§ì§€ì–´ 봅시다. Comprehension 사용 >>> pairs = [ (x,y) for x in old_boys for y in young_boys] >>> pairs [(‘재승’, ‘성현’), (‘재승’, ‘양욱’), (‘재승’, ‘재형’), (‘민승’, ‘성현’), (‘민승’, ‘양욱’), (‘민승’, ‘재형’), (‘ìƒí™”’, ‘성현’), (‘ìƒí™”’, ‘양욱’), (‘ìƒí™”’, ‘재형’)]
  • 15. Comprehensions >>> pairs = [] >>> old_boys = [‘재승’, ‘민승’, ‘ìƒí™”’] >>> young_boys = [‘성현’, ‘민승’, ‘재형’] ì‘ìš© [‘재승’, ‘민승’, ‘ìƒí™”’], [‘성현’, ’민승’, ’재형’] ë‘ê°œì˜ ë¦¬ìŠ¤ 트를 tupleë¡œ ì§ì§€ì–´ 봅시다. 중첩 for 문 사용 >>> for ob in old_boys : for yb in young_boys: if ob != yb: pairs.append( (ob,yb) ) >>> pairs [(‘재승’, ‘성현’), (‘재승’, ‘민승’), (‘재승’, ‘재형’), (‘민승’, ‘성현’), (‘민승’, ‘재형’), (‘ìƒí™”’, ‘성현’), (‘ìƒí™”’, ‘민승’), (‘ìƒí™”’, ‘재형’)]
  • 16. Comprehensions >>> pairs = [] >>> old_boys = [‘재승’, ‘민승’, ‘ìƒí™”’] >>> young_boys = [‘성현’, ‘민승’, ‘재형’] ì‘ìš© [‘재승’, ‘민승’, ‘ìƒí™”’], [‘성현’, ’민승’, ’재형’] ë‘ê°œì˜ ë¦¬ìŠ¤ 트를 tupleë¡œ ì§ì§€ì–´ 봅시다. Comprehension 사용 >>> pairs = [ (x,y) for x in old_boys for y in young_boys if x != y] >>> pairs [(‘재승’, ‘성현’), (‘재승’, ‘민승’), (‘재승’, ‘재형’), (‘민승’, ‘성현’), (‘민승’, ‘재형’), (‘ìƒí™”’, ‘성현’), (‘ìƒí™”’, ‘민승’), (‘ìƒí™”’, ‘재형’)]
  • 17. Comprehensions >>> a = {x for x in ‘abrdabrdabrd’ if x not in ‘abc’} >>> a 2. Set 예제 {‘r’, ‘d’} >>> a = { x : x*x for x in (2, 4, 6)} >>> a 3. Dict 예제 { 2:4, 4:16, 6:36 }
  • 18. function 함수 : 특정 í–‰ìœ„ì— ëŒ€í•´ 기술한 소스 코드 í´ëž˜ìŠ¤ : 특정 행위와 ìƒíƒœë¥¼ ë‹´ì„ ìˆ˜ 있는 ê°ì²´ë¥¼ ìƒì„±í•˜ê¸° 위한 명세서 모듈 : 함수, í´ëž˜ìŠ¤ ë“±ì„ í¬í•¨í•˜ì—¬ ë…립ì ì¸ 파ì¼(.py)ë¡œ 저장하여 언제든지 호출하여 재사할 수 있는 공통 소스 ì½”ë“œë“¤ì˜ ì§‘í•© Don’t Repeat Yourself! >>> â€œê°™ì€ ì†ŒìŠ¤ë¥¼ 반복해서 작성하지 ë§ë¼â€ 소스 재사용!?
  • 19. function 함수 : 특정 í–‰ìœ„ì— ëŒ€í•´ 기술한 소스 코드 í´ëž˜ìŠ¤ : 특정 행위와 ìƒíƒœë¥¼ ë‹´ì„ ìˆ˜ 있는 ê°ì²´ë¥¼ ìƒì„±í•˜ê¸° 위한 명세서 모듈 : 함수, í´ëž˜ìŠ¤ ë“±ì„ í¬í•¨í•˜ì—¬ ë…립ì ì¸ 파ì¼(.py)ë¡œ 저장하여 언제든지 호출하여 재사할 수 있는 공통 소스 ì½”ë“œë“¤ì˜ ì§‘í•© Don’t Repeat Yourself! >>> â€œê°™ì€ ì†ŒìŠ¤ë¥¼ 반복해서 작성하지 ë§ë¼â€ 소스 재사용!?
  • 20. 반환값 ì¸ìžê°’ 함수명 함수 ì •ì˜ í‚¤ì›Œë“œ function >>> def drink_water(name): print(name + “(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤â€) return name >>> drink_person = drink_water(“양욱â€) ì–‘ìš±(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤ >> > drink_person ì–‘ìš± >>> type(drink_water(“양욱â€)) ì–‘ìš±(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤ <class ‘string’> >>> type(drink_water) <class ‘function’> í•¨ìˆ˜ì˜ 3요소 : 함수명, ì¸ìžê°’, 반환값 1. 함수 ì •ì˜
  • 21. function >>> def drink_water(name): print(name + “(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤â€) >>> drink_water(“양욱â€) ì–‘ìš±(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤ >>> type(drink_water(“양욱â€)) ì–‘ìš±(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤ <class ‘NoneType’> >>> print(drink_water(“양욱â€)) ì–‘ìš±(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤ None ë°˜í™˜ê°’ì´ ì—†ì„ë•Œ : None 1. 함수 ì •ì˜ => Object!!!!
  • 22. function >>> def drink_water(name=“양욱â€): print(name + “(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤â€) >>> drink_water() ì–‘ìš±(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤ >>> dring_water(‘민승’) 민숭(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤ def func_name(arg=value) 2. Default Argument Value
  • 23. function drink_water 함수를 ì •ì˜í•´ 봅시다! >>> drink_water(3) 문ìžì—´ì„ 입력해주세요! >>> drink_water() ì¸ìžê°’ì„ ìž…ë ¥í•´ì£¼ì„¸ìš”! >>> drink_water(‘건í¬â€™) ê±´í¬(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤! 간단한 예외처리를 해봅시다! 2. Default Argument Value 정답!!! >>> def drink_water(name=None): if name == None: print(“ì¸ìžê°’ì„ ìž…ë ¥í•´ì£¼ì„¸ìš”!â€) elif type(name) != str : print(“문ìžì—´ì„ 입력해주세요!â€) else : print(name + “(ì´)ê°€ ë¬¼ì„ ë§ˆì‹­ë‹ˆë‹¤â€)
  • 24. function >>> def my_car( manufacturer, seats=4, type=‘세단’): pirnt(‘내 차는’, manufacturer, ‘ì—ì„œ 제작ëœâ€™, str(seats), ‘ì¸ìŠ¹â€™, type, ‘ì´ë‹¤â€™) >>> my_car(‘현대’) ë‚´ 차는 현대 ì—ì„œ ì œìž‘ëœ 4 ì¸ìŠ¹ 세단 ì´ë‹¤. >>> my_car(manufacturer=‘현대’) ë‚´ 차는 현대 ì—ì„œ ì œìž‘ëœ 4 ì¸ìŠ¹ 세단 ì´ë‹¤. >>> my_car(manufacturer=‘기아’, type=‘SUV’) ë‚´ 차는 기아 ì—ì„œ ì œìž‘ëœ 4 ì¸ìŠ¹ SUVì´ë‹¤. >>> my_car(type=‘SUV’, manufacturer=‘기아’) ë‚´ 차는 기아 ì—ì„œ ì œìž‘ëœ 4 ì¸ìŠ¹ SUVì´ë‹¤. • positional : 위치 ì¸ìžê°’ • keyword : default value를 가지는 ì¸ìžê°’ 3. Keyword Argument
  • 25. function >>> def my_car( manufacturer, seats=4, type=‘세단’): pirnt(‘내 차는’, manufacturer, ‘ì—ì„œ 제작ëœâ€™, str(seats), ‘ì¸ìŠ¹â€™, type, ‘ì´ë‹¤â€™) >>> my_car(‘아우디’, 2 , ‘스í¬ì¸ ì¹´â€™) ë‚´ 차는 ì•„ìš°ë”” ì—ì„œ ì œìž‘ëœ 2 ì¸ìŠ¹ 스í¬ì¸ ì¹´ ì´ë‹¤ >>> my_car(‘아우디’, seats=2) ë‚´ 차는 ì•„ìš°ë”” ì—ì„œ ì œìž‘ëœ 2 ì¸ìŠ¹ 세단 ì´ë‹¤ >>> my_car(‘아우디’, type=스í¬ì¸ ì¹´) ë‚´ 차는 ì•„ìš°ë”” ì—ì„œ ì œìž‘ëœ 4 ì¸ìŠ¹ 스í¬ì¸ ì¹´ ì´ë‹¤ >>> my_car() TypeError >>> my_car(manufacturer=‘아우디’, 2) SyntaxError >>> my_car(“현대â€, manufacturer=‘아우디’) TypeError >>> my_car(“현대â€, color=“í°ìƒ‰â€) TypeError 3. Keyword Argument
  • 26. function >>> def landvibe_member(name , *members, **landvibe_info): print(“땅울림 회장 ì´ë¦„ :â€, name) print(“회ì›ë“¤ 목ë¡ì€ 아래와 같습니다.â€) for member in members: print(member, end=“ “) print(‘-’ * 40) for key in landvibe_info.keys(): print(key, “:â€, landvibe_info[key]) *args : 튜플형 ë°ì´í„° (리스트x) **args : 사전형 ë°ì´í„° 4. Arbitrary Argument Lists (가변 ì¸ìž 리스트)
  • 27. function >>> landvibe_member(“양민승â€) 4. Arbitrary Argument Lists (가변 ì¸ìž 리스트) 땅울림 회장 ì´ë¦„ : 양민승 회ì›ë“¤ 목ë¡ì€ 아래와 같습니다. ---------------------------------------- >>> members = “규정â€, “건í¬â€, “ë„완†>>> landvibe_member(“양민승â€, memebers) 땅울림 회장 ì´ë¦„ : 양민승 회ì›ë“¤ 목ë¡ì€ 아래와 같습니다. 규정 ê±´í¬ ë„완 ----------------------------------------
  • 28. function 4. Arbitrary Argument Lists (가변 ì¸ìž 리스트) >>> members = “규정â€, “건í¬â€, “ë„완†>>> landvibe_member(“양민승â€, memebers, ì˜ë¬¸ì´ë¦„=‘landvibe’, 우승횟수=“5번â€) 땅울림 회장 ì´ë¦„ : 양민승 회ì›ë“¤ 목ë¡ì€ 아래와 같습니다. 규정 ê±´í¬ ë„완 ---------------------------------------- ì˜ë¬¸ì´ë¦„ : landvibe 우승횟수 : 5번
  • 29. function 4. Arbitrary Argument Lists (가변 ì¸ìž 리스트) >>> def landvibe_member(*members): print(members) >>> tuple_members = “규정â€, “건í¬â€, “ë„완†>>> list_members = [“규정â€, “건í¬â€, “ë„완â€] >>> landvibe_member(tuple_members) ([“규정â€, “건í¬â€, “ë„완â€], ) *args : 튜플형 ë°ì´í„° (리스트x) (“규정â€, “건í¬â€, “ë„완â€) >>> landvibe_member(list_members)
  • 30. 과제!!! 9ì›” 23ì¼ (금) 까지 제출해주세요~ kimkh6554@gmail.com BeakJoon Online Judge https://www.acmicpc.net/