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])
기본 예제
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!!!!
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번