티스토리 뷰

Programming/자료구조

python 제어문

RosyPark 2019. 10. 6. 21:03

1. if 문

1
2
3
4
5
6
7
8
9
10
= int(input("숫자를 입력하세요"))
if x<0:
    x=0
    print("음수를 입력하여 x를 0으로 변경하였습니다")
elif x == 0:
    print("0이 입력되었습니다")
elif x == 1:
    print("1이 입력되었습니다. ")
else:
    print("2 이상의 숫자가 입력되었습니다. ")
cs

 

 

2. for문

 

 

 

 

3. 참과 거짓

- 거짓(False)은 사전 정의된 상수 False 또는 숫자 0, 특수 객체 None, 빈 컬렉션 시퀀스 (빈 문자열 "", 빈 리스트[], 빈 튜플(), 빈 딕셔너리{})에 정의된다.

- 여기에 속하지 않는 값들은 모두 참(True)이다

1
2
3
4
string1, string2, string3 = """괴물""나이키"
non_nul = string1 and string2 and string3
print(non_nul)
 
cs

 

 

4. return 대 yield

- 파이썬에서 제너레이터(generator)는 이터레이터(iterator)를 작성하는 편리한 방법

- 객체에 __iter__()와 __next__() 메서드를 둘 다 정의하면 이터레이터 프로토콜을 구현한셈

- yield 키워드를 사용하면 편리 

>> return 키워드는 반환값을 반환하고 메서드를 종료한 후, 호출자에게 제어를 반환

>> yield 키워드는 각 반환값을 호출자에게 반환하고, 반환값이 모두 소진되었을 때에만 메서드가 종료

- yield 키워드는 제너레이터 맥락에서 이터레이터를 만드는 아주 강력한 도구

- 제너레이터는 최종값을 반환하지만, 이터레이터는 yield 키워드를 사용하여 코드 실행중에 값을 반환한다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def fib_generator():
    a,b = 0,1
    while True:
        yield b
        a,b = b, a+b
 
if __name__ == "__main__":
    fib = fib_generator()
    print(next(fib))
    print(next(fib))
    print(next(fib))
    print(next(fib))
 
 
    """
    1
    1
    2
    3    
    """
cs

 

5. break 대 continue 

- 반복문에서 break 키워드를 만나면, 바로 반복문을 빠져나간다

- 반복문에서 continue 키워드를 만나면, 반복문의 다음단계로 전환한다. 

1
2
3
4
5
6
7
for i in range(10):
    if i == 4:
        break
    print(i)
 
else:
    print("for 문 종료! ")
 
"""
0
1
2
3
"""
cs

 

6.  range() 

- 숫자 리스트를 생성한다.

- 숫자 시퀀스를 순회할 때 유용하다. 

1
2
result = range(10)
print(result)
cs

 

 

7. enumerate 

- 반복가능한 객체의 인덱스 값과 항목값의 튜플을 반환

- 예를 들어 파일을 가져와서 특정 단어가 나타나는 위치를 출력하는 나만의 grep 함수를 만들 수 있음

- 명령 줄에서 실행시 단어와 파일을 모두 지정해야 함 

 

****

 

 

8. zip()

- 2개 이상의 시퀀스를 인수로 취하여, 짧은 길이의 시퀀스를 기준으로 각 항목이 순서대로 1:1 대응하는 튜플 시퀀스를 만든다. 

1
2
3
4
5
= [1,2,3,4]
= ['a','b','c','d','e']
print(zip(a,b)) # <zip object at 0x000001FA13B09E08>
print(list(zip(a,b))) #[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
 
cs

 

9. filter()

- filter() 메서드는 시퀀스의 항목들 중 함수 조건이 참(True)인 항목에만 추출해서 구성된 시퀀스를 반환한다. 

1
2
3
def f(x) : return x % 2 != 0 and x %3 != 0
print(list(filter(f,range(2,25)))) #[5, 7, 11, 13, 17, 19, 23]
 
cs

 

10. map()

-  map(function, list) 메서드는 시퀀스의 모든 항목에 함수를 적용한 결과 리스트를 반환

1
2
3
def cube(x) : return x*x*x
result=list(map(cube,range(1,11)))
print(result) #[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
cs

 

11. 람다함수

- 람다 함수를 쓰면 코드 내에서 함수를 간결하게 동적으로 사용할 수 있다. 

1
2
area = lambda b,h : 0.7 * b*h
print(area(5,2.3)) #8.049999999999999
cs

 

 

<출처>

1. 파이썬 자료구조와 알고리즘 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함