Python if loop-function

30
Study Of Landvibe Python If, Loop, Function

Transcript of Python if loop-function

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/