티스토리 뷰
1. if 문
1
2
3
4
5
6
7
8
9
10
|
x = 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
|
a = [1,2,3,4]
b = ['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. 파이썬 자료구조와 알고리즘
'Programming > 자료구조' 카테고리의 다른 글
[자료구조] 5. 탐욕 알고리즘(Greedy Algorithm)& 동적계획법(Dynamic Programming) (0) | 2021.02.06 |
---|---|
[자료구조] 3. 검색알고리즘 (이분색, 순차검색... ) (0) | 2020.09.10 |
[자료구조] 1. String & Array (0) | 2020.09.10 |
python 자료구조 set, list, dictionary , tuple (0) | 2019.10.07 |
자료구조 - 검색 (0) | 2019.09.30 |