30
Study Of Landvibe Python If, Loop, Function

Python if loop-function

  • Upload
    -

  • View
    152

  • Download
    0

Embed Size (px)

Citation preview

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일 (금) 까지 제출해주세요~

[email protected]

BeakJoon Online Judge

https://www.acmicpc.net/